STEP 16:日付関数とタイムシリーズ分析

📅 STEP 16: 日付関数とタイムシリーズ分析

時間の流れを可視化!日付データを自在に操る日付関数をマスター

📋 このステップで学ぶこと

  • 日付データの重要性と活用方法
  • 基本的な日付関数(YEAR、MONTH、DAY)
  • 日付の計算(DATEADD、DATEDIFF)
  • 前年比の計算方法
  • 移動平均の算出
  • 四半期・週次の集計
  • タイムシリーズ分析のベストプラクティス

前提: STEP 14-15で計算フィールドと集計関数を理解していること

📍 1. 日付データとタイムシリーズ分析

日付データの重要性

日付は、ビジネスデータで最も重要なディメンションの1つです。売上の推移、季節性の発見、トレンドの分析など、多くの分析で日付が基準となります。

📊 日付データでできること
  • 推移の可視化:売上の月次推移、週次推移
  • 前年比較:昨年同月と比較して成長率を算出
  • 季節性の発見:夏に売上が増える商品を特定
  • トレンド分析:移動平均で長期的な傾向を把握
  • 予測:過去のデータから未来を予測

Tableauの日付階層

Tableauは日付フィールドを自動的に階層化します。これにより、年→四半期→月→週→日と、自由にドリルダウンできます。

📅 日付フィールドの自動階層
年 (Year) └─ 四半期 (Quarter) └─ 月 (Month) └─ 週 (Week) └─ 日 (Day)

使い方:
1. 日付フィールドを列または行にドラッグ
2. 自動的に「年」レベルで集計される
3. +ボタンをクリックで下の階層にドリルダウン
4. または、日付を右クリック→任意の階層を選択

💡 連続 vs 離散(超重要!)

Tableauの日付には2つの表現方法があります:

種類 特徴と用途
連続 緑色 時間の流れを表現、折れ線グラフに適している
離散 青色 カテゴリとして扱う、棒グラフに適している

日付を右クリック→「連続」または「離散」を選択して切り替えられます。

📆 2. 基本的な日付関数

【準備】サンプルデータを作成しよう

タイムシリーズ分析の練習用に、2年分のデータを用意します。

📝 サンプルデータ(sales_timeseries.xlsx)

2023年1月〜2024年12月の2年分のデータを作成してください(合計100行以上推奨)。

日付 店舗名 商品カテゴリ 売上
2023/01/05 渋谷店 家電 120000
2023/01/12 新宿店 衣料品 15000
2024/01/05 渋谷店 家電 150000
2024/01/12 新宿店 衣料品 18000

ファイル名「sales_timeseries.xlsx」で保存してください。
ポイント:前年比を計算するため、2年分のデータが必要です。

YEAR、MONTH、DAY関数

最も基本的な日付関数です。日付から年・月・日を個別に取り出せます。

📊 日付抽出関数
関数 計算式 例(2024/03/15の場合)
YEAR YEAR([日付]) 2024
MONTH MONTH([日付]) 3
DAY DAY([日付]) 15
📝 組み合わせ例:年月ラベルの作成

名前:年月
計算式:

STR(YEAR([日付])) + “/” + STR(MONTH([日付]))

例:2024/03/15 → “2024/3”

DATEPART関数(汎用的な抽出)

DATEPART関数は、任意の日付要素を抽出できる万能関数です。

📊 DATEPARTで抽出できる要素
datepart 意味 値の範囲
‘year’ 2023, 2024, …
‘quarter’ 四半期 1〜4
‘month’ 1〜12
‘week’ 1〜53
‘weekday’ 曜日 1=日曜〜7=土曜
‘day’ 1〜31
📝 曜日名を表示する計算フィールド

名前:曜日名
計算式:

CASE DATEPART(‘weekday’, [日付]) WHEN 1 THEN “日曜日” WHEN 2 THEN “月曜日” WHEN 3 THEN “火曜日” WHEN 4 THEN “水曜日” WHEN 5 THEN “木曜日” WHEN 6 THEN “金曜日” WHEN 7 THEN “土曜日” END

例:2024/03/15(金曜日)→ “金曜日”

🔢 3. 日付の計算(DATEADD、DATEDIFF)

DATEADD関数(日付の加算・減算)

日付に対して、指定した期間を足したり引いたりできます。

📅 DATEADD関数の構文
DATEADD(‘datepart’, interval, [日付])

datepart:‘year’, ‘month’, ‘day’, ‘week’ など
interval:加える数(負の数で減算)

