
Power BIでインサイトを抽出!データ分析の第一歩 ~リレーションシップの設定~(Day4)
はじめに
Power BI Desktopは、ビジュアライゼーションとレポート作成のための強力なツールです。しかし、使い方が分からない、使い始めるための適切なデータが手元にない、といった理由でPower BIの活用に踏み出せない方も多いかもしれません。本ブログでは、サンプルデータを提供し、Power BIを使用したレポートやダッシュボードの構築方法を連載形式で解説していきます。
本記事はDay4です。Day1から構築したPower BIファイルを引き続き設定していきます。
※前回の記事はこちら。
最終的なGOALイメージ
ダッシュボードを完成させるまでのプロセスを、複数回にわたるハンズオン形式のブログでわかりやすく説明します。

概要(目的・背景)
Power BI Desktopを使用してデータ分析を行う際、複数のテーブル間で関連性を持たせることが重要です。これにより、異なるデータソースからの情報を統合し、より深い洞察を得ることができます。例えば、売上データと顧客情報が別々のテーブルに存在する場合、これらを関連付けることで、顧客ごとの売上分析が可能になります。しかし、リレーションシップの設定が不適切だと、分析結果に誤りが生じる可能性があります。そのため、正確なリレーションシップの作成と管理は、データ分析の精度を高める上で欠かせないステップです。
読み手(誰に向けた記事か?)
この記事は、下記のような読者を想定しています。
• Power BI初心者: 初めてPower BI Desktopを使う方々
• データ分析の学習者: 複数のデータソースを扱う必要がある方々
リレーションシップの概念や設定方法を理解することで、データ分析のスキルを向上させ、より複雑なデータセットを効果的に扱えるようになります。
ブログの目標設定(具体的な目標)
本ブログは、サンプルのデータを使ってハンズオンを行いながら、目標をクリアします。実際に動作確認を行いながら、Power BIの使い方を習得しましょう。この記事の目標は、以下の通りです。
1.Power BI Desktopでのリレーションシップの基本概念を理解する。
2.テーブル間のリレーションシップを正しく作成・管理する手順を習得する。
これらの目標を達成することで、読者は自分のデータモデルに適切なリレーションシップを設定し、より正確な分析結果を得られるようになります。
方法(アプローチ・使用技術)
リレーションシップとは?
リレーションシップは、テーブル間の関連性を定義するための「リンク」です。このリンクにより、異なるテーブルのデータを連携させ、クロス集計やフィルタリングなどの操作が可能になります。
今回取り扱うCSVファイルを整理する
これまでの手順にて、CSVファイルの取り込み手順は説明してきましたが、CSVファイル自体の中身について触れてきませんでした。改めて、CSVファイルの構成を以下に記載します。


今回取り扱うデータでリレーションシップを理解する
各店舗の売り上げを「店番_日付.csv」に格納していますが、実際の店舗名や商品名が登録されていません。集計時にStore No.(店舗を特定するための一意の識別番号)やItem No.(商品を特定するための一意の識別番号)で表示されても読み辛いため、店舗名や商品名で表示したほうが望ましいです。

ここで活躍するのがリレーションシップです。

テーブル間でリレーションシップを設定することで、1つのテーブルにすべてのデータを所有する必要がなく、複数のテーブルで効率的にデータを所有することができます。
※テーブルに登録されるデータの冗長性を排除することを「正規化」と呼びます。
★注意点★
SalesテーブルのStore No.を基にProductMasterテーブルのItem No.を検索する際、ProductMasterテーブル内に同じ値のItem No.が存在するとエラーが発生します。そのため、マスターデータは重複が無く、一意性が保証されている必要があります。
今回作成したテーブル(計5つ)は、どこにリレーションシップを設定するか?
テーブルのデータには大きく分けて、トランザクションデータとマスタデータの2パターンあります。リレーションはマスターデータとトランザクションデータを格納しているテーブル間で設定を行うことが多いです。そのため、今回、トランザクションデータを格納しているテーブルとマスタデータを格納しているテーブルに分けてから、リレーションの有無を確認します。

リレーションシップの構成イメージ
各トランザクションデータとマスターデータを紐づけて以下の構成イメージでリレーションシップを設定します。


リレーションシップの設定
1.左メニューより「モデルビュー」を選択する。

2.テーブル配置されていることを確認後、ドラッグ&ドロップで配置整理をする。(左側にトランザクションデータのテーブル、右側にマスターデータのテーブル)


3.自動設定されているリレーションシップを確認する。
➊SalesテーブルとProductMasterテーブルの間に表示されている左向き三角(◀)をダブルクリック。Item No.で紐づいていることを確認する。

➋SalesテーブルとStoreMasterテーブルの間に表示されている左向き三角(◀)をダブルクリック。Store No.で紐づいていることを確認する。

➊・➋にて設定が誤っている場合は、左向き三角(◀)を右クリックして「削除」を選択。

4.リレーションシップを設定する。
➊Salesテーブルの「Item No.」をドラッグして、ProductMasterテーブルの「Item No.」へドロップする。新しいリレーションシップの画面が表示されるため、「保存」を押下する。

➋Salesテーブルの「Store No.」をドラッグして、StoreMasterテーブルの「Store No.」へドロップする。新しいリレーションシップの画面が表示されるため、「保存」を押下する。

➌Salesテーブルの「Date」をドラッグして、Calendarテーブルの「Date」へドロップする。新しいリレーションシップの画面が表示されるため、「保存」を押下する。

➍Weather_Reportテーブルの「年月日」をドラッグして、Calendarテーブルの「Date」へドロップする。新しいリレーションシップの画面が表示されるため、「保存」を押下する。

5.すべてのリレーションシップが設定できたことを確認する。

結果(成果と評価)
上記の手順に従ってリレーションシップを設定したことで、以下の成果が得られます。
・リレーションシップの設定が可能に:リレーションシップでは、片方のテーブルの各行に対して、もう片方のテーブルでも対応する行が存在することでデータを紐づけることができることを学びました。例えば、トランザクションデータとマスタデータの「店舗番号(Store No.)」を用いて、マスタデータ側(例:「店舗名(Name)」)を参照する設定ができました。
・トランザクションデータとマスタデータの違い:冗長なデータを削減し、シンプルかつ理解しやすいデータモデルを学ぶことができました。これにより、トランザクションデータとマスタデータの違いを学び、データの種別を理解することができました。
考察(学びと改善点)
この記事を通じて得ることができる学びは以下の通りです。
1.準備したデータの重要性
リレーションシップは、ユニークキーを共有するテーブル同士を関連付ける際に最適であり、データクレンジングの重要性を改めて認識しました。特に、マスターデータに重複が含まれている場合、リレーションシップの設定時にエラーが発生する可能性があるため、データ準備の重要性がさらに明確になりました。
まとめ(結論と今後の展望)
リレーションシップは、シンプルで信頼性の高いデータモデルを構築する際に非常に効果的であることが分かりました。次回の記事では、CALCULATE関数についてご紹介します。ぜひお楽しみに!
いいなと思ったら応援しよう!
