16
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Power Query クロス結合(Cross Join)

Last updated at Posted at 2020-03-27

Power Queryでクロス結合(交差結合)してみました。

#クロス結合
2つのテーブルを結合して 新しくテーブルを作るとき、
2つのテーブルのデータを 全て組み合わせるやり方です。
image.png

Power Queryの"クエリのマージ"(いわゆるJoin)は外部結合、内部結合などは選べるけど、クロス結合は用意されてません。。。
image.png

そして2つのテーブルを紐づける照合列を 必ず選ばないとマージできません。
image.png
この"クエリのマージ"画面では どう頑張ってもできなかったので、"カスタム列の作成"を使いました。

#カスタム列の作成 でクロス結合する手順

まずテーブルAを開いて
カスタム列ボタン を押します。
image.png

カスタム列の式に=テーブルB と打ち込み
(もしくは Ctrl+Space で表示される一覧からテーブルBを選び)、
OKボタン を押します。
image.png

展開ボタン を押します。
image.png

OKボタン を押します。(お好みでプレフィックスを外してください。)
image.png

完成!!
image.png
クロス結合できました。

#おわりに
クロス結合は すべてのマージ(Join)の基礎になる テーブル操作です。

もちろん、"特定の1列" が "一致する" のであれば、
あらかじめ用意されたマージで十分なことがほとんどで、実際、左外部マージはよく使います。

でも、ちょっと凝ったことをしたいとき、

例えば、複数の列を参照したり、不等号(≦や≧)で比較してマージする場面で
ものすごく柔軟にデータを加工できますよ。

クロス結合を使って、自分で作り上げることで
いろんなデータ、細かい要件に対応できるようになると思います。

とはいえ、
これ単体ではどうやって使うのか 想像しにくいかも なので、
別記事で活用例を書きますました。

やっぱりクロス結合を標準メニューに欲しいなぁ。

#参考
複数リストから全ての組み合わせデータを作りたい(2/2)

16
10
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
16
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?