Power BIにおいて、複数のデータテーブルを用いて分析を行う際には、それらを関連付けなければなりません。
特に日付などを設定する場合は必須で、万が一取らないとフィルタをうまく設定できないなど数多くの弊害が生じてしまいます。
そのために必要な概念がリレーションシップです。
今回の記事ではその概念からPower BI Desktopにおける設定方法などについて簡単に解説します。
データのリレーションシップの概要
Power BIにおけるリレーションシップとは、複数のテーブル間に存在する関連性を定義する仕組みです。例として以下の物が挙げられます。
- 売上テーブルと商品マスタを商品コードで結びつけることで、商品別の売上をより細かく出すことができる
- 週・四半期などを詳しく記載したカレンダーと売上テーブルを日付で結びつけることで、四半期決算ごとの売上集計や曜日別の売上傾向の集計などが可能になる
このような関係を適切に構築することで、単独のテーブルだけでは得られない深い洞察を引き出せる点が大きな特徴といえるでしょう。
さらにリレーションシップは、スタースキーマを用いた効率的なモデル設計や、1対多や多対多といった関係性を正確に定義することによって、柔軟な集計を実現できます。
一方で、誤った設定を行うと意図しない結果やパフォーマンス低下を招き、時にはグラフの形や表示が著しく乱れて資料を作るに値しないものができてしまう可能性もあります。
実際筆者自身もリレーションシップを誤って設定した結果、日付が英語表記になるなどグラフの表示が非常にわかりにくいものとなってしまい、お客様に魅せるレベルものではなくなり即座に修正をしなおした経験がございます。
そのため、Power BIを用いたデータ分析ならびに可視化において、各テーブルのデータのリレーションシップを理解し、正しく設定することは極めて重要です。
リレーションシップの種類と構造
Microsoft Power BIのデータリレーションシップには、以下のようなものが存在します。
- 1対1(One-to-One)
- 1対多(One-to-Many)
- 多対多(Many-to-Many)
以下に詳しく解説します。
1対1(One-to-One)リレーションの特徴
双方の主キーが同一、または双方の値が一対一となっているリレーションです。
分割しなくてもよいテーブルが分割されている状態のため、ファイル読み込みの関係で項目を容易に追加できないなどの状況でない限り、あまり利用しないようにしましょう。
1対多(One-to-Many)リレーションの特徴
一方のテーブルの値はもう一つのテーブルの複数の値を関係する可能性があるもの、その値は1件のみ関連するという関係です。
例として部署と従業員などの1対多リレーションの特徴となります。Power BIで最も一般的で、関係づけしやすいものとなります。
多対多(Many-to-Many)リレーションの課題
両テーブル間で複数の値が互いに対応するケース。具体的にはブログのカテゴリとその投稿内容などの関係です。
Power BIの場合、直接結ぶと集計が曖昧になりやすく、意図しない結果になることがしばしば起こります。
多対多の関係は、間に中間テーブル(ブリッジテーブル)を設置することで明確化できます。これにより、集計の一貫性を保てます。
Power BIでのリレーションシップ設定手順
Microsoft Power BIでは複数のテーブルをインポートすると、自動で類似列名やデータ型をもとにリレーションシップを設定してくれる場合が多いです。
ただカレンダーテーブルをPower BI上で作成する場合(こちらの記事に詳細が書かれています)などでは、手動で設定する必要があります。
その場合は上部メニューの「モデリング」より「リレーションシップの管理」を選択することで、設定することができます。

例として売上データと日付テーブルが一緒に設定されたPower BIを用意しましょう。
※サンプルファイルはこちらよりダウンロードできます。
(日付テーブルについては、こちらの記事にて掲載されているものと同等のものです。)
双方のデータが何も関連付けされていない場合でも、以下のようにグラフは作成できるものの、日付が日本語になっていないなど、このまま使うには不便な設定になっています。

ここで上部メニューから「モデリング」より「リレーションシップの管理」を選び、以下のようなポップが現れたら「+新しいリレーションシップ」を選びましょう。

ここで「日付テーブル」の「Date」と「売上」テーブルの「日付」を選択して「保存」ボタンを押してください。

すると、選択した2つのデータ間で関連付けがなされます。

これにより、グラフのX軸を「日付」テーブルの「年月_yy年MM月」に設定することで、年月表示が正しく表示された月別売り上げグラフが作成できるようになるなど、分析の幅が大幅に広げられるようになりました。

このようにリレーションシップを作成することで作成されるグラフの種類が増え、Power BIの強みである多種多様なグラフを用いた分析ができるようになります。
Microsoft Power BIを用いてデータ可視化を行う場合は、必ず覚えておくようにしましょう。
またデータ間が自動で関連付けされる場合でも、関係の種類が意図通りでないこともあります。
その場合はグラフの表示がわかりにくいものになってしまうので、上記の方法で正しいリレーションシップが組まれているか一度確認してみるといいでしょう。
リレーションシップ設定時によくある問題
リレーションシップ設定時で最も多いのが、多対多リレーションにまつわる問題です。
意図しない多対多リレーションシップが発生したり、本来1対多であるべき関係が多対多になるということはよく起こります。
リレーションシップをかけた各列については、上記で解説したPower BI上での「リレーションシップの管理」で確認するようにしましょう。データによってはPower BIに取り込む前にExcelで設定しても構いません。
特にデータ欠損や重複が起こると、関連付けがうまくいかないだけでなく、Power BIファイルそのものがデータを追加したり変更した際に更新できない原因にもなるので確実になくすようにしてください。
また前述したように、各データに適切なリレーションシップが取れていないとスライサーが効かないなど大きな問題を起こします。
データを更新する際やファイルを他の人に渡すときには関連付けが誤っていないか確認し、不要なものがあれば削除するようにしましょう。
まとめ:Power BIでの複数データ接続を成功させるために
Microsoft Power BIなどのデータビジュアリゼーションツールを用いて複数のデータテーブルの可視化を行う場合、データ間のリレーションシップ作成は欠かせません。
特にテーブルを作成する場合やDAX関数を利用する場合など、Power BI上でデータ処理を行う場合は手動設定を行う必要があります。
今回示した手順で必ず事前にリレーションシップを設定した上で、分析を行うようにしましょう。
参考文献
akiyoko「「一対一」「一対多」「多対多」のリレーションを分かりやすく説明する」2016年7月31日 はてなブログ