Power BIでテーブルを複数読み込んだのに、グラフがうまく集計できずに困ったことはないでしょうか。
けど、そんな中で悩むことは、
・テーブル同士をどうつなげばいいのか分からない
・線が引けずにエラーになってしまう
・複数テーブルの集計がうまくいかない
ですよね。
今回は、Power BIのリレーションシップの使い方を紹介します。
・リレーションシップを作成する手順(STEP1〜STEP4)
・つながらないときの原因と対処法(4パターン)
・モデルビューの線の見方(実線と点線の違い)
・クロスフィルター方向の使い分け
についてまとめます!
Power BIは、テーブルを複数読み込んだだけでは正しく集計できません。
テーブル同士のつながりを定義するのが「リレーションシップ」です。
早速試していきましょう!
完成イメージ
今回作成するのは、1つの売上明細を4つのマスタから取り囲む形のモデルです。
中央の「売上明細」がデータの塊で、その周りを「商品マスタ」「店舗マスタ」「顧客マスタ」「日付マスタ」が囲んでいます。
線の両端には「1」と「*」の印が付いていて、マスタ側が1、明細側が多という関係になっています。
この形を作っておくと、商品マスタのカテゴリで売上を集計する、といった分析ができるようになります。
もくじ
リレーションシップとスタースキーマ
リレーションシップとは、テーブル同士のつながりのことです。
Power BIでは、つながりを定義してはじめて複数のテーブルをまたいだ集計ができます。
目指すべき形は「スタースキーマ」
理想的な形は、中央に1つの大きなテーブル、その周りにマスタが並ぶ形です。
星のように見えることから「スタースキーマ」と呼ばれます。

