![[アップデート] Amazon Quick Sight のフィルターコントロールでついにカスタムソートが設定できるようになりました](https://images.ctfassets.net/ct0aopd36mqt/2x7muHjvW69fxuVNSKWZHp/b37e05a972fc8125e9214abd764928fa/amazon-quick.png?w=3840&fm=webp)
[アップデート] Amazon Quick Sight のフィルターコントロールでついにカスタムソートが設定できるようになりました
いわさです。
Amazon Quick Sight の分析やダッシュボードでは、フィルターコントロールを使ってシート上にドロップダウンやリストを配置し、閲覧者がデータを絞り込めるようにすることが出来ます。
よく使う機能なのですが、これまでフィルターコントロールの値はアルファベット順(昇順)で固定されていました。そのため、例えば都道府県名のドロップダウンを都道府県コード順に並べたい場合でも、コントロール上の並び順を制御する手段がなく、カスタムフィールドなどにコードを埋め込む必要がありました。
私もよくカスタマイズできたらなぁと思っていまして、Quick Sight を使う方は昔からよく悩むことの一つだったのではないでしょうか。コミュニティフォーラムにも次のような投稿があります。
これが今回のアップデートで、フィルターコントロールのソート順をカスタマイズできるようになりました。
ドロップダウンとリストのコントロール(単一選択・複数選択の両方)で、昇順・降順に加えて集計値の並び順や、別フィールドの値によるソートが設定出来るようになっています。
今回こちらを確認してみたので紹介します。
実際に確認してみる
では早速 Quick Sight コンソールから確認してみましょう。
今回は以下のような都道府県別・支店別の売上データを用意して、Quick Sight のデータセットとして取り込みました。
47 都道府県それぞれに 2〜4 支店があり、支店ごとに売上金額を持つデータです。
都道府県コード,都道府県名,地方,支店名,売上金額
01,北海道,北海道,札幌中央支店,12800000
01,北海道,北海道,旭川支店,5700000
02,青森県,東北,青森支店,2800000
02,青森県,東北,八戸支店,1400000
03,岩手県,東北,盛岡支店,2500000
:
45,宮崎県,九州,都城支店,900000
46,鹿児島県,九州,鹿児島支店,2600000
46,鹿児島県,九州,霧島支店,1300000
47,沖縄県,九州,那覇支店,2500000
47,沖縄県,九州,沖縄支店,1200000

都道府県名でフィルターするコントロールを追加しています。デフォルトだと三重県が先頭に来ていますね。
よくわからない並び順ですが、三重県が最初に来るのは、「三」(U+4E09) のコードが都道府県名の先頭文字の中で最も小さいからだと思います。たぶん。
- 三(U+4E09)
- 京(U+4EAC)
- 佐(U+4F50)
- 兵(U+5175)
- 北(U+5317)
- 千(U+5343)
フィルターコントロールのソート設定を確認する
ではここからアップデートの確認です。
コントロールの三点メニューから「編集」を選択すると、右側に「形式コントロール」ペインが開きます。
ここに「ソート」セクションが追加されていることが確認出来ますね。

ソートセクションには「ソート条件」「集計」「ソート順」の設定項目が表示されています。
「ソート条件」ではコントロールに紐づいた列がデフォルトで選択されていますが、データセット内の別の列を選択も出来ました。これだよこれ。これをやりたかったんだよ。

その後、ソート条件フィールドをどういう集計値で昇順・降順どちらで並び替えるかを選択できます。
売上合計の多い順で都道府県名を並べてみる(数値フィールドでのソート)
選択フィールドが数値の場合は色々な集計関数を使ったソートが出来るみたいです。試してみましょう。
今回のデータは都道府県ごとに複数の支店があるので、各都道府県の売上金額を合計した値でソートしてみましょう。
「ソート条件」で「売上金額」列を選択し、「集計」を「合計」、「ソート順」を「降順」に設定してみました。

ドロップダウンを開くと、各都道府県の支店売上を合計した値の多い順(東京都 → 大阪府 → 神奈川県 → 愛知県 → ...)で都道府県名が並んでいることが確認出来ます。
数値フィールドの場合はこんな感じで集計関数が豊富に用意されていました。

都道府県コード順で並べてみる(別フィールドでのソート)
次に、都道府県名を北から南の順(北海道 → 青森県 → ... → 沖縄県)で並べたいケースを考えてみます。
これがよくあるユースケースじゃないでしょうか。社員番号とかね。
ただし、ここで注意点があります。
都道府県コードが文字列型の場合、集計関数は「カウント」と「個別の値をカウント」の 2 つしか選択出来ませんでした。なんてこったい。

都道府県コードの「個別の値をカウント」で昇順ソートを設定してみましたが、各都道府県のコードは 1 つずつなのでカウント結果はすべて同じ値になり、結局文字コード順のまま変わりませんでした。

一方で、都道府県コードを数値型にしておけばどうにかできたりします。
数値フィールドであれば「平均」などの集計関数が選択出来るので、「ソート条件」で都道府県コードを選択し、「集計」を「平均」、「ソート順」を「昇順」に設定することで、実質的にコードの値そのものでソートすることが出来ます。

ドロップダウンを開くと、都道府県名が北から南の順(北海道 → 青森県 → 岩手県 → 宮城県 → ...)で表示されていることが確認出来ます。
コントロールに表示される値は都道府県名のままで、並び順だけが都道府県コードに基づいて変わるわけですね。
ポイントは、ソート条件に使うフィールドのデータ型です。
公式ドキュメントにも以下のように記載されています。
For numeric fields, you can use Sum, Average, Count, Distinct count, Min, Max, Median, Percentile, Var, Stdev, and other statistical functions. For non-numeric fields, you can use Count and Distinct count.
数値フィールドであれば集計関数が豊富に使えるため、「平均」や「合計」を選ぶことで値そのものの大小でソート出来ます。
文字列フィールドだとカウント系しか使えないので注意が必要ですね。「文字列 + 数値」みたいなコード体系だとちょっと困るかも。思いつく回避策としては計算フィールドで数値だけ抽出した列を用意しておくとかが良いかな。
手動入力値のコントロールでのソート
なお、データセットの列ではなく手動で値を入力したコントロール(特定の値)の場合は、ソートのオプションが異なるようです。
公式ドキュメントによると、以下の 3 つから選択出来るみたいですね。
- 昇順(A–Z, 0–9) ... デフォルト
- 降順(Z–A, 9–0)
- ユーザー定義順 ... 入力した順序をそのまま維持
User-defined order: Displays the values in the exact order you entered them. This preserves your custom ordering without any automatic sorting.
試してみました。こんな感じです。なるほど。


その他の補足や制限事項など
公式ドキュメントによると、クロスシートフィルターコントロールでもソート設定が可能みたいです。
クロスシートの設定画面からソートを構成すると、すべてのシートのコントロールに適用されるとのこと。
The sort configuration applies to all instances of the control across sheets.
また、ダッシュボードのコントロールは分析のソート設定を引き継ぐようです。
ダッシュボード閲覧者側でソート設定を変更することは出来ないみたいですね。
Dashboard controls inherit the sort configuration from the analysis. Sort configuration changes are not available to dashboard readers.
なお、公式ドキュメントによると、日付型の列ではカスタムソートは現時点では利用出来ないようです。
日付値を論理的な順序で並べたい場合は、別フィールドでのソートオプションで日付関連のフィールドを指定する方法が案内されています。
Custom sort is not available for date type columns at this time. To sort date values in a logical order, use the sort by another field option with a date-related field.
さいごに
本日は Amazon Quick Sight のフィルターコントロールにカスタムソート機能が追加されたので確認してみました。
これまでアルファベット順で固定だったフィルターコントロールの値を、別フィールドの値や集計値で並べ替えられるようになったのは地味なのですが、Quick Sight 利用ユーザーにとっては待望だった改善ではないでしょうか。
ただ、文字列フィールドでのソートはちょっと注意が必要ですね。
日付型の列にも対応していないようなので、文字列フィールドのソート拡充と合わせて今後のアップデートに期待したいところです。





