STEP 24:データブレンディングの基礎

🔗 STEP 24: データブレンディングの基礎

複数のデータソースを統合して、より深い分析を実現しよう

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

  • データブレンディングとは何か
  • 結合(Join)との違いと使い分け
  • プライマリ・セカンダリデータソースの役割
  • リンクフィールドの設定方法
  • 実践的なブレンディング例
  • ブレンディングの制約と注意点

前提: STEP 5でデータソース接続、STEP 17でLOD表現を理解していること

🔍 1. データブレンディングとは

データブレンディングの定義

データブレンディングは、複数の異なるデータソースをビュー上で統合する機能です。別々の場所にあるデータを、1つのビジュアライゼーションで表示できます。

📊 身近な例:異なる情報源を組み合わせる

例えば、あなたが旅行を計画しているとします。

情報源1:Googleマップ(距離と所要時間)
情報源2:予約サイト(ホテルの料金)
情報源3:天気予報サイト(旅行日の天気)

これらを頭の中で「組み合わせて」旅行を計画しますよね。データブレンディングは、Tableauがこの「組み合わせ」を自動でやってくれる機能です!

データブレンディングの使用例

ビジネスでは、様々なシステムからデータを集めて分析することがよくあります。

📊 データブレンディングの活用シーン
組み合わせるデータ 分析目的
売上データ(Excel) + 目標データ(スプレッドシート) 目標達成率の分析
販売実績(データベース) + 人口統計(CSV) 地域特性と売上の相関
Webアクセス(GA) + 売上(社内DB) コンバージョン分析
在庫データ(ERP) + 予測データ(別システム) 需給バランスの確認

データブレンディング vs 結合(Join)

Tableauには、複数のデータを組み合わせる方法が2つあります。それぞれの違いを理解しましょう。

💡 データブレンディング vs 結合(Join)
項目 データブレンディング 結合(Join)
実行場所 ビュー上(動的) データソース(静的)
データの場所 別々のデータソース 同じデータソース内
集計レベル 集計後に結合 行レベルで結合
パフォーマンス 軽い(必要な時だけ) 重い(全データ処理)
柔軟性 ビューごとに変更可能 全体に影響
制約 LEFT JOIN相当のみ 様々な結合タイプ
✅ いつブレンディングを使う?いつ結合を使う?
ブレンディングを選ぶケース 結合(Join)を選ぶケース
・データソースが別々(Excel + DB)
・異なる粒度(日別売上 + 月別目標)
・一時的な比較分析
・パフォーマンス重視
・同じデータソース内の複数テーブル
・行レベルの詳細な結合が必要
・INNER/RIGHT JOINなどが必要
・恒久的なデータ統合

🎯 2. プライマリとセカンダリデータソース

2つのデータソースの役割

データブレンディングでは、2種類のデータソースがあります。プライマリ(主)セカンダリ(副)です。

📊 身近な例:主役と脇役

映画でいえば、プライマリは主役セカンダリは脇役です。

主役(プライマリ)の出演シーンはすべて映画に入ります。
脇役(セカンダリ)は、主役と一緒のシーンだけ登場します。

データブレンディングも同じで、プライマリのデータはすべて表示され、セカンダリはプライマリとマッチするデータだけが表示されます。

📊 プライマリとセカンダリの違い
項目 プライマリ(主) セカンダリ(副)
決まり方 最初にビューに追加したデータ 後から追加したデータ
役割 基準となるメインデータ 補足的な追加データ
表示マーク 青いチェックマーク ✓ オレンジのチェックマーク ✓
データの表示 すべての行が表示される マッチする行のみ表示
📝 プライマリを変更する方法
  1. データペインでデータソースを右クリック
  2. プライマリデータソースにする」を選択
  3. チェックマークがに変わる

注意:プライマリを変更すると、ブレンディングの関係が変わり、表示される結果が異なる可能性があります。

⚠️ 重要な制約:LEFT JOIN相当のみ

データブレンディングはLEFT JOIN相当の動作のみです。

・プライマリのすべての行が表示される
・セカンダリは一致する行のみが追加される
・INNER JOIN(両方に存在するデータのみ)やRIGHT JOIN(セカンダリ基準)はできません

もしこれらが必要な場合は、データソースレベルでの結合(Join)を使用してください。

