zenet_logo

-株式会社ゼネット技術ブログ-

【Amazon Quick】計算フィールドとパラメータで自由に並び替え!動的ソートを実装する方法

動的ソート

はじめに

ゼネットシステム事業部の方です。業務上、データレイク基盤構築に携わっています。

ダッシュボードを作成していると、

  • 「東京 → 大阪 → 福岡」の順に並べたい
  • 売上順だけではなく業務順で表示したい
  • 利用者側で自由に並び替えしたい

といったケースはないでしょうか?

Amazon Quick の標準ソートでは、柔軟な並び替えが難しい場面があります。

そこで便利なのが、

  • 計算フィールド
  • パラメータ
  • コントロール

を組み合わせたソート制御です。

本記事では、

  • 文字列を好きな順番に並び替える方法
  • パラメータで複数ビジュアルを同時に並び替える方法
  • Amazon Quick Chat を使った計算フィールド作成方法

を実務目線で解説します。

なぜAmazon Quick標準ソートでは足りないのか?

Amazon Quick の標準ソートでは、

  • ABC順
  • 数値順

が基本になります。

しかし実務では、

  • 北海道 → 東北 → 関東 → 関西
  • 優先度順
  • 業務フロー順

など、業務上意味のある順番で並べたいケースが非常に多いです。

今回やること

パターン1:計算フィールドで任意順ソート

例:

  1. 東京
  2. 大阪
  3. 名古屋
  4. 福岡
  5. 札幌

パターン2:パラメータ + コントロールで動的ソート

ユーザーが、

  • 件数順
  • 年齢順
  • 重大度順

を切り替え可能にします。

さらに、複数ビジュアルを同時に並び替えできます。

パターン1:計算フィールドで任意順ソート

なぜ必要?

通常ソートでは、

  • あいうえお順
  • ABC順

になります。

しかし、「業務で見やすい順」にしたいケースはかなり多いです。

計算フィールド作成

フィールド名

支店ソートを昇順

計算式

ifelse(
    {branch}='東京',1,
    {branch}='大阪',2,
    {branch}='名古屋',3,
    {branch}='福岡',4,
    {branch}='札幌',5,
    999
)

設定方法

  1. ビジュアルを選択
  2. 並び替え設定
  3. 計算フィールド「支店ソートを昇順」を指定

今回は「オフビジュアルフィールドの並び替え」を利用します。

これは、表示していない計算フィールドをソート専用として利用できる機能です。

適用後は、業務上意味のある順番で表示できます。

👉 「表示項目」と「ソート用項目」を分離するのがポイントです。

オフビジュアルフィールド並び替え設定画面1

オフビジュアルフィールド並び替え設定画面2

Amazon Quick Chat に教えてもらう

Amazon Quick Chat プロンプト例

Quickの計算フィールドを書いてください。
branch列を以下の順番で並び替えしたいです。

東京 → 大阪 → 名古屋 → 福岡 → 札幌

Amazon Quick Chat計算式画面

Amazon Quick Chat使用方法画面

Amazon Quick Chat を利用することで、

  • 計算フィールド作成
  • 設定方法の確認
  • ソートロジック作成

などを自然言語から生成できます。

AI活用 × BI開発としてかなり実務的です。

パターン2:パラメータで動的ソート

なぜ必要?

特に複数ビジュアルを持つダッシュボードでは、

「グラフごとに並び順がバラバラ」

というUX課題が発生しやすくなります。

パラメータを利用した動的ソートを導入することで、ダッシュボード全体で統一された分析体験を提供できます。

例えば、

  • 合計件数順
  • 未対応件数順
  • 対応中件数順

をワンクリックで切り替えられるようにすると、利用者は迷わず分析できます。

さらに、複数ビジュアルの並び順を同時に変更できるため、

👉 「どのグラフも同じ順番で比較できる」状態を実現できます。

構成

1. パラメータ作成

パラメータ名

SortOrder

2. コントロール作成

ドロップダウンで以下を選択できるようにします。

  • 合計クレーム数(昇順)
  • 合計クレーム数(降順)
  • 未対応クレーム数(昇順)
  • 未対応クレーム数(降順)
  • 対応中クレーム数(昇順)
  • 対応中クレーム数(降順)