売り上げ明細のような実態を記録するテーブルをファクトテーブル、
ファクトテーブルと関連する商品など登録したマスタのことをディメンションテーブルと呼んでいます。
| 種類 | 役割 | 今回の例 |
|---|---|---|
| ファクトテーブル | 数値の記録。行数が多い | 売上明細 |
| ディメンションテーブル | 切り口になるマスタ。行数が少ない | 商品/店舗/顧客/日付マスタ |
リレーションの持ち方について、たとえば、売上明細には商品ID「101」しか入っていませんので
人が見てどの商品であるかはわかりません。
一方で、商品IDの意味(商品名やカテゴリ)は商品マスタが持っていますので、
つなげておけば、売上明細の売上高を「カテゴリ別」に集計できるようになるというわけです。
・多側は重複のあるキー列(明細側)
・1側から多側へつなぐのが基本
リレーションシップを作成する方法
ここからは、実際の手順をSTEPごとに紹介します。
STEP1. データを用意する
今回は、あらかじめ5つのテーブルを用意しました。
まずは売上の記録です。368行あります(総売上 38,059,700円)。
| 売上日 | 商品ID | 店舗ID | 顧客ID | 数量 | 売上高 |
|---|---|---|---|---|---|
| 2026/7/1 | 305 | 202 | 1022 | 1 | 13,800 |
| 2026/7/1 | 405 | 302 | 1026 | 2 | 55,200 |
| 2026/7/1 | 204 | 201 | 1024 | 2 | 148,200 |
| 2026/7/1 | 304 | 302 | 1003 | 3 | 39,300 |
| 2026/7/2 | 404 | 201 | 1039 | 2 | 52,400 |
| 2026/7/2 | 103 | 301 | 1007 | 2 | 304,800 |
| 2026/7/2 | 302 | 502 | 1040 | 1 | 11,600 |
| 2026/7/2 | 304 | 101 | 1038 | 3 | 39,300 |
| 2026/7/3 | 204 | 402 | 1038 | 2 | 148,200 |
| 2026/7/3 | 202 | 302 | 1034 | 2 | 132,000 |
次に切り口になるマスタです。
| 商品ID | 商品名 | カテゴリ | 単価 |
|---|---|---|---|
| 101 | ノートPC-A | ノートPC | 134,700 |
| 102 | ノートPC-B | ノートPC | 143,600 |
| 103 | ノートPC-C | ノートPC | 152,400 |
| 104 | ノートPC-D | ノートPC | 161,300 |
| 105 | ノートPC-E | ノートPC | 170,200 |
| 201 | タブレット-A | タブレット | 61,900 |
| 202 | タブレット-B | タブレット | 66,000 |
| 203 | タブレット-C | タブレット | 70,000 |
| 204 | タブレット-D | タブレット | 74,100 |
| 205 | タブレット-E | タブレット | 78,200 |
| 301 | 周辺機器-A | 周辺機器 | 10,900 |
| 302 | 周辺機器-B | 周辺機器 | 11,600 |
| 303 | 周辺機器-C | 周辺機器 | 12,400 |
| 304 | 周辺機器-D | 周辺機器 | 13,100 |
| 305 | 周辺機器-E | 周辺機器 | 13,800 |
| 401 | ソフトウェア-A | ソフトウェア | 21,800 |
| 402 | ソフトウェア-B | ソフトウェア | 23,300 |
| 403 | ソフトウェア-C | ソフトウェア | 24,700 |
| 404 | ソフトウェア-D | ソフトウェア | 26,200 |
| 405 | ソフトウェア-E | ソフトウェア | 27,600 |
| 店舗ID | 店舗名 | 地域 |
|---|---|---|
| 101 | 札幌店 | 北海道 |
| 102 | 仙台店 | 東北 |
| 201 | 東京本店 | 関東 |
| 202 | 横浜店 | 関東 |
| 301 | 名古屋店 | 中部 |
| 302 | 静岡店 | 中部 |
| 401 | 大阪店 | 関西 |
| 402 | 神戸店 | 関西 |
| 501 | 福岡店 | 九州 |
| 502 | 熊本店 | 九州 |
顧客マスタは40行あります(抜粋)。
| 顧客ID | 顧客名 | 年代 | 性別 |
|---|---|---|---|
| 1001 | 顧客01 | 20代 | 男性 |
| 1002 | 顧客02 | 10代 | 男性 |
| 1003 | 顧客03 | 60代 | 男性 |
| 1004 | 顧客04 | 20代 | 男性 |
| 1005 | 顧客05 | 50代 | 男性 |
| 1006 | 顧客06 | 60代 | 女性 |
| 1007 | 顧客07 | 10代 | 女性 |
| 1008 | 顧客08 | 60代 | 男性 |
上の表をExcelのシートに貼り付けて読み込めば、同じ手順で試せます。
STEP2. モデルビューを開く
データを読み込んだら、画面左側の「モデルビュー」のアイコンをクリックします。
読み込んだテーブルがカードとして並び、関連付けの状態が見えるようになります。
STEP3. キー列をドラッグしてつなぐ
つなぐときは、1側(マスタ)のキー列を、多側(明細)のキー列へドラッグします。
たとえば「商品マスタ」の「商品ID」をつかんで、「売上明細」の「商品ID」へドロップします。
これだけで1対多(1対*)のリレーションシップが作成されます。
同じように、次の4本をつなぎます。
| 1側(マスタ) | 多側(明細) |
|---|---|
| 商品マスタ.商品ID | 売上明細.商品ID |
| 店舗マスタ.店舗ID | 売上明細.店舗ID |
| 顧客マスタ.顧客ID | 売上明細.顧客ID |
| 日付マスタ.日付 | 売上明細.売上日 |
列名が同じでなくてもかまいません(日付マスタの「日付」と売上明細の「売上日」など)。
意味が同じ列であればつなげられます。
STEP4. クロスフィルター方向を確認する
作成した線をダブルクリックすると、設定画面が開きます。

ここで「クロスフィルター方向」を確認します。
| 方向 | 動き | 使いどころ |
|---|---|---|
| 単一 | 1側から多側へ絞り込みが流れる | 既定。ほとんどの場合はこれでOK |
| 双方向 | お互いに絞り込みが流れる | 多対多の中間テーブルなど特別な場合 |
双方向にすると便利に見えますが、集計が意図しない結果になることもあります。
迷ったら単一のままにしておくのがおすすめです。
リレーションシップができないときの対処法
ここからは、つながらないときの原因と対処を4つ紹介します。
どれも実際に手を動かして確認した内容です。
原因1. キー列に重複がある
「1」側の列に同じ値が複数あると、1対多として認識できません。
実際に重複のある商品IDを用意して確認してみました。

商品ID「101」が3件、「205」が2件あり、23行になっています。
この状態でつなごうとすると、線が引けても点線(非アクティブ)になり、集計に使われません。
対処法は、Power Queryで重複を削除してキーを一意にすることです。
「ホーム」タブの「データの変換」をクリックします。

Power Query エディターが開くので、左側で対象のクエリを選び、商品IDの列を右クリックします。

「重複部分の削除」をクリックすると、同じ値の行が1つにまとまります。

