はじめに
Excelで2つの表を組み合わせるとき、「両方にあるデータだけ残す」「片方の表はすべて残す」など、残したい行によって結合方法が変わります。
Power Queryの「マージ」を使うと、内部結合や外部結合を条件に合わせて選べます。この記事では、それぞれの違いと基本手順を解説します。
この記事で分かること
- Excelで内部結合・外部結合する基本手順
- Inner・Left outer・Right outer・Full outerの違い
- 結合方法を選ぶ判断基準
- VLOOKUP・XLOOKUPやAppendとの役割の違い
Excelで内部結合・外部結合するならPower Queryのマージを使う
Power Queryの「マージ」は、2つの表にある共通のキー列を使って行を対応付ける機能です。
たとえば、左の表に「商品IDと売上」、右の表に「商品IDと商品名」がある場合、商品IDをキーにして結合できます。
| 結合の種類 | 残る行 | 向いている場面 |
|---|---|---|
| 内部結合(Inner) | 両方でキーが一致する行だけ | 共通するデータだけ使いたい |
| 左外部結合(Left outer) | 左をすべて残し、右の一致データを追加 | 元の一覧を残して情報を足したい |
| 右外部結合(Right outer) | 右をすべて残し、左の一致データを追加 | 右側の一覧を基準にしたい |
| 完全外部結合(Full outer) | 両方のすべての行 | 片方にしかないデータも確認したい |
「どちらの表の行を残したいか」を決めてから結合の種類を選ぶと分かりやすくなります。
Power Queryで内部結合する方法
内部結合は、2つの表の両方に存在するデータだけを残したいときに使います。
2つの表をPower Queryへ読み込む
結合したい2つの表をそれぞれPower Queryへ読み込みます。
Excelの表内を選択し、[データ]タブから[テーブルまたは範囲から]を選ぶとクエリを作成できます。
CSVやTXTの取り込みは、Excel TXT、CSVをクエリで簡単に読み込む方法を解説で詳しく解説しています。
マージする列を選ぶ
Power Queryエディターで基準にするクエリを開き、[ホーム]からクエリのマージを実行します。
上下の表で、商品ID同士、社員ID同士のように対応付けに使う列を選びます。列名は同じでなくても構いませんが、対応する列のデータ型はそろえておきます。
結合の種類で内部結合を選ぶ
内部結合(Inner)を選ぶと、両方の表でキーが一致した行だけが残ります。
片方にしかないキーは結果から外れるため、共通するデータだけを対象にしたい場合に向いています。
必要な列を展開する
マージ後は、右側の表が1つの列として追加されます。
列見出しの展開ボタンから、商品名や部署名など必要な列だけを選んで展開します。
Power Queryで外部結合する方法
外部結合は、片方または両方にしか存在しないデータも残したいときに使います。操作の流れは内部結合と同じで、マージ時に結合の種類を変えます。
左側をすべて残すならLeft outer
Left outerでは、左側の表をすべて残します。
右側に同じキーがあれば関連データが追加され、見つからない場合は右側から展開した列がnullになります。
右側をすべて残すならRight outer
Right outerは右側の表をすべて残します。
どちらの表を基準として残すかによって、Left outerとRight outerを使い分けます。
両方をすべて残すならFull outer
Full outerでは、左右両方の表にあるすべての行を残します。
片方にしかないキーも残るため、2つの一覧を照合して差分を確認したい場合に使えます。
内部結合と外部結合の使い分け
両方に存在するデータだけ必要なら内部結合
「売上にも商品マスターにも存在する商品だけ」のように、両方で一致したデータだけが必要なら内部結合を使います。
未一致データも残したいなら外部結合
元の一覧を維持したい場合や、片方にしかないデータも確認したい場合は外部結合を使います。
- 左の表を基準にする → Left outer
- 右の表を基準にする → Right outer
- 両方をすべて残す → Full outer
「どの表を基準にするか」「未一致データを残すか」の2点で判断します。
VLOOKUP・XLOOKUPとPower Queryの結合の違い
VLOOKUPやXLOOKUPは、キーを使って表から値を検索し、対応する値を返す関数です。
商品IDから商品名を1列追加するだけなら、VLOOKUPやXLOOKUPで十分な場合があります。
一方、Power Queryのマージでは、内部結合や外部結合を選び、どの行を残すかまで指定できます。値の参照と表の結合として、役割を分けて考えると分かりやすくなります。
内部結合・外部結合以外の処理
自己結合は同じデータを別クエリとしてマージする
自己結合は、同じデータ内の行同士を関連付ける考え方です。
Power Queryでは、元のクエリを複製または参照して別クエリとして用意し、その2つを共通キーでマージする方法があります。内部結合・外部結合の基本を理解した後の応用として扱えば十分です。
行を追加するならAppendを使う
2つの表を縦方向につなぐ場合は、マージではなく「追加(Append)」を使います。
Mergeはキーで行を関連付ける操作、Appendは複数の表の行を順番に追加する操作です。Excelでは「表を関連付けるならMerge、行を追加するならAppend」と分けて考えます。
結合で失敗しやすいポイント
結合キーの列を間違えない
結合には、2つの表で同じ対象を識別できる列を選びます。
商品IDと商品名のように意味の違う列を選ぶと、期待した結果になりません。重複や欠損の整理については、Excelでデータクレンジング:NULL値や範囲外データ処理で解説しています。
対応する列のデータ型をそろえる
見た目が同じ値でも、一方が数値、もう一方が文字列だと正しく一致しない場合があります。
マージ前に対応するキー列を同じデータ型へそろえます。外部ファイルからの取り込みは、FTPサーバーからデータをExcelに取り込む方法を解説も参考にしてください。
まとめ
Excelで内部結合・外部結合を行う場合は、Power Queryのマージを使うと、残したい行に応じて結合方法を選べます。
- 両方に一致する行だけ残す → 内部結合
- 左側をすべて残す → Left outer
- 右側をすべて残す → Right outer
- 両方をすべて残す → Full outer
VLOOKUPやXLOOKUPは値を検索して返す関数、Appendは行を追加する操作であり、Power Queryのマージとは役割が異なります。