QuickSightの週表示を月曜始まりにしてみた

週の開始日を月曜にする、月を上旬中旬下旬で分けるなどを試しました。他にも応用ができそうです
2022.12.16

はじめに

データアナリティクス事業本部 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.下旬"
)

おわりに

日付の集計単位を変える方法について記載しました。 備忘録としてまとめましたが、どなたかのご参考になれば幸いです。

参考記事