
<勉強記録>PowerBI リレーションシップについて
きのうPowerBIを触って、クエリに別のクエリの列追加が分からなかった。
これもうやったのにね…。復習大事。
ちなみに、列追加はここ。
クエリのマージだよ!
こちらを使用して学習しています。
<モデルビュー、リレーションシップ>
①左側の赤丸が「モデルビュー」
箱(クエリ)同士が線(リレーションシップ)で繋がっているのが分かる。

画面のクエリの場合は「ProductID」同士で繋がっている。互いに参照関係にある状態なので、これをキーにして互いにデータをもってくることができる。

Point
クエリ同士をつなぐとき、同じ内容でも列の名称が異なる場合があるが(ProductIDと製造番号)、手動でつなぎ合わせることで、名称が異なる場合でもクエリ同士つなぐことが可能。(えー!知らなかった!)
ただし、列の名称を統一することで、PowerBIが勝手に繋ぎ合わせる機能がある。

リレーションシップはExcelのvlookupで繋がってる状態だそう。
分かりやすい~。

②クエリ同士は、データが上位かどうかが分かるように並べる。
(今回はマスタデータが上にきて、それに紐づくデータが下という感じ。)

<手動でリレーションシップを組む>
①クエリ同士が繋がっていない場合は、手動でつなぐことができる。
その場合データテーブルから線を引っ張ってくるようにする。

②つなぎ合わせるとうまくいかない。「多対多」と記載されている。

③多対多とは、どちらにも同じ値が複数あり、つなぎ合わせたくても、PowerBIがどれとどれが繋がるのか判別できない状態。
別の国だが郵便番号が同じものがあるのが分かる。

<列を結合してリレーションシップを組めるキーを作る>
今回は複数の国の中で同じZIPコードがあったため、クエリ同士をつなぐことができなかったので、つなげようとしているクエリに「国+ZIP」列を新たに追加する。
①パワークエリエディタを立ち上げ、つなげたい列同氏を選択する。

Point
選択する列は、結合した時に先にしたいものから選択する。
今回は「国+ZIP」としたいので、Countryを選択した後にCtrlを押しながらZipを選択。
②「列のマージ」を押下。

③区切りを選び、新しい列の名前を追加し、OKを押下。

④新しい列が追加された~!


列の結合が簡単すぎてびっくりだ~!でも覚えられるか不安。

同じことをInternational_Saleに対しても行って、モデルを確認すると、勝手に繋がった。

Point
★クエリ同士をつなげる場合、できれば同じ列名がよい。(自動で繋がってくれるから)
★多対多になってしまう場合は、新しいユニークな列を作成する。