計算フィールド作成

ifelse(
    ${SortOrder} = "合計クレーム数(昇順)", sumOver(1, [{branch}], PRE_FILTER),
    ${SortOrder} = "合計クレーム数(降順)", -1 * sumOver(1, [{branch}], PRE_FILTER),
    ${SortOrder} = "未対応クレーム数(昇順)", sumOver(ifelse({status} = "未対応", 1, 0), [{branch}], PRE_FILTER),
    ${SortOrder} = "未対応クレーム数(降順)", -1 * sumOver(ifelse({status} = "未対応", 1, 0), [{branch}], PRE_FILTER),
    ${SortOrder} = "対応中クレーム数(昇順)", sumOver(ifelse({status} = "対応中", 1, 0), [{branch}], PRE_FILTER),
    ${SortOrder} = "対応中クレーム数(降順)", -1 * sumOver(ifelse({status} = "対応中", 1, 0), [{branch}], PRE_FILTER),
    0
)

設定方法

各ビジュアルのソート設定で、上記計算フィールドを指定します。

Amazon Quick Chat プロンプト例

Amazon Quick の計算フィールドを書いてください。

以下のビジュアルの並び替えを、
1つのパラメータで連動させたいです。

対象ビジュアル:
- 支店別合計クレーム数
- 支店別未対応クレーム数
- 支店別対応中クレーム数

パラメータの選択肢:
- 合計クレーム数(昇順)
- 合計クレーム数(降順)
- 未対応クレーム数(昇順)
- 未対応クレーム数(降順)
- 対応中クレーム数(昇順)
- 対応中クレーム数(降順)

そのまま使える計算フィールドを書いてください。

Amazon Quick Chat画面1

Amazon Quick Chat画面2

Amazon Quick Chat を利用することで、

  • 計算フィールド作成
  • パラメータ制御
  • 設定方法の確認

などを自然言語から生成できます。

特に動的ソートのような複雑な式は長文化しやすいため、AI活用による開発効率向上が非常に効果的です。

動的ソート最大のメリット

従来は、グラフごとに個別設定・個別ソートが必要でした。

しかしこの方法では、

👉 1つのコントロールで全ビジュアルを変更できます。

UX的メリット

  • 利用者が自分で分析できる
  • 見たい順に即変更可能
  • ダッシュボードが“動く”

👉 「見るBI」から「触れるBI」へ進化します。

動的ソート実装後画面

実務での活用例

  • 営業ランキング
  • KPI分析
  • 問い合わせ分析
  • クレーム分析
  • 在庫分析

よくあるハマりポイント

🚨集計関数が揃っていない

count と avg を混在するとエラーになる場合があります。

🚨ソート対象が文字列

文字列ではなく、数値を返すのがポイントです。

🚨元ソートが残っている

既存ソートをOFFにしないと期待通り動作しない場合があります。

まとめ

Amazon Quick では、

  • 計算フィールド
  • パラメータ
  • コントロール

を組み合わせることで、標準機能では難しい柔軟なソートを実現できます。

  • 任意順ソート
  • 動的ソート
  • 複数ビジュアル連動

はUX改善に非常に効果的です。

さらに Amazon Quick Chat を活用することで、計算フィールド作成も効率化できます。

ぜひ試してみてください!

最後に

Amazon Quick のソート機能は、単なる並び替えではなくUX改善にも直結します。

特に、

  • 任意順ソート
  • 動的ソート
  • 複数ビジュアル連動

を活用することで、利用者が迷わず分析できるダッシュボードを実現できます。

なお、ゼネットでは、AWS認定資格の取得支援に加え、実際にAWSサービスを触りながら学べるハンズオン形式の研修を実施しています。

「知識を学ぶ」だけではなく、「実際に構築して理解する」ことを重視しており、開発や基盤構築など、実務に近い形でクラウド技術を学べる環境が整っています。

👇👇👇お申し込みはこちら👇👇👇

AWS資格合格率96%!実践型AWS研修 | Xlabo Academy

参照資料

docs.aws.amazon.com

docs.aws.amazon.com

docs.aws.amazon.com