🔗 3. リンクフィールドの設定

リンクフィールドとは

リンクフィールドは、2つのデータソースを結びつける「共通の鍵」です。この鍵が一致するデータ同士が組み合わさります。

📊 身近な例:学生番号

学校で「テストの成績表」と「出席簿」を組み合わせる場合、学生番号が共通の鍵になりますよね。

成績表の「学生番号: 001」と出席簿の「学生番号: 001」が同じ人なので、このデータを紐づけられます。

データブレンディングも同じで、リンクフィールドが一致するデータ同士を組み合わせます!

自動リンク

Tableauは、特定の条件を満たすフィールドを自動的にリンクします。

📊 自動リンクの条件
条件 説明
フィールド名が同じ 「商品名」と「商品名」→ 自動リンク
データ型が同じ 文字列と文字列、数値と数値
ディメンションである カテゴリ項目(メジャーではない)

確認方法:リンクされているフィールドには、データペインで小さな鎖のアイコン 🔗 が表示されます。

手動リンクの設定

フィールド名が異なる場合や、自動リンクされない場合は、手動でリンクを設定します。

📝 手動リンクの設定手順
  1. メニューの「データ」をクリック
  2. リレーションシップの編集」を選択
  3. プライマリデータソース」と「セカンダリデータソース」を選択
  4. リンクするフィールドを選択
  5. 追加」をクリック
  6. OK」をクリック
📊 手動リンクが必要なケース
ケース プライマリ セカンダリ
名前が異なる [Product Name] [商品名]
複数フィールド [年] + [月] [年月]
計算フィールド [年月] (計算で作成) [年月]
📝 リンクの解除と再設定

リンクの解除:

  1. リンクされているフィールドを右クリック
  2. リンクの削除」を選択

注意:解除後に再度リンクするには、手動設定が必要です。

💼 4. 実践例:売上と目標の比較

シナリオ

実際のビジネスシーンを想定して、データブレンディングを実践してみましょう。

📊 実践シナリオ
  • プライマリ:日別売上データ(Excel)
  • セカンダリ:月別目標データ(Googleスプレッドシート)
  • 目的:売上実績と目標を比較するグラフを作成
  • 課題:粒度が違う(日別 vs 月別)
📝 サンプルデータ構造

売上データ(日別):

日付 売上金額
2024-01-01 150,000
2024-01-02 180,000
2024-01-03 160,000

目標データ(月別):

年月 目標金額
2024-01 5,000,000
2024-02 5,500,000
2024-03 6,000,000
📊 ステップ1:データソース接続
  1. Tableauを開き、売上データ(Excel)を接続
  2. メニュー →「データ」→「新しいデータソース」
  3. 目標データ(Googleスプレッドシート)を接続
  4. 売上データがプライマリ(青✓)になっていることを確認
📊 ステップ2:リンク用の計算フィールド作成

粒度を合わせるため、売上データに「年月」フィールドを作成します。

  1. データペインで右クリック →「計算フィールドの作成」
  2. 名前:年月
  3. 計算式:
    DATE(YEAR([日付]), MONTH([日付]), 1)
  4. 「OK」をクリック
📊 ステップ3:リンク設定
  1. メニュー →「データ」→「リレーションシップの編集」
  2. プライマリ:売上データの「年月」(計算フィールド)
  3. セカンダリ:目標データの「年月
  4. 「追加」→「OK」
📊 ステップ4:ビジュアル作成
  1. 列シェルフ:MONTH([年月])
  2. 行シェルフ:SUM([売上金額])
  3. セカンダリから SUM([目標金額]) を行シェルフに追加
  4. デュアル軸に設定(右クリック→「デュアル軸」)
  5. マークで売上を棒グラフ、目標を折れ線グラフに設定
📊 ステップ5:達成率の計算
  1. 新しい計算フィールドを作成
  2. 名前:達成率
  3. 計算式:
    SUM([売上金額]) / SUM([目標金額])
  4. 書式設定でパーセンテージ表示に変更
  5. ラベルに追加

⚙️ 5. ブレンディングの制約と対処法

主な制約

データブレンディングには、いくつかの制約があります。事前に理解しておきましょう。