📊 DATEADD関数の使用例
用途 計算式 結果(2024/03/15の場合)
1年後 DATEADD(‘year’, 1, [日付]) 2025/03/15
3ヶ月前 DATEADD(‘month’, -3, [日付]) 2023/12/15
7日後 DATEADD(‘day’, 7, [日付]) 2024/03/22
納期計算 DATEADD(‘day’, 14, [注文日]) 注文日から14日後

DATEDIFF関数(日付間の差分)

2つの日付の間の期間を計算できます。

📅 DATEDIFF関数の構文
DATEDIFF(‘datepart’, [開始日], [終了日])
📊 DATEDIFF関数の使用例
用途 計算式
配送日数 DATEDIFF(‘day’, [注文日], [配送日])
年齢計算 DATEDIFF(‘year’, [生年月日], TODAY())
データ鮮度 DATEDIFF(‘day’, MAX([日付]), TODAY())

TODAY、NOW関数

現在の日付・時刻を取得する関数です。

📅 現在日時を取得する関数
関数 説明
TODAY() 今日の日付(時刻なし) 2024/03/15
NOW() 現在の日時 2024/03/15 14:30:25
📝 実用例:期限ステータスの判定

名前:期限ステータス
計算式:

IF [期限日] < TODAY() THEN "期限切れ" ELSEIF DATEDIFF('day', TODAY(), [期限日]) <= 7 THEN "まもなく" ELSE "余裕あり" END

📊 4. 前年比の計算

前年比とは

前年比(YoY: Year over Year)は、昨年の同時期と比較して、どれだけ成長・減少したかを示す指標です。ビジネス分析で最も重要な指標の1つです。

📈 前年比の計算式
前年比(%) = (今年の売上 – 昨年の売上) / 昨年の売上 × 100

例:今年1月の売上が120万円、昨年1月が100万円の場合
前年比 = (120 – 100) / 100 × 100 = +20%(20%成長)

【実践】クイック表計算で前年比を計算

Tableauではクイック表計算を使うと、簡単に前年比を計算できます。

📊 クイック表計算で前年比を追加する手順
  1. 日付」を列シェルフにドラッグ(連続、月を選択)
  2. 売上」を行シェルフにドラッグ
  3. 行シェルフのSUM(売上)を右クリック
  4. クイック表計算」→「前年比成長率」を選択
  5. 自動的に前年比が計算される!
⚠️ 注意:前年のデータが必要

前年比を計算するには、少なくとも2年分のデータが必要です。
例えば、2024年1月のデータしかない場合、2023年1月のデータがないため前年比は計算できません(NULLになります)。

📊 前月比・前週比の計算

同様の手順で、前月比や前週比も計算できます:

  1. メジャーを右クリック
  2. 「クイック表計算」→「前期比成長率
  3. 表計算の編集で期間を調整

📈 5. 移動平均の算出

移動平均とは

移動平均(Moving Average)は、一定期間の平均を計算しながら時間を移動させていく手法です。日々の変動を平滑化して、長期的なトレンドを把握できます。

📊 移動平均の例(3日移動平均)
日付 売上 3日移動平均 計算方法
1/1 100 データ不足
1/2 120 データ不足
1/3 110 110 (100+120+110)/3
1/4 130 120 (120+110+130)/3
1/5 140 127 (110+130+140)/3

日々の変動を平滑化して、トレンドが見やすくなります。

【実践】クイック表計算で移動平均を作成

Tableauでは、クイック表計算で簡単に移動平均を追加できます。

📊 移動平均の作成手順
  1. 日付」を列シェルフにドラッグ(連続、日を選択)
  2. 売上」を行シェルフにドラッグ
  3. 行シェルフのSUM(売上)を右クリック
  4. クイック表計算」→「移動平均」を選択
  5. 表計算の編集で設定を調整:
    • 前の値:6(7日移動平均なら6)
    • 次の値:0
    • 集計:平均
💡 移動平均の期間の使い分け
期間 用途
3日移動平均 短期トレンド、日々の変動を少し平滑化
7日移動平均 週次トレンド、曜日の影響を除去
30日移動平均 月次トレンド、中期的な傾向
90日移動平均 四半期トレンド、長期的な傾向

📅 6. 四半期・週次の集計

四半期集計

Tableauの組み込み機能を使えば、四半期別の集計も簡単です。

📊 四半期別売上を表示する方法
  1. 日付」を列シェルフにドラッグ
  2. 日付を右クリック →「四半期」を選択
  3. 売上」を行シェルフにドラッグ
  4. 四半期別の売上が表示される
