
Tableauを使っていると、「2つの日付の差を計算したい」と思う場面は多い。
こういう時に便利なのが、DATEDIFF関数だ。
注文から出荷までの日数や、入会から退会までの在籍期間などを簡単に算出することができる。
今回はこのDATEDIFF関数の意味や使い方を、実例を交えながら、なるべくわかりやすく解説していく。
DATEDIFF関数とは?
DATEDIFF関数は2つの指定した日付の差(日数や月数など)=期間を算出することができる関数だ。
DIFFがわかりにくいと思うが、「difference(ディファレンス)」を省略した表現だ。
DATEDIFFを「DATE」と「DIFF」に分解すると
- DATE=日付
- DIFF=差分
つまり、DATEDIFF=日付の差分(指定したある日付と他の日付の差)を算出する関数ということだ。
例えば、ネットでオーダーを受けた日と実際にお客さんに向けて出荷した日の日数差、つまり
「注文を受けてからどれくらいの日数で出荷できているか?」
を把握したい時などに、DATEDIFF関数は便利だ。
下記はサンプルスーパーストアにおいて、DATEDIFF関数で「オーダー日と出荷日の日数差」を各出荷モードごとに棒グラフで表示した例だ。

各出荷モードに応じてオーダーから出荷までの日数差が異なっていることがお分かりいただけると思う。
このように、DATEDIFF関数は2つの日付の差=期間を把握したい時に活用される。
DATEDIFF関数の使用方法
DATEDIFF関数は計算フィールドを作成して使用する。
指定の仕方は下図の通りだ。

具体的に先ほどの「オーダー日と出荷日の日数差」を算出する例を見ていこう。
オプションの[start_of_week]は慣れてから必要に応じて使えばいいと思う(私は実務であまり使ったことがない)
実際に計算フィールドで指定する場合は下記のように指定する。

例えば、
- オーダー日が2021年9月10日
- 出荷日が2021年9月15日
だった場合は下記のような感じで計算される。

2つ目の日付フィールドで指定された日付から1つ目の日付フィールドの日付を引く。
基本的に日付が浅い方(オーダー日と出荷日ならまずオーダーが先だからオーダー日となる)を1つ目の日付フィールドに指定する。
もちろん日数差をマイナスで表示したい場合も時にはあると思う。
上記例では、DATEDIFFに 'day'を指定して日数差を算出していたが、実際には様々な期間の差を算出可能だ。
- second:秒差
- minute:分差
- hour:時間差
- day:日数差
- week:週差
- month:月差
- year:年差
行いたい分析の目的に合う形で指定の仕方を調整すればOKだ。
DATEDIFF関数の使用シーン
DATEDIFF関数は下記のようなシーンでよく使う。
日付を足し引きすることができるDATEADD関数と組み合わせて使うことも多い。
- 注文日から納品日までの日数差を出したい時
- 生年月日から年齢を出したい時
- 入会月と退会月から在籍期間を算出したい時
などなど、期間を算出したい時に、DATEDIFF関数は非常に便利なので、ぜひ習得してみてほしい。
まとめ
今回は期間を算出するDATEDIFF関数について紹介した。
- 計算フィールドで DATEDIFF('day', [オーダー日], [出荷日])のように指定し、差分を算出する。
- 単位は秒・分・時間・日・週・月・年から選べる。
- 注文から出荷までの日数、誕生日から年齢の算出、入退会月から在籍期間の計算など、期間を求めたいときに便利。
- DATEDIFFはDATEADDと組み合わせると更に応用できる。
日付関数は何種類もあるので混乱しがちだ。
まとめて全部覚えようとするよりは1つずつ集中的に勉強してTableau上での使い方に慣れていくのがおすすめだ。
他の日付関数や日付データを調整する記事は下記で紹介しているので是非参考にしてほしい。





