この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
データアナリティクス事業本部 BIチームのkariyaです。
QuickSightで可視化する際に、週の始まりを月曜として表示できないか?というところからスタートし、試してみたことをまとめました。
使用データ
2022/12/1~2022/12/31の日付と、日ごとの売上金額が入ったデータを使用します。
週の区切り方を確認する
準備
デフォルトの週を確認するための計算フィールドを作成します。
年月日
曜日番号を示す計算フィールドを作成します。
extract("WD",{年月日})
曜日を示す計算フィールドを作成します。
ifelse(
曜日番号 = 1, "日",
曜日番号 = 2, "月",
曜日番号 = 3, "火",
曜日番号 = 4, "水",
曜日番号 = 5, "木",
曜日番号 = 6, "金",
"土"
)
これで準備ができました。
ピボットテーブルで見てみる
作成した計算フィールドと、年月日をピボットテーブルに配置します。
データ型が日付の場合、集計単位を選択できますので、ここでは週
とします。
各週に入っている日付と曜日を表示すると、週の最初の曜日が日曜となっています。
曜日、曜日番号、週を並べてみると、曜日番号1から7までが1つの週となり、曜日番号1が週の始めとなっていることがわかります。
月曜始まりにしてみる
同じ週の間は計算結果が同じになるように、例えば年月日が12/5~12/11に対してすべての結果が12/5となる計算フィールドを作成します。
ifelse(
//日曜の場合:前週の月曜を出す
extract("WD", {年月日}) = 1, addDateTime(-6, 'DD',{年月日}),
//日曜以外の場合:その週の月曜を出す
addDateTime(1, 'DD', truncDate("WK",{年月日}))
)
作成した計算フィールドをピボットテーブルに配置すると、月曜が週の開始日として表示できました。
他にも試してみる
このように、一定の期間に対して同じ結果を出す計算フィールドを作成すると、日付を色々な単位で区切ることができます。
例えば、月の前半と後半に分けてみましょう。
ifelse(
//1~15日の場合:前半にする
extract('DD', {年月日}) < 16, "1.前半",
//それ以外の場合:後半にする
"2.後半"
)
月の前半と後半を分けることができました。
上旬・中旬・下旬に分けることも可能です。
ifelse(
//1~10日の場合:中旬にする
extract('DD', {年月日}) < 11, "1.上旬",
//11~20日の場合:中旬にする
extract('DD', {年月日}) < 21, "2.中旬",
//それ以外の場合:下旬にする
"3.下旬"
)
おわりに
日付の集計単位を変える方法について記載しました。 備忘録としてまとめましたが、どなたかのご参考になれば幸いです。