📝 四半期ラベルの計算フィールド

名前:四半期ラベル
計算式:

STR(YEAR([日付])) + ” Q” + STR(DATEPART(‘quarter’, [日付]))

例:2024/03/15 → “2024 Q1”

営業日のカウント

平日(月〜金)のみをカウントする計算フィールドも作成できます。

📝 営業日フラグの計算フィールド

名前:営業日フラグ
計算式:

IF DATEPART(‘weekday’, [日付]) >= 2 AND DATEPART(‘weekday’, [日付]) <= 6 THEN 1 ELSE 0 END

解説:weekday=1は日曜、2=月曜〜6=金曜、7=土曜
月〜金(2〜6)なら1、土日なら0を返す

📊 7. タイムシリーズ分析のベストプラクティス

✅ やるべきこと(Do)
ルール 理由
連続日付を使う 折れ線グラフには緑色(連続)の日付で時間の流れを表現
適切な粒度を選ぶ 長期分析は月次、短期分析は日次
移動平均で平滑化 ノイズの多いデータはトレンド化して見やすく
前年比を表示 季節性を除外して成長率を可視化
❌ 避けるべきこと(Don’t)
避けること 理由
離散日付で折れ線 時間の連続性が見えにくい
粒度が不適切 10年分を日次で見るのは多すぎる
異なる期間の比較 31日の月と28日の月を単純比較しない
💡 季節性の扱い方

多くのビジネスデータには季節性があります:

  • アパレル:春夏秋冬で売上変動
  • 飲食:週末・平日、ランチ・ディナーで変動
  • 旅行:長期休暇(GW、夏休み、年末年始)で変動

対策:前年同月比(YoY)で比較すれば、季節性の影響を除外できます!

📝 STEP 16 のまとめ

✅ このステップで学んだこと
  • 日付の重要性:ビジネス分析の基礎となるディメンション
  • 日付抽出:YEAR、MONTH、DAY、DATEPART、DATENAME
  • 日付計算:DATEADD(加減算)、DATEDIFF(差分)
  • 現在日時:TODAY()、NOW()
  • 前年比:クイック表計算で簡単に算出
  • 移動平均:トレンドの把握に有効
  • 四半期・週次:組み込み階層で簡単に集計
  • 連続 vs 離散:グラフの種類で使い分け
💡 最重要ポイント

日付関数はタイムシリーズ分析の要です。特に前年比(YoY)と移動平均の2つを使いこなせば、売上の成長性とトレンドを正確に把握できます。Tableauのクイック表計算を活用すれば、複雑な計算も簡単に実装できます。連続日付(緑色)を使って、時間の流れを美しく可視化しましょう!

🎯 次のステップの準備

次のSTEP 17では、「LOD表現(Level of Detail)の完全理解」を学びます。LOD表現を使うと、異なる粒度での計算が可能になり、より高度な分析ができるようになります!

📝 理解度チェック

問題 1 基礎

Tableauで日付フィールドが「連続」の場合と「離散」の場合、それぞれどのような色で表示されますか?

【解答】

連続:緑色離散:青色です。

連続は時間の流れを表現し、折れ線グラフに適しています。離散はカテゴリとして扱い、棒グラフに適しています。日付を右クリックすれば切り替えられます。

問題 2 基礎

DATEADD(‘month’, -3, [日付]) は何を計算しますか?

【解答】

日付の3ヶ月前を計算します。

例えば、[日付]が2024/03/15の場合、結果は2023/12/15になります。
interval(第2引数)に負の数を指定すると、過去の日付が計算されます。

問題 3 応用

前年比(YoY)を計算するために必要なデータ条件は何ですか?また、クイック表計算でどのように設定しますか?

【解答】

必要なデータ条件:少なくとも2年分のデータが必要です。
例えば、2024年1月の前年比を計算するには、2023年1月のデータが必要です。前年のデータがない月はNULL(空白)になります。

クイック表計算の設定:
1. メジャー(売上など)を右クリック
2. 「クイック表計算」→「前年比成長率」を選択
3. 自動的に前年比が計算される

問題 4 応用

7日移動平均を計算する際、「前の値」の設定はいくつにしますか?その理由も説明してください。

【解答】

「前の値」は6に設定します(「次の値」は0)。

理由:7日移動平均は「今日を含めて過去7日間」の平均です。今日(0)を含めて、6日前までの値を使うので、前の値=6となります。

合計日数 = 前の値(6) + 今日(1) = 7日間

