コラム詳細

Tableau 日付関数DATEDIFFで期間を自動計算してみよう

2023年07月25日

  • Tableau
  • 設定・管理

はじめに

セラクCCCのSalesforce推進部Tableau担当のUです。日付のように時間を表す情報は多くのデータソースに存在し、期間の区分や期間同士の比較といった形でデータ分析に利用されています。本記事でご紹介するDATEDIFFは、日数差を数値として表現するだけでなく前年同月比の比較といった実践的な使い道があり、Tableauで関数を使ってみたいという初心者にもオススメです。

 

また、Tableau活用推進の秘訣を深堀した事例もありますので参考になれば幸いです。
【Tableau活用事例解説】コンサルタントが深堀

 

日付関数DATEDIFFとは?

DATEDIFFとは、指定した2つの日時の差を計算する関数です。DIFFとはdifference(ディファレンス)の省略であり「差分」を表します。日数だけではなく、年単位から秒単位まで大小さまざまな単位で差を計算できます。

 

DATEDIFFの構造

DATEDIFFは、期間を表現する単位の指定と2つの日時で構成されています。また、オプションとして週の始まる曜日を指定できます。数式の構造を見ていきましょう。
数式:DATEDIFF(date_part, date1,date2, [start_of_week])

[date_part]を変えることで、差を算出する単位を変更できます。

 

second 秒差
minute 分差
hour 時間差
day 日差
week 週差
month 月差
year 年差

 

[date1,date2]では、差を求めたい任意の2つの日時を指定します。

 

[start_of_week]はオプションのパラメータです。設定することで、「日曜日」や「月曜日」など週の最初とみなす曜日を指定できます。省略した場合には、「週の最初と見なす曜日」はデータソースと同じものになります。

 

DATEDIFF数式の構造<DATEDIFF数式の構造>

 

DATEDIFFの活用シーン

Tableau Desktopにおいて、データを任意の期間で絞り込むためには[日付フィルター]を利用する方法が簡単です。しかし、この[日付フィルター]には特有の問題があります。1つのワークシートで「今年度累計」と「昨年度同日までの累計」のように複数の絞り込みを同時に表示できません。また、[当日]が変化していくため、Tableauの[日付フィルター]を毎日手動で更新する必要もあります。
DATEDIFFをはじめとした日付関数を利用することで、これらの問題を解決できます。

 

DATEDIFF関数の主な利用シーンは以下のような場合です。

 

  • ・生年月日と現在の日付から年齢を算出する
  • ・入会月と退会月から在籍期間を算出する
  • ・IF関数と組み合わせて「○○日締め翌月末払い」を算出する
  • ・「オーダー日」から出荷までの日数を算出する
  • ・「オーダー日」を使って過去3ヶ月分の売上を集計する

 

DATEDIFFの使用手順

Tableau DesktopでDATEDIFFを使用する手順についてご紹介します。

 

データソースを読み込んだ後に「date1,date2にあたる置き換え対象のデータ項目」の右上にある▼から[計算フィールドの作成]をクリック。計算フィールド上に計算式を記述して使用できます。

 

DATEDIFFの実践的な活用例

DATEDIFFの実践的な活用例として、基準日までの数値について前年同期間との比較に使用できる数式をご紹介します。[基準日]は任意の日付です。

 

今年の基準日までの数値を計算する数式

DATEDIFF(‘year’,[Order Date],[基準日])=0

AND

DATEDIFF(‘day’,[Order Date],[基準日])>=0

 

去年の基準日までの数値を計算する数式

DATEDIFF(‘year’,[Order Date],[基準日])=1

AND

DATEDIFF(‘day’,[Order Date],DATEADD(‘year’,-1,[日]))>=0

 

DATEDIFF(‘year’, [Order Date], [基準日]) = 0で「今年」を、DATEDIFF(‘year’, [Order Date], [基準日]) = 1で「去年」を参照します。

 

DATEDIFF(‘day’,[Order Date],[基準日]) >=0で「今年の1月1日から基準日まで」を、DATEDIFF(‘day’,[Order Date],DATEADD(‘year’,-1,[基準日]))>=0で「去年の1月1日から、基準日の1年前の日付まで」を参照できます。

 

DATEDIFFを使う際に注意すべき「〇〇年」とDATETRUNC

DATEDIFFを使う際には、計算過程で日時データの一部を切り捨てる処理が行われることに注意する必要があります。この処理は別の日付関数であるDATETRUNCと同じものです。

 

[year]単位でDATEDIFFを使用する場合、2022や2023といった数値以外が切り捨てられます。たとえば2022/12/1と2023/1/1の差を計算すると結果は1に、2022/2/1と2022/11/1の差を計算すると結果は0になってしまいます。
年をまたぐ差を計算する際には、[month]単位で計算するといった方法を利用しましょう。

 

DATEDIFFの年差計算と実態のズレ<DATEDIFFの年差計算と実態のズレ>

 

まとめ

DATEDIFFをはじめとした日付関数は、時間軸に沿った推移や期間ごとの比較などデータの可視化に活用できます。また、[フィルターアクション]では実現できない複数の絞り込みを同時に実行できるため、ダッシュボードで複数のグラフを同時に確認する場合にも便利です。「実用的なTableau関数の使い方について学びたい」「使いやすいダッシュボード作成を依頼したい」といった場合は無料相談からお問い合わせください。当社には300名(23年5月時点)超のSalesforce/Tableau専門コンサルタントやセキュリティ技術者が在籍しています。TableauとSalesforceの連携やダッシュボード構築からTableau定着や活用支援まで幅広い支援サービス領域が強みです。

 

また、Tableauを導入しているものの活用が進んでいない企業さまやTableau活用の人材育成を実行したい企業さまは、ぜひTableau Data Cruise へお問い合わせください

 

※Tableau Data Cruise とは

セールスフォース・ジャパンTableauと共同で企画・開発したワークショップ型の人材育成サービスです。3ヵ月でTableauの基礎知識からデータ活用の実践スキルを習得し、社内に浸透させる人材創出にコミットします。

Salesforceでお悩みなら、
まずはお気軽に
お問い合わせください

Salesforceでお悩みなら、
まずはお気軽に
お問い合わせください