📅 STEP 16: 日付関数とタイムシリーズ分析
時間の流れを可視化!日付データを自在に操る日付関数をマスター
📋 このステップで学ぶこと
- 日付データの重要性と活用方法
- 基本的な日付関数(YEAR、MONTH、DAY)
- 日付の計算(DATEADD、DATEDIFF)
- 前年比の計算方法
- 移動平均の算出
- 四半期・週次の集計
- タイムシリーズ分析のベストプラクティス
前提: STEP 14-15で計算フィールドと集計関数を理解していること
📍 1. 日付データとタイムシリーズ分析
日付データの重要性
日付は、ビジネスデータで最も重要なディメンションの1つです。売上の推移、季節性の発見、トレンドの分析など、多くの分析で日付が基準となります。
- 推移の可視化:売上の月次推移、週次推移
- 前年比較:昨年同月と比較して成長率を算出
- 季節性の発見:夏に売上が増える商品を特定
- トレンド分析:移動平均で長期的な傾向を把握
- 予測:過去のデータから未来を予測
Tableauの日付階層
Tableauは日付フィールドを自動的に階層化します。これにより、年→四半期→月→週→日と、自由にドリルダウンできます。
使い方:
1. 日付フィールドを列または行にドラッグ
2. 自動的に「年」レベルで集計される
3. +ボタンをクリックで下の階層にドリルダウン
4. または、日付を右クリック→任意の階層を選択
Tableauの日付には2つの表現方法があります:
| 種類 | 色 | 特徴と用途 |
|---|---|---|
| 連続 | 緑色 | 時間の流れを表現、折れ線グラフに適している |
| 離散 | 青色 | カテゴリとして扱う、棒グラフに適している |
日付を右クリック→「連続」または「離散」を選択して切り替えられます。
📆 2. 基本的な日付関数
【準備】サンプルデータを作成しよう
タイムシリーズ分析の練習用に、2年分のデータを用意します。
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 |
名前:年月
計算式:
例:2024/03/15 → “2024/3”
DATEPART関数(汎用的な抽出)
DATEPART関数は、任意の日付要素を抽出できる万能関数です。
| datepart | 意味 | 値の範囲 |
|---|---|---|
| ‘year’ | 年 | 2023, 2024, … |
| ‘quarter’ | 四半期 | 1〜4 |
| ‘month’ | 月 | 1〜12 |
| ‘week’ | 週 | 1〜53 |
| ‘weekday’ | 曜日 | 1=日曜〜7=土曜 |
| ‘day’ | 日 | 1〜31 |
名前:曜日名
計算式:
例:2024/03/15(金曜日)→ “金曜日”
🔢 3. 日付の計算(DATEADD、DATEDIFF)
DATEADD関数(日付の加算・減算)
日付に対して、指定した期間を足したり引いたりできます。
datepart:‘year’, ‘month’, ‘day’, ‘week’ など
interval:加える数(負の数で減算)
| 用途 | 計算式 | 結果(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(‘day’, [注文日], [配送日]) |
| 年齢計算 | DATEDIFF(‘year’, [生年月日], TODAY()) |
| データ鮮度 | DATEDIFF(‘day’, MAX([日付]), TODAY()) |
TODAY、NOW関数
現在の日付・時刻を取得する関数です。
| 関数 | 説明 | 例 |
|---|---|---|
| TODAY() | 今日の日付(時刻なし) | 2024/03/15 |
| NOW() | 現在の日時 | 2024/03/15 14:30:25 |
名前:期限ステータス
計算式:
📊 4. 前年比の計算
前年比とは
前年比(YoY: Year over Year)は、昨年の同時期と比較して、どれだけ成長・減少したかを示す指標です。ビジネス分析で最も重要な指標の1つです。
例:今年1月の売上が120万円、昨年1月が100万円の場合
前年比 = (120 – 100) / 100 × 100 = +20%(20%成長)
【実践】クイック表計算で前年比を計算
Tableauではクイック表計算を使うと、簡単に前年比を計算できます。
- 「日付」を列シェルフにドラッグ(連続、月を選択)
- 「売上」を行シェルフにドラッグ
- 行シェルフのSUM(売上)を右クリック
- 「クイック表計算」→「前年比成長率」を選択
- 自動的に前年比が計算される!
前年比を計算するには、少なくとも2年分のデータが必要です。
例えば、2024年1月のデータしかない場合、2023年1月のデータがないため前年比は計算できません(NULLになります)。
同様の手順で、前月比や前週比も計算できます:
- メジャーを右クリック
- 「クイック表計算」→「前期比成長率」
- 表計算の編集で期間を調整
📈 5. 移動平均の算出
移動平均とは
移動平均(Moving Average)は、一定期間の平均を計算しながら時間を移動させていく手法です。日々の変動を平滑化して、長期的なトレンドを把握できます。
| 日付 | 売上 | 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では、クイック表計算で簡単に移動平均を追加できます。
- 「日付」を列シェルフにドラッグ(連続、日を選択)
- 「売上」を行シェルフにドラッグ
- 行シェルフのSUM(売上)を右クリック
- 「クイック表計算」→「移動平均」を選択
- 表計算の編集で設定を調整:
- 前の値:6(7日移動平均なら6)
- 次の値:0
- 集計:平均
| 期間 | 用途 |
|---|---|
| 3日移動平均 | 短期トレンド、日々の変動を少し平滑化 |
| 7日移動平均 | 週次トレンド、曜日の影響を除去 |
| 30日移動平均 | 月次トレンド、中期的な傾向 |
| 90日移動平均 | 四半期トレンド、長期的な傾向 |
📅 6. 四半期・週次の集計
四半期集計
Tableauの組み込み機能を使えば、四半期別の集計も簡単です。
- 「日付」を列シェルフにドラッグ
- 日付を右クリック →「四半期」を選択
- 「売上」を行シェルフにドラッグ
- 四半期別の売上が表示される
名前:四半期ラベル
計算式:
例:2024/03/15 → “2024 Q1”
営業日のカウント
平日(月〜金)のみをカウントする計算フィールドも作成できます。
名前:営業日フラグ
計算式:
解説:weekday=1は日曜、2=月曜〜6=金曜、7=土曜
月〜金(2〜6)なら1、土日なら0を返す
📊 7. タイムシリーズ分析のベストプラクティス
| ルール | 理由 |
|---|---|
| 連続日付を使う | 折れ線グラフには緑色(連続)の日付で時間の流れを表現 |
| 適切な粒度を選ぶ | 長期分析は月次、短期分析は日次 |
| 移動平均で平滑化 | ノイズの多いデータはトレンド化して見やすく |
| 前年比を表示 | 季節性を除外して成長率を可視化 |
| 避けること | 理由 |
|---|---|
| 離散日付で折れ線 | 時間の連続性が見えにくい |
| 粒度が不適切 | 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表現を使うと、異なる粒度での計算が可能になり、より高度な分析ができるようになります!
📝 理解度チェック
Tableauで日付フィールドが「連続」の場合と「離散」の場合、それぞれどのような色で表示されますか?
連続:緑色、離散:青色です。
連続は時間の流れを表現し、折れ線グラフに適しています。離散はカテゴリとして扱い、棒グラフに適しています。日付を右クリックすれば切り替えられます。
DATEADD(‘month’, -3, [日付]) は何を計算しますか?
日付の3ヶ月前を計算します。
例えば、[日付]が2024/03/15の場合、結果は2023/12/15になります。
interval(第2引数)に負の数を指定すると、過去の日付が計算されます。
前年比(YoY)を計算するために必要なデータ条件は何ですか?また、クイック表計算でどのように設定しますか?
必要なデータ条件:少なくとも2年分のデータが必要です。
例えば、2024年1月の前年比を計算するには、2023年1月のデータが必要です。前年のデータがない月はNULL(空白)になります。
クイック表計算の設定:
1. メジャー(売上など)を右クリック
2. 「クイック表計算」→「前年比成長率」を選択
3. 自動的に前年比が計算される
7日移動平均を計算する際、「前の値」の設定はいくつにしますか?その理由も説明してください。
「前の値」は6に設定します(「次の値」は0)。
理由:7日移動平均は「今日を含めて過去7日間」の平均です。今日(0)を含めて、6日前までの値を使うので、前の値=6となります。
合計日数 = 前の値(6) + 今日(1) = 7日間
🎯 実践演習
「年」「月」「曜日名」という3つの計算フィールドを作成してください。そして、月別の売上推移を折れ線グラフで表示してください。
- 名前:年、計算式:
YEAR([日付]) - 名前:月、計算式:
MONTH([日付]) - 名前:曜日名、計算式:
DATENAME('weekday', [日付])
- 「日付」を列シェルフにドラッグ
- 右クリック →「月」を選択 →「連続」を選択
- 「売上」を行シェルフにドラッグ
- マークカードで「折れ線」を選択
結果:月別の売上推移が連続した折れ線グラフで表示される
月別の売上推移グラフに、前年比成長率を追加してください。売上は棒グラフ、前年比は折れ線グラフで二重軸表示にしてください。
- 「日付」を列シェルフにドラッグ(連続、月)
- 「売上」を行シェルフにドラッグ
- 「売上」をもう一度行シェルフにドラッグ
- 2つ目のSUM(売上)を右クリック →「クイック表計算」→「前年比成長率」
- 2つ目のSUM(売上)を右クリック →「二重軸」
- マークカードで:
- SUM(売上):棒グラフ
- SUM(売上)(前年比):折れ線
結果:売上(棒)と前年比成長率(折れ線)が重なって表示される
日次の売上推移グラフを作成し、7日移動平均を重ねて表示してください。実際の売上は薄い灰色の折れ線、移動平均は太い青色の折れ線にしてください。
- 「日付」を列シェルフにドラッグ(連続、日)
- 「売上」を行シェルフにドラッグ
- 「売上」をもう一度行シェルフにドラッグ
- 2つ目のSUM(売上)を右クリック →「二重軸」
- 2つ目のSUM(売上)を右クリック →「クイック表計算」→「移動平均」
- 表計算の編集:前の値=6、次の値=0、集計=平均
- マークカードで:
- SUM(売上):折れ線、灰色(#CCCCCC)、細い線
- SUM(売上)(移動平均):折れ線、青色、太い線
- 右軸を右クリック →「軸の同期」
結果:日次の変動と7日移動平均のトレンドが同時に見える
❓ よくある質問
折れ線グラフで月次推移を見たいなら連続、棒グラフで各月を比較したいなら離散を使います。連続は軸が途切れず、離散は各項目が独立しています。日付を右クリックすれば切り替えられます。
例えば2024年1月のデータしかない場合、2023年1月のデータがないため前年比は計算できません。少なくとも2年分のデータを用意してください。また、クイック表計算の「相対」設定が「年」になっているか確認しましょう。
7日移動平均なら、前の値=6、次の値=0です(今日を含めて7日間)。また、集計方法が「平均」になっているか確認しましょう。「合計」になっていると移動合計になってしまいます。
デフォルトは1月始まり(1-3月=Q1)ですが、会計年度(4月始まり)にしたい場合は、Tableauの「カレンダー設定」で会計年度の開始月を変更する方法があります。メニュー →「データ」→「日付のプロパティ」から設定できます。
DATEPART(‘weekday’, [日付])で曜日番号を取得し、月〜金(2〜6)なら1、それ以外は0のフラグを作ります。このフラグで1のみをフィルターすれば、平日だけのデータになります。祝日も除外したい場合は、祝日マスタと結合する必要があります。
Excelから読み込んだ際、日付列が数値として認識されることがあります。データペインで該当フィールドを右クリック →「データ型の変更」→「日付」を選択してください。または、元のExcelファイルで列の書式を「日付」に設定してから再読み込みしましょう。
学習メモ
BIツール入門 - Step 16