PR

Excelで内部結合・外部結合する方法|Power Queryで表を結合

Excelの内部結合と外部結合 データサイエンティスト検定
スポンサーリンク

はじめに

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のマージとは役割が異なります。

関連記事


タイトルとURLをコピーしました