はじめに
QuickSightでは、コントロールとフィルタを組み合わせることで、ビジュアルに表示するデータの絞り込みを行うことができます。
その際、「すべて」が選ばれている場合は、当然絞り込みは行われず全てのデータが表示されるのが通常の挙動です。
今回は、
といった少し特殊なビジュアルを作成したので、方法を共有したいと思います。
結論
先に結論というか、要点だけ記述しておきます。
- コントロールで「すべて」が選ばれた場合に表示したいデータを区別する、フラグ用のカラムを用意します
- 計算フィールドを使います
- コントロールで「すべて」が選ばれている場合は、対応するパラメータがNull扱いされます
前提
CSVをイメージした以下のサンプルデータを元に、やりかたを再現していきます。
コントロールでとある県が選ばれた時は属する市のデータを、「すべて」が選ばれた場合は県全体のデータだけを表示するようにしていきましょう。
まとめの列が、今回のやり方における1つ目のポイントとなります。
まとめが「1」のデータが、「すべて」が選ばれているときに表示したいデータとなります。
都道府県 | 市 | 人口(人) | まとめ |
---|---|---|---|
X県 | A市 | 10000 | 0 |
X県 | B市 | 20000 | 0 |
X県 | C市 | 30000 | 0 |
X県 | 全体 | 60000 | 1 |
Y県 | D市 | 20000 | 0 |
Y県 | E市 | 50000 | 0 |
Y県 | 全体 | 70000 | 1 |
手順
データの読み込み
CSVファイルをQuickSightで扱えるように、Spiceとして取り込むなりATHENAでクエリをかけるなりします。
この部分のやり方は、公式や他の方の記事にお任せします。
ビジュアルの作成
パラメータの作成
次にパラメータを作成していきます。
左側のメニューの「パラメータ」 -> 「作成」の順にクリック。
デフォルト値がないと後の計算フィールドで使えないため、「静的デフォルト値=X県」としておきます。
(デフォルトを「すべて」としたい場合は、計算フィールドを作った後に静的デフォルト値を空にすると良いです)
また、高度な設定で予約値をNullにしておきます。
(本来はここで設定した値が「すべて」を選択したときのパラメータの値になる気がするのですが、今の所そうはならないようです。なので推奨値にしておいても動くのですが、念の為)
コントロールの作成
コントロールは、今回はドロップダウンにします。
パラメータの「vマーク」 -> 「コントロールの追加」の順にクリック。
都道府県フィルタの作成
フィルタを作成して、コントロールで選んだ値に応じて表示の絞り込みが出来るようにします。
左側のメニューの「フィルター」 -> 「フィールドの追加」 -> 「都道府県」の順にクリック。
この時点では、X県を選ぶと全体のデータも表示されてしまいます。
計算フィールドの作成
ここで2つ目・3つ目のポイントが登場します。
まずは、左上の追加から、計算フィールドを選択します。
名称はなんでも構いませんが、役割は表示制御なのでここではそのまま「表示制御」としておきます。
計算式は画像のようにifelseとisNullを使います。
式の説明
まず前提としてコントロールで「すべて」が選ばれた場合、対応するパラメータがNullとして扱われます。
なので
コントロールが「すべて」の場合、Prefectures = Null
コントロールが「X県」の場合、Prefectures = X県
と扱われるわけです。
つまり式の意味は、
コントロールが「すべて」の場合、まとめが「1」となっているデータを「1」、まとめが「0」となっているデータを「0」になる。
コントロールが「すべて」以外の場合、まとめが「1」となっているデータを「0」、まとめが「0」となっているデータを「1」になる。
ということになります。
フィルタ
最後に、作成した「表示制御」を用いてビジュアルにフィルタを設定します。
「表示制御」=1 のデータだけを表示されるようにします。
先程まではX県全体のデータがありましたが、表示されなくなりましたね。
これで全ての作業が完了です。
結果
用意したコントロールで、「すべて」を選んでみます。
狙い通り都道府県の全体のデータのみが表示されるようになりました。
おわりに
今回はQuickSightのコントロールで「すべて」が選ばれた場合の表示制御のやり方を共有しました。
もし同じようなことをしたくなった時の参考になれば幸いです。