今回は、Tableauの日付関数入門として、DATETRUNC関数とDATEADD関数を利用した月初日・月末日の求め方をご紹介します!
2つの関数は、ざっくり説明すると次のようなことができる関数です。(詳しい説明はTableau公式ヘルプの日付関数をご参照ください。)
DATETRUNC
日付を指定した単位(年、月など)で切り捨てる関数
DATEADD
日付に指定した単位(年、月など)と指定した数で加算(減算)する関数
では早速やってみましょう~。
月初日・月末日を求める数式
数式 | 説明 | |
当月月初日 (1日) |
DATETRUNC(‘month’, TODAY()) | 当日を月単位’month’で丸めると、[当月月初日(1日)]になります。 TODAY()は本日を返す関数です。 今回は[当月月初日(1日)]をベースに、他の日付も求めていきます! |
翌月月初日 (1日) |
DATEADD(‘month’, 1, DATETRUNC(‘month’, TODAY())) | 上で求めた[当月月初日]にDATEADDで1月足せば、[翌月月初日(1日)]になります。 |
前月月初日 (1日) |
DATEADD(‘month’, -1, DATETRUNC(‘month’, TODAY())) | 上で求めた[当月月初日]にDATEADDで1月引くと、[前月月初日(1日)]になります。 加算減算する数を変えると好きな月の月初が求められます。 |
当月月末日 | DATEADD(‘day’, -1, DATEADD(‘month’, 1, DATETRUNC(‘month’, TODAY()))) | ここからは月末日を計算していきます。 当月の月末=翌月1日の1日前 なので、 上で求めた[翌月月初日]からDATEADDで1日引くと[当月月末日]が求められます。 |
前月月末日 | DATEADD(‘day’, -1, DATETRUNC(‘month’, TODAY())) | 前月月末=前月1日の1日前 なので、 上で求めた[当月月初日]からDATEADDで1日引くと[前月月末日]が求められます。 |
翌月月末日 | DATEADD(‘day’, -1, DATEADD(‘month’, 2, DATETRUNC(‘month’, TODAY()))) | 翌月月末=2か月後の1日の1日前 なので、 [2か月後の月初日(1日)]をDATEADDとDATATRUNCを使って計算し、さらに1日引くと [翌月月末日]が求められます。 |
日付計算結果
結果は上の図のようになりました。
本日は2022年4月13日なので、どれも正しく求められていますね!
おわりに
当月月初日(1日)の計算結果を元に、いろいろな月初日月末日を求めてみました。一つ覚えると、そこから発展していろいろな日付が求められるので楽しいですね!
今回はTableau Desktopでやってみましたが、Tableau Prepでも同じ関数が使えます。
弊社ブログの人気記事「Tableau入門: 関数はまずこれを覚えましょう ~その2 文字列・日付関数編~」でも日付関数の紹介をしていますので、Tableau初心者の方はぜひご覧ください!