QuickSightを1年ほど使って、簡単に出来そうで出来なかったことをまとめてみました。
正確な1ヶ月の平均値を出す
QuickSightの関数で1ヶ月の日数を取得する関数がなくて、正確な平均値を出力する際は以下の2つの計算フィールドを作る必要があった。(SQLで出力する方法もあるが、今回はSQLを使用しない方法で出力してみた。)
dateDiff(truncDate('MM',{add_datetime}),truncDate('MM',addDateTime(1,'MM',{add_datetime})),'DD')
count(id) / MIN(1ヶ月の日数を出力する計算フィールド)
土曜・日曜日を考慮したグラフを作成する
営業日を考慮して着信〜完了までにかかったグラフを作成したかったが、営業日を取得する関数がいなかったので、以下の計算フィールドを作成して実現した。
参考にした記事
(tableauだと祝日も考慮したレポートが作成出来そうだったが、QuickSightはまだ使用できる関数が少ないので土曜・日曜のみを考慮したグラフしか出来なかった。)
ifelse(extract('WD',{add_datetime}) = 1,addDateTime(1,'DD',{add_datetime}),ifelse(extract('WD',{add_datetime}) = 7,addDateTime(2,'DD',{add_datetime}),{add_datetime}))
ifelse(extract('WD',{fix_datetime}) = 1,addDateTime(1,'DD',{fix_datetime}),ifelse(extract('WD',{fix_datetime}) = 7,addDateTime(2,'DD',{fix_datetime}),{fix_datetime}))
MIN(dateDiff(起点日,終点日,'DD'))
コントロールを使用したフィルターで、「今月」や「先月」の制御をする
QuickSightのフィルターで期間指定する際、今月や先月の指定が簡単に出来ないのが、以下の計算フィールド・パラメータ・コントロールを作成することで、プルダウンで制御できるようになった。
ifelse(extract('YYYY',addDateTime(9,'HH',now())) = extract('YYYY',{add_datetime}) AND extract('MM',addDateTime(9,'HH',now())) = extract('MM',{add_datetime}),'1. 今月',ifelse(extract('YYYY',addDateTime(-1,'MM',addDateTime(9,'HH',now()))) = extract('YYYY',{add_datetime}) AND extract('MM',addDateTime(-1,'MM',addDateTime(9,'HH',now()))) = extract('MM',{add_datetime}),'2. 先月',ifelse(extract('YYYY',addDateTime(-2,'MM',addDateTime(9,'HH',now()))) = extract('YYYY',{add_datetime}) AND extract('MM',addDateTime(-2,'MM',addDateTime(9,'HH',now()))) = extract('MM',{add_datetime}),'3. 先々月','')))
パラメータ
コントロール
フィルター
上記の設定が終わると、以下のようにプルダウンで期間の制御ができるようになる。
最後に
他にも簡単に出来そうで出来なかったことたくさんあるので、気が向いたら記事書きます。