LoginSignup
31
33

More than 3 years have passed since last update.

[Power BI Tips] Power BI のクエリのマージとは?~いわゆる Join について~

Last updated at Posted at 2020-03-20

ふと思い立って...

ちょっとした Tips を書くことにしました。いろいろと理由があって Tips はこれまであまり書いてこなかったのですが、やっぱり必要かなーと思い、ちょっと書いてみようと思いました。

今回の記事のキッカケは

Twitter のタイムラインで流れてきたこの記事です

Tableau Prepのライセンス体系と6つの機能を早わかり!
https://data-viz-lab.com/tableauprep-hayawakari

Tableau はまるで触ったことがないのですが、よく「Power BITableau って何が違うんですか?」と聞かれるので、ちょっと知らなきゃマズイかなーって思い始めたところです。なので、グッドタイミングな記事でした。

さて、この記事の中の Tabuleau Prep の機能が紹介されているのですが 4ー3ー2 ジョイン という箇所で、SQL で言うところの内部結合/外部結合を取り扱っていたので、同じことを Power BI DesktopPower Query エディターでやってみた、というわけです。

Power BI DesktopBI で言うところの Data Prep 機能を Power Query という立派な一つの関数型言語で実現しているのですが、これは言語を書かなくても、マウス操作のみで、データの前処理や整形が非常に高度に行えるものです。余談ですが Power QueryPower BI Desktop だけのものではなく、Excel[取得と変換]Azure Data FactoryPower Platform dataflowsPower BI dataflowsPower Automate の一部のコネクタなど、様々なところで動作します。

それでは本題

image.png
Excel でこんなデータを用意します。左が [ユーザー] テーブル、右が [部署] テーブルですね。これら2つを結合して、ユーザー名単位のデータに部署名を持たせる。SQL でもよくやる処理です。Excelvlookup を使ってやる人もいるでしょう。

Power BI Desktop ではこの結合を [クエリのマージ] という名称で機能として持っています。

今回のタイトルはそういうわけで「クエリのマージとは?」になっているわけです。最近出てきた新しい機能、というわけではありません。すんげー昔からあります。
ただただ私が書きたくなったので、この記事を書いています。ご了承ください。

まずは Excel をダウンロード

以下から Excel ファイルをダウンロードしてください
Excel ファイルのダウンロードはこちら

次に以下から Power BI テンプレートファイルをダウンロードしてください
Power BI テンプレートファイル(pbit)

pbit ファイルを開いて、Excel ファイルのパスを指定すると今回の記事の完成形ができちゃいますので、オススメは Excel ファイルのみダウンロードして、以下の操作を一緒にやってみてください。

次に Power BI Desktop でダウンロードした Excel ファイルを読み込んでください

image.png
上記の画面通り、リボンから Excel アイコンを選択して、Excel ファイルを選択します

image.png
左側で [ユーザー][部署] にチェックを入れて、右下の [データの変換] をクリックします

image.png
はい、ここまでで Excel を読み込み、Power Query エディターが起動するところまでできました

6種類のクエリのマージを確認する

image.png
[クエリのマージ]Power Query エディター の右上にあります。クリックするとドロップダウンが開き、

  • クエリのマージ
  • 新規としてクエリをマージ

の2つが表示されます。今回はすべて [新規としてクエリをマージ] を選択します。
これら2つの違いは、現在選択しているクエリに結合するのか、完全に別クエリとして作るのか、の違いです。気になる方は試しにクリックしてみてください。

image.png
マージの画面の説明です。
上に「最初のテーブル」があり、下に「2番目のテーブル」の欄があります。
以降、画面の選択肢で "最初" と出てきたらこの最初のテーブル、"2番目" と出てきたら2番目のテーブルのことです。
また、

  • 最初テーブル=左
  • 2番目のテーブル=右

を意味します。

  1. 最初のテーブルを選択(今回は [ユーザー]
  2. 紐付けるための列を選択(今回は [部署ID]

次に [結合の種類] を見てみましょう
image.png
結合の種類は全部で 6 種類あります。

  • 左外部(最初の行のすべて、および2番目の行のうち一致するもの)
  • 右外部(2番目の行すべて、および最初の行のうち一致するもの)
  • 完全外部(両方の行すべて)
  • 内部(一致する行のみ)
  • 左反(最初の行のみ)
  • 右反(2番目の行のみ)

冒頭に紹介した Tableau の記事と比較すると、Tableau はこれ以外に「不一致のみ」というのがあるそうです。それぞれのテーブルが持っているもののみを残すということです。内部の反対ということになります。

(心の声:「ぐぬぬぬぬ、それはちょっと欲しいぞ、Power BI さんよ…」)

先ほどのマージの画面の状態からそのまま [OK] をクリックしてください。
image.png
image.png
次に [部署] の右側の展開ボタンをクリックし、画面の状態で [OK] を押します。

image.png
はい、まずはこれが左外部結合です。

ということで残りの5種類を順番に試していきましょう

ここまでの手順を繰り返して、結合の種類のところを順に変えてみてください。
image.png
これが右外部結合

image.png
これが完全外部結合

image.png
これが内部結合

image.png
これが左反

image.png
これが右反

使いどころ

使いどころですが、言わずもがな、一番よく使うのは 左外部結合 です。また 右~ シリーズは使わないでしょう。もちろんデータによるので、一概に言えません。例えば 左反 なんて、どうやって使うんですか?って思う人もいらっしゃると思います。

が、工夫次第です。例えば、イベント参加者の一覧 があって、イベントAイベントB があったとします。イベントAイベントB にデータを分けて「イベントA に参加したんだけど、イベントB に参加しなかった人リスト」を作るには 左反 が使えたりします。ログを解析するときなんかも使えますよね。

まとめ

はい、今回はここまでです。
「知っていると使える、知らないと使えないのが Tips」

Tips を他人に求めすぎると成長を阻害することになりかねないのですが、とは言っても人に伝えたくなる Tips を知っていると、日常がちょっと変わるかもしれませんね、と思いました。

今後も書きたくなったら、書こうと思います。
何かリクエストがあれば、お気軽に~♪♪
リクエストは以下まで

それではまた~🤗

31
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
33