⚠️ データブレンディングの制約
制約 説明
LEFT JOINのみ プライマリが基準、INNER/RIGHT JOINは不可
集計後の結合 行レベルの詳細は見えない
フィルター制限 セカンダリの一部フィルター機能が使えない
パフォーマンス 大量データでは遅くなる可能性
計算の制約 両データソースをまたぐ複雑な計算は困難

よくある問題と解決策

📊 問題1:データが表示されない
原因 解決策
リンクが正しくない リンクフィールドを確認・再設定
データ型が不一致 データ型を統一(文字列→文字列)
NULL値がある NULLを除外するフィルターを追加
📊 問題2:集計値がおかしい
原因 解決策
粒度の違い 計算フィールドで粒度を合わせる
重複カウント LOD表現を使用
📊 問題3:パフォーマンスが遅い
原因 解決策
大量データ データ抽出(Extract)を使用
不要なフィールド 必要なフィールドのみ使用
複雑な計算 データソース側で事前集計

📝 STEP 24 のまとめ

✅ このステップで学んだこと
  • データブレンディング:ビュー上で複数データソースを統合
  • 結合との違い:動的 vs 静的、集計後 vs 行レベル
  • プライマリ:基準となるデータソース(青✓)、すべて表示
  • セカンダリ:補足データソース(オレンジ✓)、マッチのみ
  • リンクフィールド:データを結びつける共通の鍵
  • 制約:LEFT JOIN相当のみ、行レベル詳細は見えない
💡 最重要ポイント

データブレンディングは異なるデータソースを簡単に統合できる強力な機能ですが、LEFT JOIN相当の動作のみという制約があります。

複雑な結合が必要な場合は、データソースレベルでの結合を検討しましょう。適切に使えば、別々のシステムにあるデータを柔軟に組み合わせて分析できます!

🎯 次のステップの準備

次のSTEP 25では、「Tableauパフォーマンス最適化の基礎」を学びます。大量データを扱う際のパフォーマンス改善テクニックをマスターしましょう!

📝 理解度チェック

問題 1 基礎

データブレンディングと結合(Join)の主な違いは何ですか?

【解答】

データブレンディング:
・ビュー上で動的に統合
・別々のデータソースを組み合わせる
・集計後に結合(行レベルの詳細は見えない)

結合(Join):
・データソースで静的に結合
・同じデータソース内のテーブルを組み合わせる
・行レベルで結合(詳細データを保持)

問題 2 基礎

プライマリデータソースとセカンダリデータソースの違いは何ですか?

【解答】

プライマリ(青✓):
・最初にビューに追加したデータソース
・基準となるメインデータ
すべての行が表示される

セカンダリ(オレンジ✓):
・後から追加したデータソース
・補足的なデータ
・プライマリとマッチする行のみ表示(LEFT JOIN相当)

問題 3 応用

リンクフィールドが自動で設定される条件を3つ挙げてください。

【解答】

1. フィールド名が同じ(例:「商品名」と「商品名」)

2. データ型が同じ(例:文字列と文字列、数値と数値)

3. ディメンション(カテゴリ)である(メジャーではない)

これらの条件がすべて揃うと、Tableauが自動的にリンクを設定します。

問題 4 応用

日別売上データと月別目標データをブレンディングする際、なぜ計算フィールドが必要ですか?

【解答】

粒度(データの細かさ)が異なるからです。

・売上データ:日別(2024-01-01、2024-01-02…)
・目標データ:月別(2024-01、2024-02…)

リンクするには、同じ粒度のフィールドが必要です。そのため、日別の売上データに「年月」の計算フィールドを作成し、月別の目標データとリンクできるようにします。

計算式例:DATE(YEAR([日付]), MONTH([日付]), 1)

🎯 実践演習

演習 1 基礎

2つのデータソース(ExcelとCSV)を接続し、データブレンディングを設定してください。リンクフィールドが正しく設定されているか確認してください。

【手順】
  1. 1つ目のデータソース(Excel)を接続
  2. メニュー →「データ」→「新しいデータソース」
  3. 2つ目のデータソース(CSV)を接続
  4. 新しいワークシートを作成
  5. データペインでプライマリ(青✓)を確認
  6. リンクアイコン(🔗)が表示されているフィールドを確認
  7. リンクがない場合:メニュー →「データ」→「リレーションシップの編集」
  8. 共通のフィールドでリンクを設定
  9. 両データソースのフィールドをビューに追加して確認