23行あった商品が20行になり、商品IDが一意になりました。
「ホーム」タブの「閉じて適用」をクリックすると、モデルに戻って線が有効になります。
原因2. データ型が一致していない
片方が数値、もう片方が文字列になっていると、リレーションシップを作成できません。
商品IDを文字列として用意して確認してみました。

商品IDが「0101」のように、文字列として入っています。
見た目は数値でも、Power BIでは別の型として扱われるためつなげられません。
対処法は、Power Queryでデータ型を合わせることです。
商品IDの列ヘッダーにある型アイコンをクリックします。

「整数」をクリックすると、文字列から数値に変換されます。

「0101」が「101」になり、数値として扱われるようになりました。
つなぐ予定の列は、かならず両方のテーブルで同じ型にしておきましょう。
原因3. 空白や一致する値がない
データ型が合っていても、値そのものが噛み合っていないと正しくつながりません。
たとえば、明細の商品IDが「101」なのに、マスタ側が「9101」になっているような場合です。
この場合、線を引くことはできても、集計結果がすべて空白になります。
対処法は、元データを見直して共通のコードに合わせることです。
Power Queryで両方のテーブルを並べ、値がそろっているかを目で確認するのが確実です。
先頭に空白が入っている、全角と半角が混ざっている、といった小さな違いも見つかります。
型が合っていても、中身が違えばPower BIは別物として扱います。
原因4. 多対多でうまく集計できない
両方のテーブルに重複があると、多対多の関係になってしまいます。
多対多は行の数が思わぬ形で増え、集計がおかしくなることがあります。
対処法は、中間テーブル(ブリッジテーブル)を間にはさむことです。
中間テーブルはキーが一意になるように作り、それぞれと1対多でつなぎます。
| 構成 | つなぎ方 |
|---|---|
| 売上明細(多) | → 中間テーブル(1) |
| 中間テーブル(多) | → マスタ(1) |
これで、直接つないだときのような集計の乱れを避けられます。
モデルビューの線の見方
線の見方を覚えておくと、トラブルに早く気づけます。
| 見た目 | 意味 |
|---|---|
| 実線 | 有効なリレーションシップ |
| 点線 | 非アクティブ(集計には使われない) |
| 線の中央の矢印 | クロスフィルターの方向 |
| 端の「1」と「*」 | 1対多の向き |

上の画像の点線は、重複があるために非アクティブになった線です。
実線になっていない線は集計に使われないので、原因をつぶして有効にしてください。
RELATED関数で関連先の値を引く
つないだ関係は、DAXの計算式からも使えます。
「ホーム」タブの「新しい列」をクリックし、次のように入力します。
カテゴリ =
RELATED('商品マスタ'[カテゴリ])
入力したら、数式バーの左にある「✓」をクリックするか Enter キーで確定します。
RELATEDは「多側から1側の値を引く」関数です。
リレーションシップが正しく張られていれば、明細にマスタのカテゴリが並びます。
逆に1側から多側を引くときは、RELATEDTABLEを使います。
うまくいかないときの確認ポイント
線が引けないときは、まず3つを確認する
次の順に確認すると、ほとんど原因が見つかります。
2. 両方の列のデータ型が同じか
3. 値そのものが一致しているか
「テーブル間にリレーションシップを作成できません」と出た
同じ2つのテーブルに、すでに有効な線が引かれていないかを確認してください。
1組のテーブルにつき、有効な線は1本までです。
2本目を引くと、先に引いた線が点線(非アクティブ)になります。
集計が明らかにおかしい
クロスフィルター方向が「双方向」になっていないかを確認してください。
双方向は一見便利ですが、集計が増殖することがあります。
特別な理由がなければ「単一」に戻しましょう。
日付テーブルとつながらない
日付マスタは、1行1日で抜けのないデータにしてください。
飛び飛びの日付が入っていると、正しく集計できません。
Power Queryの「日付」列から「日付テーブル」を作る機能を使うと確実です。
まとめ
今回は、Power BIのリレーションシップの使い方を紹介しました。
手順をまとめると次のとおりです。
2. モデルビューでマスタのキー列を明細へドラッグする
3. 1対多になっているかを線の「1」「*」で確認する
4. 必要に応じてクロスフィルター方向をそろえる
5. 重複・型・値の3点をチェックして、線を実線にする
リレーションシップは、Power BIで分析するための土台になる設定で、
ここが正しく組めていれば、あとはフィールドを置くだけで複雑な集計ができますので
ぜひ押さえてもらえばと思います。










コメントを残す