![見出し画像](https://assets.st-note.com/production/uploads/images/92997055/rectangle_large_type_2_770fd6857d2aba8f50ed2c08631499d0.png?width=1200)
<勉強記録>PowerBI リレーションシップについて
きのうPowerBIを触って、クエリに別のクエリの列追加が分からなかった。
これもうやったのにね…。復習大事。
ちなみに、列追加はここ。
クエリのマージだよ!
こちらを使用して学習しています。
<モデルビュー、リレーションシップ>
①左側の赤丸が「モデルビュー」
箱(クエリ)同士が線(リレーションシップ)で繋がっているのが分かる。
![](https://assets.st-note.com/img/1670647783429-E4HlAADRLK.png?width=1200)
画面のクエリの場合は「ProductID」同士で繋がっている。互いに参照関係にある状態なので、これをキーにして互いにデータをもってくることができる。
![](https://assets.st-note.com/img/1670648207924-h2VgbR8vvy.png)
Point
クエリ同士をつなぐとき、同じ内容でも列の名称が異なる場合があるが(ProductIDと製造番号)、手動でつなぎ合わせることで、名称が異なる場合でもクエリ同士つなぐことが可能。(えー!知らなかった!)
ただし、列の名称を統一することで、PowerBIが勝手に繋ぎ合わせる機能がある。
![](https://assets.st-note.com/img/1670647946453-2YPmz8RPti.png?width=1200)
リレーションシップはExcelのvlookupで繋がってる状態だそう。
分かりやすい~。
![](https://assets.st-note.com/img/1670647954721-LcqbSkw2WA.png?width=1200)
②クエリ同士は、データが上位かどうかが分かるように並べる。
(今回はマスタデータが上にきて、それに紐づくデータが下という感じ。)
![](https://assets.st-note.com/img/1670648698694-vAKXFMDkJe.png)
<手動でリレーションシップを組む>
①クエリ同士が繋がっていない場合は、手動でつなぐことができる。
その場合データテーブルから線を引っ張ってくるようにする。
![](https://assets.st-note.com/img/1670649203040-aJ74auOEoY.png?width=1200)
②つなぎ合わせるとうまくいかない。「多対多」と記載されている。
![](https://assets.st-note.com/img/1670649286574-C3w0FV5JD1.png?width=1200)
③多対多とは、どちらにも同じ値が複数あり、つなぎ合わせたくても、PowerBIがどれとどれが繋がるのか判別できない状態。
別の国だが郵便番号が同じものがあるのが分かる。
![](https://assets.st-note.com/img/1670649448834-217xXD28I9.png)
<列を結合してリレーションシップを組めるキーを作る>
今回は複数の国の中で同じZIPコードがあったため、クエリ同士をつなぐことができなかったので、つなげようとしているクエリに「国+ZIP」列を新たに追加する。
①パワークエリエディタを立ち上げ、つなげたい列同氏を選択する。
![](https://assets.st-note.com/img/1670649792535-bNttQVGMYJ.png?width=1200)
Point
選択する列は、結合した時に先にしたいものから選択する。
今回は「国+ZIP」としたいので、Countryを選択した後にCtrlを押しながらZipを選択。
②「列のマージ」を押下。
![](https://assets.st-note.com/img/1670650438510-z7dFYUeSJw.png)
③区切りを選び、新しい列の名前を追加し、OKを押下。
![](https://assets.st-note.com/img/1670650466723-70HYT00yOU.png?width=1200)
④新しい列が追加された~!
![](https://assets.st-note.com/img/1670650506592-fHHhsTWXph.png?width=1200)
![](https://assets.st-note.com/img/1670651094788-uGIMuNzUnW.png?width=1200)
列の結合が簡単すぎてびっくりだ~!でも覚えられるか不安。
![](https://assets.st-note.com/img/1670651118484-WLTZawLGck.png?width=1200)
同じことをInternational_Saleに対しても行って、モデルを確認すると、勝手に繋がった。
![](https://assets.st-note.com/img/1670651254055-Iq92HRGE6m.png?width=1200)
Point
★クエリ同士をつなげる場合、できれば同じ列名がよい。(自動で繋がってくれるから)
★多対多になってしまう場合は、新しいユニークな列を作成する。