第12回 データ分析に必須! リレーションシップ
Power Pivot for Excel(以下、パワーピボットと呼びます)の[リレーションシップ]という機能は、複数のテーブルを用い、これまでにない複雑なデータ分析を可能とし、新たな洞察を私たちに与えてくれます。
リレーションシップを使うための前提
パワーピボットの[リレーションシップ]を使用するには、第10回でご説明したように、ベタ打ちの「表」をCtrl+Tで[テーブル]に変換する必要があります。
そのうえで、パワーピボットにテーブルにしたデータを読み込みます。
まず、ベタ打ちの表を、Ctrl+Tでテーブルに!
リレーションシップの作成方法①
パワーピボットにデータモデルを読込後、テーブル間の[リレーションシップ]を作成します。その方法は大別して二つあります。
一つは[デザイン]タブの[リレーションシップの作成]というアイコンをクリックするという方法です。図表1では、販売データ(fTransaction)の“アイテム”列をクリックして選択し、これと同じ内容を含むアイテムデータの“アイテム”列をクリックして選択することで、相互に関連するテーブルと列としてリレーションシップを作成しています。
リレーションシップの作成方法②
[ダイアグラムビュー]という機能を使い、リレーションシップを作成することもできます。個人的にはこちらの方が便利だと思います。というのも、リレーションシップの関係をビジュアルで確認でき直感的にわかりやすいからです。
パワーピボットの[ダイアグラムビュー]というアイコンをクリックすると、図表2のように各テーブルが配置されます。ここで、リレーションシップを取りたい一方の項目をクリックします。
クリックしながら別のテーブルにマウスポインタを移動すると線が出てきますので、リレーションシップを作成したい項目のところでクリックを離します。これでリレーションシップを作成できます。
図表2では、販売データ(fTransaction)という“ファクトテーブル”の周りに、予定表(いわゆる、“カレンダーテーブル”)、アイテム、営業担当者、地域、カテゴリーという“ディメンションテーブル”を配置し、後述する“スタースキーマ”というデータモデルにより、各リレーションシップの関係をパワーピボットの[ダイアグラムビュー]という機能で図示しています。
単純なデータ連携はVLOOKUP関数などでもできます。
しかし、図表2のような複雑なデータ連携の場合、パワーピボットのリレーションシップを使う必要があります。
モデルは、見た目が大事! 出すべきところは出し、隠すべきところはしっかり隠さないとだめですよ!(その1)
図表2、まあ、これでも良いのですが……。
モデルですから、データモデルも(笑)
出すべきところは出し、隠すべきところはしっかり隠す!
そうしないと、とんでもないことになるので、注意してください。
データモデルの正解例が、これ!
図表2と図表3、両者をよく見比べてみてください。
図表3の方がコンパクトでしょ。
そして、図表3のfTransactionという真ん中のファクトテーブルは、たった3行だけです。
これが、正解!
こうすれば、正しい計算ができ、ミスも起こらない!
モデルは、見た目が大事! 出すべきところは出し、隠すべきところはしっかり隠さないとだめですよ!(その1)
先日、暇に任せてTwitterを眺めていると、泣きが入っていました。
そもそもの情報源である発信者に、その読者と思われる方が泣きついているツイート。
「フィルターをかけたのですが、どうしてもうまく計算できないません……。 どうすればよいでしょうか?」
発信者、即応。
「ディメンションテーブルの方で、フィルターしてみてください」
泣きつき読者、感極まっている様子。
「できました! ありがとうございます! フィルターをかけるのはディメンションテーブルからなんですね」
良かったです。解決できて。そのとおりです。
このやり取りのポイントは「フィルターのかけ方」にあります。
図3のように「きれいなデータモデル」であれば、ファクトテーブル(ここでは、fTransactionテーブル)に「フィルターをかける」という場合でも、迷うことはありません。
なぜなら、フィルターは各ディメンションテーブルにのみ存在するからです。
ファクトテーブルには、あるべきはずの「フィルターをかけられる」項目列が非表示とされているので、迷うはずがないのです。
つまり、この「やり取り」の根本的な要因は、図2のような状態でデータモデルがきれいな状態になっていないことが一つの要因としてあるわけです。
「フィルターをかけられる」項目列がファクトテーブルに存在し、「フィルターをかける」項目列の存在するディメンションテーブルと混同されている、こうしたことが問題なのです。
このような論点は、「モダンExcel」の基本の「き」。
マイクロソフトでは、「ディメンションテーブルからフィルターをかける」ことに加えて、上述のように「必要なものだけを残す」ということを教えてくれました。
もちろん、DocsやMSLearnのような「1次情報」にも、これに関する記載は当然のようにあります。
なぜ「ディメンションテーブルからフィルターをかける」ことに加え、「必要なものだけを残す」べきなのか?
繰り返しになりますが、それは、上記のような「やり取り」を不要にするためです。
「計算ミス」を生じさせないために、データモデルは「出すところは出し、隠すべきところはしっかり隠す」。
そういうことです。
みんな、わかったかな?
拙著「モダンExcel入門」第2章、PART4の「非表示を上手に使い、計算ミスを防止する」153ページ~に、「出すところは出し、隠すべきところはしっかり隠す方法」を詳しく記載しておきました。
「モダンExcel研究所」を楽しむ際の【注意事項】
コンテンツコピー、スクレイピングなど【厳禁】 ☚【検知ツール設置済】☚悪質な場合【法的措置】を講じます
(過負荷によるサーバー障害が生じた経験上、ご協力お願いいたします!)
今回のポイント
・パワーピボットにデータモデルを読込後、テーブル間の[リレーションシップ]を作成すれば、複雑なデータ分析が可能となり、新たな洞察を得られるよ
・[リレーションシップ]を作成するには、[デザイン]タブの[リレーションシップの作成]もしくは[ダイアグラムビュー]という機能を使うよ
・モデルは、「出すところは出し、隠すべきところはしっかり隠す」
モダンExcel研究所
フォローお待ちしてます!
2件のピンバック
第13回 星形がデータ分析に最適! データモデリング | モダンExcel研究所
第18回 モダンExcel、それぞれの役割と選択のポイント | モダンExcel研究所
コメントは現在停止中です。