BIツールとしてAWS QuickSiteを利用して、現在、売上月報のような『月ごと×各地点(店舗)』のようなデータを集計して、ダッシュボードとして表示しています。
月単位で集計されるデータをQuickSiteのコントール機能を利用することで選択した年月のみとフィルターを掛けたかったのですが、一筋縄ではいきませんでした。
QuickSiteコントロールの制限
QuickSiteでは、データの動的フィルターをパラメータとコントロールの機能を利用することで設定することができます。
日付のフィルターも可能ですが、QuickSiteの機能では、日単位で選択して、フィルターを掛けることになります。
そのため、選択した月単位というレベルは、直接的にデータの制御ができません。
そこで、今回は日付選択でフィルターを掛けるQuickSiteの標準的な機能を活用しつつ、計算フィールドを用いることで、選択した日付から年月単位の動的フィルターを掛ける方法を紹介していきます。
最終的なグラフイメージ
今回の日付フィルターの最終形です。
分かりやすいように、折れ線グラフで表示していますが、X軸に年月、Y軸に売り上げなどの指標を表示しています。
コントロール(上部エリア)で日付選択(年月単位)することで、選択した年月以前のデータを表示するようにしています。
データの準備
まずは、データ自体の準備です。
今回は、各地点の売り上げデータとして、日付を示すYYYY-MM-DD形式の日付型フィールドを含むものを用意しています。
なお、本来は月報のデータですので、YYYYMM形式の文字列で実際のデータは保持されていました。
このままでは、QuickSiteで日付として認識してくれないので、YYYY-MM-DD形式となるように、データを加工して、すべて1日のデータに整形しました。
QuickSite自体は、YYYY-MM-DDの文字列型であっても日付として認識はしてくれます。
QuickSiteがどのような形式を日付として読み込むかは、公式ドキュメントを参照してください。
QuickSightでパラメーターの作成
データをQuickSightに取り込んだ後、動的に日付を選択できるように、パラメータを作成します。
QuickSightの「パラメータ」タブから、新規に日付型のパラメータを作成します。
時間の詳細度は、月報データなので、月単位でよいのですが、パラメータの仕様上「日」まで設定する必要があります。
また、初期値は相対日付で2か月前の値を選択しました。
月報データなので売上げが確定するタイミングを考慮して設定していますが、必要に応じてカスタマイズや調整を行ってください。
パラメータを作成後、メニューから「コントロールを追加」を選択し、日付選択メニューをシートに追加します。
コントロールの追加の画面では、以下のように設定しました。
名前:年月選択
スタイル:日付選択ツール
日付形式:YYYY年MM月
これで、コントロールに日付選択を設定することで、任意の日付を基にしたフィルタリングが可能になります。
ただし、このままでは、日付を選択した後の表示は、2024年6月のように月まで表示になりますが、実際には日付を選択することになるので、フィルターは選択した日で表示されてしまします。
計算フィールドを利用したデータフィルタリング
次に、QuickSightの計算フィールドを使用して、選択した日付の年月だけを抽出し、データに含まれている月報日付と一致するかどうか判定するフィルターを作成します。
「+計算フィールド」をクリックして、新たにフィールドを追加します。
計算フィールドを追加するとこのような画面になるので、ここで計算式を記載していきます。
左側の入力欄に直接記載してもいいですが、データセットのフィールドおよびパラメータの値は、右側のメニューから選択することで挿入も可能です。
今回は、以下のような計算式を使用します。
なお、作成したパラメータの名称がselectDate
、データの日付がYYYYMM
という名称ですので、それぞれに合わせ修正してください。
extract('YYYY', ${selectDate}) = extract('YYYY', YYYYMM)
AND extract('MM', ${selectDate}) = extract('MM', YYYYMM)
この計算式では、extract
関数を使用して、”YYYY”, ”MM”と第一引数を設定することで設定した日付から年と月を抽出しています。
これにより、選択した年月が一致するデータにはフラグが立つようになります。
フィルターによるデータ絞込み
最後に、作成した計算フィールドを使用して、表示するデータを絞り込みます。
作成した計算フィールドの名称『sSelectedYYYYMM』を選択して、フィルター条件として、「1」と等しい場合のみ表示するように設定します。
これで、日付を選択することにより、該当の年月でフィルターを掛けることが出来ました。
おわりに
日付選択ツールを利用しつつ、年月フィルターを掛ける方法の紹介でした。
今回の計算フィールドは、YYYYの一致とMMの一致をAND
で結んでいますが、別々に計算フィールドを設定することで、表示範囲はカスタマイズすることが可能です。
同様の方法で年度別にフィルタリングすることも可能です。年度の場合は、1~3月の選択方法が運用方法上もやや注意が必要です。
コメント