演習 2 応用

日別の売上データ(プライマリ)と月別の目標データ(セカンダリ)をブレンディングし、月別の達成率を計算するビジュアルを作成してください。

【手順】
  1. データ準備:
    • 売上データに「年月」計算フィールド作成
    • 計算式:DATE(YEAR([日付]), MONTH([日付]), 1)
  2. リンク設定:
    • メニュー →「データ」→「リレーションシップの編集」
    • 売上データの[年月]と目標データの[年月]をリンク
  3. ビジュアル作成:
    • 列:MONTH([年月])
    • 行:SUM([売上金額])
    • セカンダリからSUM([目標金額])を追加
    • デュアル軸で棒グラフ+折れ線グラフ
  4. 達成率計算:
    • 計算フィールド:SUM([売上金額]) / SUM([目標金額])
    • 書式:パーセンテージ
    • ラベルに追加
演習 3 発展

3つのデータソース(売上、目標、前年実績)をブレンディングし、当年実績・目標・前年比をすべて表示するダッシュボードを作成してください。

【手順】
  1. データソース接続:
    • プライマリ:当年売上データ
    • セカンダリ1:目標データ
    • セカンダリ2:前年売上データ
  2. リンク設定:
    • すべてのデータソースに[年月]フィールドを作成
    • 各データソースを[年月]でリンク
  3. 計算フィールド作成:
    • 前年比:(当年 – 前年) / 前年
    • 目標達成率:当年 / 目標
    • 前年差額:当年 – 前年
  4. ビジュアル作成:
    • グラフ1:3本の棒グラフ(当年、目標、前年)
    • グラフ2:前年比のトレンドライン
    • グラフ3:目標達成率のゲージ
  5. ダッシュボード:
    • 3つのグラフを配置
    • 月別フィルターを追加
    • フィルターアクションで連動

💡 ヒント:複数のセカンダリデータソースを使う場合、パフォーマンスに注意。可能であれば、データ抽出(Extract)を使用しましょう。

❓ よくある質問

Q1: リンクが自動で設定されないのはなぜですか?
フィールド名やデータ型が完全に一致していない可能性があります。

フィールド名が少しでも違う場合(例:「商品名」vs「Product Name」)や、データ型が異なる場合(例:文字列 vs 数値)は自動リンクされません。メニュー →「データ」→「リレーションシップの編集」から手動でリンクを設定してください。
Q2: プライマリとセカンダリを逆にしたらどうなりますか?
結果が大きく変わる可能性があります。

データブレンディングはLEFT JOIN相当なので、プライマリ(左側)のすべてのデータが表示されます。セカンダリにしかないデータは表示されません。どちらを基準にしたいかで、プライマリを選択してください。
Q3: ブレンディングと結合、どちらを使うべきですか?
データソースが別々ならブレンディング、同じなら結合です。

ただし、行レベルの詳細な結合が必要な場合や、INNER JOIN/RIGHT JOINが必要な場合は、データソースを統合して結合を使いましょう。一時的な比較分析ならブレンディングが手軽です。
Q4: セカンダリデータソースでフィルターが使えません。
セカンダリデータソースには一部のフィルター機能制限があります。

データソースフィルターやコンテキストフィルターを使うか、プライマリデータソース側でフィルターを適用してください。または、プライマリとセカンダリを入れ替えることも検討してください。
Q5: セカンダリデータソースのデータがNULLで表示されます。
リンクフィールドの値が一致していない可能性があります。

確認ポイント:
・リンクフィールドの値が完全一致しているか(スペースや大文字小文字も含む)
・データ型が一致しているか
・プライマリにあってセカンダリにないデータはNULLになる(LEFT JOIN相当のため)
Q6: 3つ以上のデータソースをブレンディングできますか?
可能ですが、複雑になるため注意が必要です。

すべてのセカンダリデータソースは、プライマリとリンクされます(セカンダリ同士は直接リンクできません)。パフォーマンスへの影響も大きくなるため、可能であればデータソースを事前に統合することを検討してください。
📝

学習メモ

BIツール入門 - Step 24

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