🎯 実践演習

演習 1 基礎

「年」「月」「曜日名」という3つの計算フィールドを作成してください。そして、月別の売上推移を折れ線グラフで表示してください。

【計算フィールド】
  1. 名前:年、計算式:YEAR([日付])
  2. 名前:月、計算式:MONTH([日付])
  3. 名前:曜日名、計算式:DATENAME('weekday', [日付])
【折れ線グラフ】
  1. 「日付」を列シェルフにドラッグ
  2. 右クリック →「月」を選択 →「連続」を選択
  3. 「売上」を行シェルフにドラッグ
  4. マークカードで「折れ線」を選択

結果:月別の売上推移が連続した折れ線グラフで表示される

演習 2 応用

月別の売上推移グラフに、前年比成長率を追加してください。売上は棒グラフ、前年比は折れ線グラフで二重軸表示にしてください。

【手順】
  1. 「日付」を列シェルフにドラッグ(連続、月)
  2. 「売上」を行シェルフにドラッグ
  3. 「売上」をもう一度行シェルフにドラッグ
  4. 2つ目のSUM(売上)を右クリック →「クイック表計算」→「前年比成長率」
  5. 2つ目のSUM(売上)を右クリック →「二重軸」
  6. マークカードで:
    • SUM(売上):棒グラフ
    • SUM(売上)(前年比):折れ線

結果:売上(棒)と前年比成長率(折れ線)が重なって表示される

演習 3 発展

日次の売上推移グラフを作成し、7日移動平均を重ねて表示してください。実際の売上は薄い灰色の折れ線、移動平均は太い青色の折れ線にしてください。

【手順】
  1. 「日付」を列シェルフにドラッグ(連続、日)
  2. 「売上」を行シェルフにドラッグ
  3. 「売上」をもう一度行シェルフにドラッグ
  4. 2つ目のSUM(売上)を右クリック →「二重軸」
  5. 2つ目のSUM(売上)を右クリック →「クイック表計算」→「移動平均」
  6. 表計算の編集:前の値=6、次の値=0、集計=平均
  7. マークカードで:
    • SUM(売上):折れ線、灰色(#CCCCCC)、細い線
    • SUM(売上)(移動平均):折れ線、青色、太い線
  8. 右軸を右クリック →「軸の同期」

結果:日次の変動と7日移動平均のトレンドが同時に見える

❓ よくある質問

Q1: 連続と離散の違いがよくわかりません。
連続(緑色)は時間の流れ、離散(青色)はカテゴリです。

折れ線グラフで月次推移を見たいなら連続、棒グラフで各月を比較したいなら離散を使います。連続は軸が途切れず、離散は各項目が独立しています。日付を右クリックすれば切り替えられます。
Q2: 前年比が計算できません(NULLになります)。
前年のデータが存在しない可能性があります。

例えば2024年1月のデータしかない場合、2023年1月のデータがないため前年比は計算できません。少なくとも2年分のデータを用意してください。また、クイック表計算の「相対」設定が「年」になっているか確認しましょう。
Q3: 移動平均が期待と違う値になります。
「前の値」の設定を確認してください。

7日移動平均なら、前の値=6、次の値=0です(今日を含めて7日間)。また、集計方法が「平均」になっているか確認しましょう。「合計」になっていると移動合計になってしまいます。
Q4: 四半期を4月始まり(会計年度)にしたいです。
計算フィールドでカスタム四半期を作成してください。

デフォルトは1月始まり(1-3月=Q1)ですが、会計年度(4月始まり)にしたい場合は、Tableauの「カレンダー設定」で会計年度の開始月を変更する方法があります。メニュー →「データ」→「日付のプロパティ」から設定できます。
Q5: 営業日(平日)だけで集計したいです。
営業日フラグを作成してフィルターしてください。

DATEPART(‘weekday’, [日付])で曜日番号を取得し、月〜金(2〜6)なら1、それ以外は0のフラグを作ります。このフラグで1のみをフィルターすれば、平日だけのデータになります。祝日も除外したい場合は、祝日マスタと結合する必要があります。
Q6: 日付が「1899/12/31」など変な値になります。
データ型が日付ではなく数値になっている可能性があります。

Excelから読み込んだ際、日付列が数値として認識されることがあります。データペインで該当フィールドを右クリック →「データ型の変更」→「日付」を選択してください。または、元のExcelファイルで列の書式を「日付」に設定してから再読み込みしましょう。
📝

学習メモ

BIツール入門 - Step 16

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE