Amazon QuickSightで日付の集計粒度を動的に変更する

パラメータ、コントロール、truncDate関数を使って計算フィールドを作成します
2023.05.29

データアナリティクス事業本部インテグレーション部コンサルティングチーム・新納(にいの)です。

今回はQuickSightの日付集計小ネタです。日付の集計粒度を、例えば週ごとにから月ごとに変更して見たいという時はフィールドウェルから変更可能ですよね。

分析にアクセスできるAuthorであればいつでも粒度は変更可能ですが、ダッシュボードのみの閲覧を許可された人が集計粒度を変更したい場合はどうすればいいでしょうか。計算フィールド、パラメータ、コントロールを使うとダッシュボード上で集計粒度を動的に指定可能です。

完成イメージ

ダッシュボードにドロップダウンリストを作成し、「週」を選べば週ごとに集計し、「四半期」を選べば四半期ごとに集計する…といったように動的に粒度を変更します。

パラメータ作成

まずはパラメータから作成します。このパラメータは、ダッシュボードを閲覧する人が選んだ集計粒度を、後ほど作成する計算フィールドに渡す役割を持ちます。

任意のパラメータ名を設定し、データタイプには文字列、デフォルト値には一番よくつかわれそうな集計粒度を入れておきます。(今回はを設定しました)

コントロール作成

次にコントロールを作成します。任意の名前を設定し、スタイルはドロップダウンを選択します。値は特定の値を指定し、ダッシュボード閲覧者が選択する集計粒度を入れます。今回は、年、四半期、月、週、日単位で粒度を変更したいので、この5つを選べるように記載しました。

コントロールを作成すると、以下のようにドロップダウンリストが現れました。

計算フィールド作成

次に計算フィールドで選択された集計粒度によって日時のどの部分を返すかを定義します。例えば、2023-01-12というデータがあり、ドロップダウンリストで「年」が選ばれた場合、「2023-01-01」を返すような計算フィールドを作成します。こんなケースに役立つのが日付の指定された部分を返すtruncDate関数です。

truncDate - Amazon QuickSight

以下のケースでは、Switch文を使い、選択された集計粒度によって項目「Date」に入っている日付の指定した部分を返すように定義します。

switch(${Period},
  '日',truncDate("DD",Date),
  '週',truncDate("WK",Date),
  '月',truncDate("MM",Date),
  '四半期',truncDate("Q",Date),
  truncDate("YYYY",Date)
  )

この計算フィールドをディメンジョンとして、フィールドウェルに挿入します。そして集計を「日」に変更します。

これで、冒頭の完成イメージのように集計粒度をダッシュボード上で変更できるようになりました。

最後に

知っておくとちょっと便利なQuickSightのTipsとして、ダッシュボードのみの閲覧者でも日付の集計粒度を変更する方法をご紹介しました。

参考資料