はじめに
Tableauで週数を取り出そうとすると、「第〇週」というデータになります。(関数でいうとDATEPART)
なんとなく、第1週が年初で、第53週は年末なのかなといった感覚はありますが、
厳密に1月の何日からが第1週扱いなのかはちゃんと把握できていないなと思い、
仕様を確認してみました。
確認内容は以下の3点です。
1. 第1週は1月何日から?
2. 月をまたぐ週の扱いは?
3. 週次データではどうなる?
1. 第1週は1月何日から?
1月のどこを第1週とするかの考え方として、
・ 1月の最初の木曜日を含む週 (ISO 8601)
・ 1月1日~次の週が始まるまで
の2つが一般的(?)にあるようですが、
Tableauでは、後者の 「1月1日~次の週が始まるまで」を第1週としています。
例えば2022年1月であれば、以下のようになります。
※21/12/26~21/12/31は2021年の第53週という扱いになります。
実際に確認してみる
以下のような売上の日次データ(ダミーデータ)を用意し、週数の仕様を確認してみます。
※Tableauの週の始まりがデフォルトでは日曜日なので、21/12/5(日)~22/2/6(土)の期間のデータとしてます。
年・週ごとに売上の推移を見てみると以下のようになっており、
2022年の第1週の売上がほかの週と比べて小さいことが分かります。
これだけでは分かり辛いので、各週の日数をラベルとして表示してみましょう。
そうすると、2021年の第53週が6日間、2022年の第1週が1日間となっており、
2022年の第1週は1/1の1日のみとなっていることが分かります。(上のカレンダーとも一致)
2. 月をまたぐ週の扱いは?
年をまたぐ場合は、~12/31が前年の第53週、1/1~が当年の第1週、となることは分かりました。
では、月をまたぐ場合はどのように処理されるのでしょうか。
先ほどのデータに月の粒度を追加して確認してみます。
1月~2月のタイミングを見てみると、
第6週が2回登場しており、それぞれ2日間と5日間に分かれています。
月をまたぐ場合、同じ第6週であっても、
1/30~1/31のデータは1月に、2/1~2/5のデータは2月に、割り振られて表現されるようです。
3. 週次データではどうなる?
ここまで、日次のデータを用いて週数の仕様を確認してきました。
最後に、元データが週次データだった場合の挙動を確認してみたいと思います。
先ほどの売上データの元データを週次でサマリし、確認していきます。
まずは第1週の仕様から確認していきます。
年・週ごとに売上の推移を見てみると、2022年の最初が第2週になっており、第1週が見当たりません。
週次データの場合は、日付列の値が第何週に含まれているのかで週数が決まります。
今回の例の場合は、
2021/12/26 ⇒ 2021年第53週
2022/01/02 ⇒ 2022年第2週
のため、2022年第1週はデータなしの扱いになります。
次に、月をまたぐ場合の挙動についても確認してみます。
こちらは単純に、日付列の値が属する月のデータとして扱われます。
例を見ても、2022/1/30週(第6週)のデータは1月のデータとなっています。
日次データと違って週の途中でデータを分けようがないので、当然といえば当然の仕様ですね。
おわりに
今回、第〇週(DATEPARTで取り出した週数)の仕様を確認してみました。
仕様としては非常に単純ではありますが、
しっかりと理解していないと思わぬ間違いにつながりかねません。
例えばですが、
「毎年第53週と第1週の売上が悪いから、年末年始に販促施策をやろう!」
という読みときは正しいでしょうか?
本当に正しい場合もあるかもしれませんが、
おそらく、第53週と第1週の日数が少ないから売上が低く見えてしまっているだけですよね。
そこに表計算なども絡んでくると、更に理解の難易度は上がってきてしまいます。
(そこまで見る場合は、DATETRUNCを使うか、週次粒度の元データを使う方が適切かと思います)
基本的には週次でデータを見る場合は、
〇年〇月〇日の形(DATETRUNC)で扱うことが多いとは思いますが、
データをブレイクダウンしていく中で、第〇週の形で見ることもあると思います。
そういった際に、この記事が正しくデータを理解するための一助になれば幸いです。