Amazon QuickSight でパラメータコントロール値のデータセットフィールドに計算フィールドをリンクできないときの対処法
いわさです。
Amazon QuickSight はパラメータの値をコントロールで編集させることができるのですが、実際にデータセットに存在する値からコントロールの選択肢を作成することが出来ます。
この時、パラメータ値の対象がフラグやカテゴリを示す数値などの場合、それが何を示しているのか値を説明する文字列で表示して選択させたい場合がよくあります。
計算フィールドを使うことで数値フィールドをユーザーが認識しやすい形式に変換することができるのですが、パラメータコントロールにリンクさせることが出来ない場合があったので紹介します。
パラメータコントロールにフィールドをリンクさせる
コントロールの用語の定義だけ先にしておきますが、QuickSight はフィルターから直接コントロールを関連付けする「フィルターコントロール」と、パラメータとコントロールを関連付けする「パラメータコントロール」があります。[1][2]
パラメータをフィルターで使うことはもちろんですが、計算フィールドの中で使ったりビジュアルやシートを横断して使いたい時など、柔軟性が求められる時はパラメータコントロールを選択すると良いです。
今回はこのパラメータコントロールを使った場合のお話になります。
本記事では次のようなサンプル CSV を用意し、データセットとして作成しておきました。
アイテムごとの値を表現したテーブルなのですが、カテゴリ1とカテゴリ2というフィールドがあります。
category1,category2,name,val
0,sub-category1,item1,100
0,sub-category1,item2,100
0,sub-category2,item1,200
0,sub-category2,item2,200
0,sub-category3,item1,300
0,sub-category3,item2,300
1,sub-category4,item1,400
1,sub-category4,item2,400
1,sub-category5,item1,500
1,sub-category5,item2,500
前述の手順でパラメータコントロールを使ってこのカテゴリで絞り込めるようにしましょう。
分析でパラメータとフィルターを作成しリンクさせます。その上でパラメータからコントロールを作成します。
このコントロールを介して閲覧者はダッシュボードを動的に切り替えることができるようになります。
この時、ユーザーはパラメータ値を入力したい場合もあるのですが、選択可能なカテゴリから選択させたい場合もあると思います。
そういった場合、データセットのフィールドをコントロールにリンクさせることで、データセットの中から選択肢を抽出してくれます。以下から設定が可能です。
また、以下の記事のように同一データセット内のフィールド同士であればふたつのコントロールを関連付けることが出来ます。
今回あればカテゴリ1を選択することで、カテゴリ2の選択肢はカテゴリ1の選択値と一致したもののみとなります。
カテゴリ値 0 を選択
カテゴリ値 1 を選択
カテゴリ1を名称に変換する
で、このカテゴリの値が 0 がカテゴリA、1 がカテゴリBを指しているとした場合 0 か 1 を選択させるのではなく、表示上はカテゴリAかカテゴリBかを選択させたくなると思います。
この時、次のように値を判定して文字列を作成する計算フィールドを作成してやることテーブル上の表示を変換することが出来ます。
計算フィールドの内容
テーブル上カテゴリ名称が表示されるようになりました。
ただし、コントロールにリンクされているフィールドは変換前野フィールドなので引き続き 0 と 1 が選択されています。
カテゴリを視認しやすい値に変更する計算フィールド
分析で追加した計算フィールドは指定できない
ここでコントロールにリンクするフィールドを変更しようとしたのですが先ほどは分析上で追加した計算フィールドです。
これが選択出来ないことに気が付きました。
パラメータコントロールでリンクフィールドとして選択できない
実はドキュメントに記載されているのですが、コントロールのリンクに計算フィールドは指定できないようです。なんてこったい。
If your parameter links to a dataset field, it must be an actual field. Calculated fields aren't supported.
データセット編集画面で追加した計算フィールドは指定できた
計算フィールドが使えないのは色々制約があるなぁと思ったのですが、少し試してみるとデータセット編集画面で追加した計算フィールドの場合は使えそうなことがわかりました。
計算フィールドは分析画面でも作成できるのですが、データセット編集画面でも作成ができます。
- データの準備中に計算フィールドをデータセットに追加すると、そのデータセットを使用するすべての分析でそのフィールドを使用できます。分析ページからデータセットに追加すると、計算フィールドはその分析でのみ使用可能です。
- 分析内で集計される計算フィールドを作成することで、データをドリルダウンできます。その集計フィールドの値は、各レベルで適切に再計算されます。このタイプの集計は、データセットの準備時には不可能です。
計算フィールドの追加 - Amazon QuickSight より
使い分けとして分析の選択状態に依存した計算を行う場合は分析上で作成を、それ以外の場合はデータセット準備中に計算フィールドを追加すると良いです。今回であれば分析の表示状態にかかわらず、データのフィールド値のみに依存した変換なので後者で良さそうです。
データセット編集画面で計算フィールドを追加します。
データセット編集から計算フィールドを追加する
分析画面のフィールド一覧を見てみるとアイコンが違いますね。上がデータセット編集から追加した計算フィールドで、下が分析画面から追加した計算フィールドです。
category1strが2つ
次のようにリンクするフィールドとして選択することが出来ました。
データセット編集から追加した計算フィールドは選択できる
この方法を使うことでこのように閲覧者から認識しやすいコントロールになったと思います。
動作している
さいごに
本日は Amazon QuickSight でパラメータコントロール値のデータセットフィールドに計算フィールドをリンクできないときの対処法を紹介しました。
普段何気なく分析から計算フィールドを作成することが多かったのですが、データセット編集から作成するのか分析から作成するのか違いを意識したほうが良いですね。