PowerQuery(パワークエリ)でテーブル・クエリの結合方法を紹介します。結合方法の種類、複数列での結合、縦方向でのテーブル結合方法なども解説しています。
2方向のテーブル結合について
テーブル結合といっても下記の2方向の結合があります。それぞれの結合方向について解説していますので、イメージに合う結合について参照してください。
- 横方向: 表に「列」を追加するイメージ
- 縦方向: 表に「行」を追加するイメージ

横方向のテーブル結合の種類
横方向のテーブル結合には6種類の方法があります。それぞれの方法により結合の行の残り方が変わりますので下記を参考にして使用する方法を選択してみてください。
- 左外部
- 右外部
- 完全外部
- 内部
- 左反
- 右反
結合にはキーとなる列の設定が必要であり、キー列の値が同じ場所に値が紐づけられて表が結合されます。下図ではID列をキーとしています。
左外部
左外部では「元の表(左側)の全ての行」と「追加する表(右側)のうちキー列の値が一致した行」が残ります。

右外部
右外部では「追加する表(右側)の全ての行」と「元の表(左側)のうちキー列の値が一致した行」が残ります。

完全外部
完全外部では「両方の表の全ての行」が残ります。

内部
内部では「両方の表でキー列の値が一致する行」が残ります。

左反
左反では「元の表(左側)のみにあるキー列の値の行」が残ります。

右反
右反では「追加するの表(右側)のみにあるキー列の値の行」が残ります。

Sponsored link
横方向のテーブル結合
テーブル・クエリを結合するには、ホームタブ内にある「クエリのマージ」を使用します。クエリのマージには下記の2種類があり状況において使い分けてください。
- クエリのマージ: 作業中のクエリに別のクエリを追加する
- 新規としてクエリのマージ: 作業中のクエリと別のクエリを結合して新しいクエリを作成する
【結合手順】
- 「クエリのマージ」を選択する。
- マージの設定画面で「追加するテーブル」「結合のキー列」「結合の種類」を選択する。
- 追加テーブルから必要な列を選択して展開する。
テーブル結合方法の例としてテーブル1にテーブル2を結合します。

元となるクエリを開いて「クエリのマージ」を選択する。

設定画面で「追加するテーブル」「結合のキー列」「結合の種類」を選択します。
- 結合するテーブルを選択する。
- 結合のキーとなる列をそれぞれのテーブルでクリックして選択する(ここではID列)
- 結合の種類を選択してOKをクリックする(ここでは左外部)

クエリのマージを行うと、結合した表(テーブル2)の全ての列データを一つにまとめた列が表に追加されます。そこからどの列を表に追加するか選択します。
- クエリのマージにより追加された列のボタンをクリックする。
- 展開を選択する。
- 必要な列を選択してOKを選択する(ここでは利益列を選択)

下図のように合計やカウント数などの集計結果をテーブルに追加することができます。

テーブル結合の完了です。今回は左外部結合をしたためキーが一致したAとCの行のみデータが追加されています。

複数条件の結合(複数キーの設定)
クエリのマージでは複数列を条件にしてテーブルを結合することも可能です。例えば、下図のような左外部結合を行うと複数のキー列が一致した行のみがテーブルに追加することになります。

設定方法
「クエリのマージ」の設定画面のそれぞれのテーブルで Ctrlキーを押しながら複数の列を選択 すれば設定完了です。
複数の列を選択すると下図のように「1,2,…」と通し番号が振られます。この番号が同じ列同士がセットとなりますので同じ項目の列が同じ番号になるように設定してください。

Sponsored link
縦方向のテーブル結合
テーブル・クエリを縦に結合するには、ホームタブ内にある「クエリの追加」を使用します。クエリの追加には下記の2種類があり状況において使い分けてください。
- クエリの追加: 作業中のクエリに別のクエリを追加する
- 新規としてクエリの追加: 作業中のクエリと別のクエリを結合して新しいクエリを作成する
【結合手順】
- 「クエリの追加」を選択する。
- 設定画面で「結合するテーブル数」と「追加するテーブル」を選択する。
テーブル結合方法の例としてテーブル1にテーブル2を縦に結合します。

元となるクエリを開いて「クエリの追加」を選択する。

設定画面で「結合するテーブル数」と「追加するテーブル」を選択します。
- 結合するテーブル数を選択する(ここでは2つのテーブル)
- 追加するテーブルを選択してOKをクリックする(ここではテーブル2)

以上で縦方向のテーブル結合の完了です。ID列、売上列と列名で一致したデータがきちんと結合されています。

3つ以上のテーブル結合
縦結合のクエリの追加では 3つ以上のテーブル結合が可能です。列名によりデータを結合するなどのテーブル結合の動作は2つのテーブルの場合と同じです。
設定方法
- 「クエリの追加」の設定画面で「3つ以上のテーブル」を選択する。
- 利用可能なテーブルから追加するテーブルを選択して「追加」をクリックする。
- 追加したいテーブルを全て追加した後、OKをクリックする。

Sponsored link
パワークエリの学習本についてはコチラの記事でまとめてますので参考にしてみてください。
・初心者向けおすすめ学習本
・初中級者向けおすすめ学習本
コメント