Tableauで「日付を1日進めたい」「月末を計算したい」「昨日の日付を出したい」——
そんな時に役立つのが DATEADD
関数です。
この記事では、TableauでのDATEADD関数の正しい使い方と、よくあるエラーの原因、実務での活用例までを徹底的に解説します。
目次
DATEADD関数とは?
DATEADD
は、特定の“日付単位”で指定した数値分だけ、日付を加算または減算する関数です。
たとえば:
- 今日+1日 → 明日
- 今日−1日 → 昨日
- 1か月前の日付
- 翌週の月曜日
こうした処理をTableauで柔軟に行えます。
DATEADDの構文と基本の使い方
構文は以下のとおりです:
DATEADD("単位", 数値, [日付フィールド])
使用例
DATEADD("day", 1, TODAY())
→ 今日に1日加えて「明日」の日付を返します。
DATEADD("day", -1, TODAY())
→ 今日から1日引いて「昨日」の日付を返します。
POINT: 引き算は「マイナスの値を足す」ことで実現します。
DATEADDで使える日付単位(DATE_PART)一覧
DATE_PART 値 | 意味 |
---|---|
“year” | 年(例:2023) |
“quarter” | 四半期(例:第1四半期) |
“month” | 月(例:5月) |
“day” | 日(1日、2日…) |
“dayofyear” | 1月1日から何日目か |
“weekday” | 曜日(1〜7) |
“week” | 週単位(1〜52) |
“hour” | 時間(0〜23) |
“minute” | 分(0〜59) |
“second” | 秒(0〜59) |
※ Tableauでは DATEADD("date", ...)
のような曖昧な指定はNG。必ず上記の正規キーワードを使いましょう。
よくあるエラー:「DATEADDが使えない」とは?
エラー例1:”Invalid date part”
→ 日付単位(”day”など)が間違っている。
エラー例2:NULL値との演算
→ 第3引数([日付フィールド])がNULLだと失敗します。IFNULL
やZN
で補完を。
エラー例3:データ型不一致
→ 第3引数が文字列(string型)だと失敗します。必ず日付型フィールドを使いましょう。
DATEADDの実用ユースケース
ユースケース:明日・昨日の日付を表示
DATEADD("day", 1, TODAY())
ユースケース:前月1日を計算
DATEADD("month", -1, DATETRUNC("month", TODAY()))
ユースケース:来週の月曜日を取得
DATEADD("week", 1, DATETRUNC("week", TODAY()))
ユースケース:今月末を算出
DATEADD("day", -1, DATETRUNC("month", DATEADD("month", 1, TODAY())))
ユースケース:レコードのフィルター(30日以内)
[登録日] >= DATEADD("day", -30, TODAY())
DATEDIFFやDATENAMEとの違い
関数 | 目的 | 使用例 |
---|---|---|
DATEADD | 日付を加算・減算する | 明日・先月を出す |
DATEDIFF | 日付の差を数値で返す | 今日から何日後か |
DATENAME | 指定した単位の“名前”を返す | 曜日や月名を取得 |
使い分けのポイント:
- 日付を操作したい →
DATEADD
- 差を数値で出したい →
DATEDIFF
- ラベル用途で曜日などが必要 →
DATENAME
まとめ:DATEADD関数を使いこなす鍵は「日付単位」と「型の一致」
DATEADD関数は非常に汎用性が高く、日付の加算・減算・比較・フィルターのすべてで活躍します。
失敗の多くは:
- 単位指定の綴りミス(”day” → “days” はNG)
- 第3引数がNULLやstring型
上記を避ければ、Tableauにおける時間操作は自在になります。
今後、DATEDIFF・DATETRUNC・DATENAMEとの組み合わせや、可変期間フィルターへの応用も視野に入れるとさらに強力です。
Comment