Power Queryのマージで複数テーブルを結合|VLOOKUP不要のデータ突合

スポンサーリンク

「商品マスタと売上明細を商品コードで突き合わせて、売上明細に商品名や単価をくっつけたい」。こういう作業、毎月のように発生しますよね。

これまでは VLOOKUP や XLOOKUP で、明細の行数分だけ数式を引っ張って対応していたはずです。でも明細が1万行を超えると重くなったり、列を足すたびに数式を直したりと、地味に手間がかかります。

そんな「2つの表をキーで結合する」作業を、関数なしでこなせるのが Power Query のマージ(結合)機能 です。元データを差し替えて「更新」ボタンを押すだけで、何度でも同じ突合をやり直してくれます。

この記事では、Power Query のマージの基本手順を、商品マスタと売上明細を例に解説します。あわせて、つまずきやすい 結合の種類(左外部結合・内部結合など)の違い も図解で整理するので、「どれを選べばいいの?」で迷わなくなります。

なお本記事は Windows 版 Excel(Microsoft 365 / 2019 / 2021 / 2024) での操作を前提にしています。

Power Queryのマージとは?VLOOKUPとの違い

Power Query のマージとは、 2つのテーブルを共通のキー列で横方向に結合する機能 です。VLOOKUP でいう「検索キーで別表から値を持ってくる」処理を、関数を1つも書かずに実現できます。

たとえば「売上明細」に商品コードしか入っていないとき、「商品マスタ」から商品名・単価を引っ張ってきて、明細の右側にまとめて追加する。これがマージのイメージです。

VLOOKUP・XLOOKUPとの3つの違い

同じ突合でも、関数とマージでは仕組みが大きく違います。実務で効いてくるのは次の3点です。

  • 行数分の数式が不要: 明細が1万行でも10万行でも、貼り付ける数式はゼロ。重くなりません
  • 列が増えても直さない: マージはキー列名で結びつけるので、マスタに列が増えても操作のやり直しは不要です
  • 更新ボタンで再実行: 翌月の明細に差し替えて「すべて更新」を押すだけで、突合済みの表が再生成されます

VLOOKUP の基本を先に押さえたい方は ExcelのVLOOKUP関数の使い方 もどうぞ。少量データなら関数、大量・定期処理ならマージ、という使い分けが基本です。

縦結合(追加)との違い

Power Query には「追加」という別の結合もあります。こちらは同じ列構成の表を 縦に積み上げる 機能で、部署別シートを1枚にまとめるときに使います。

「縦に積む=追加」「横にくっつける=マージ」と覚えておけば混乱しません。縦結合は Excel Power Query入門|コピペ集計を卒業する4つの自動化レシピ で扱っているので、まだの方はそちらから読むとスムーズです。

マージの前に押さえる「結合の種類」を図解

マージのダイアログには「結合の種類」を選ぶ欄があります。ここがマージ最大のつまずきポイントなので、先に整理しておきましょう。ちょっとむずかしく見えますが、考え方はシンプルです。

結合の種類とは、 「キーが一致しなかった行をどう扱うか」のルール です。よく使う4つを表にまとめます。

結合の種類残る行主な用途
左外部結合左の表は全部残す売上明細を軸に商品情報を付ける(最頻出)
右外部結合右の表は全部残すマスタ側を軸にしたいとき
内部結合両方に一致した行だけ両方に存在するデータだけ抽出
左反左にあって右にない行だけマスタ未登録の商品コードを洗い出す

迷ったら「左外部結合」でOK

実務でいちばん多いのは 左外部結合 です。「明細(左)を全部残したまま、マスタ(右)の情報をくっつける」という、VLOOKUP とまったく同じ発想だからです。

マスタに載っていない商品コードがあっても、明細の行は消えずに残り、商品名の欄が空(null)になるだけ。だから「データが勝手に減った」という事故が起きにくいんです。

内部結合と左反の使いどころ

両方の表に存在するデータだけを取り出したいなら 内部結合 を選びます。たとえば「アクティブ会員かつ今月購入あり」のように、両方の条件を満たす行だけを残したいときに便利です。

逆に 左反 は、突合チェックに使えます。「明細にあるのにマスタに未登録の商品コード」を一発で洗い出せるので、データの不整合チェックにぴったりです。

Power Queryでテーブルをマージする手順【4ステップ】

それでは実際に、売上明細に商品マスタの情報をくっつけてみましょう。流れは4ステップです。

ステップ1:2つの表をテーブルにして取り込む

まず「売上明細」と「商品マスタ」をそれぞれ Excel の テーブル にします。範囲を選んで Ctrl + T を押し、「先頭行をテーブルの見出しとして使用する」にチェックして OK です。

次に、各テーブル内のセルを選んだ状態で「データ」タブ →「データの取得と変換」→「テーブルまたは範囲から」をクリックします。Power Query エディターが開いたら、すぐに「閉じて読み込む」の下矢印 →「閉じて次に読み込む」で 接続専用 として読み込んでおきます。これを2つの表それぞれで行います。

ステップ2:マージダイアログを開く

「データ」タブ →「データの取得」→「クエリの結合」→「結合」を選びます。マージ専用のダイアログが開きます。

上段のドロップダウンで 左の表(売上明細) を、下段で 右の表(商品マスタ) を選びます。

ステップ3:キー列を指定して結合の種類を選ぶ

上下それぞれの表で、 結合キーにする列(ここでは商品コード)の列ヘッダーをクリック します。上下とも同じ意味の列を選ぶのがポイントです。

その下の「結合の種類」で、先ほど解説した中から選びます。まずは 左外部結合 でOKです。ダイアログ下部に「○件中○件が一致しました」と表示されるので、一致状況をここで確認できます。

ステップ4:必要な列だけ展開して読み込む

OK を押すと、明細の右端に テーブル型の新しい列 が追加されます。列ヘッダー右の展開アイコン(左右の矢印)をクリックすると、商品マスタのどの列を取り込むか選べます。

「元の列名をプレフィックスとして使用します」のチェックを外すと、列名がスッキリします。必要な列(商品名・単価など)だけにチェックして OK を押し、最後に「閉じて読み込む」で Excel シートに出力すれば完成です。

マージしたクエリを毎月使い回す

マージの本当の威力は、ここからです。一度組んだクエリは、 元データを差し替えるだけで何度でも再利用 できます。

翌月になったら、売上明細テーブルの中身を新しい月のデータに入れ替えます。あとは「データ」タブ →「すべて更新」をクリックするだけ。マージ済みの突合表が自動で作り直されます。VLOOKUP のように数式をコピーし直す必要はありません。

集計までつなげたいなら、マージ後にグループ化を重ねるのが定番です。商品ごと・月ごとの合計を出す方法は Power Queryのグループ化で集計する方法 で解説しています。「マスタ突合 → グループ化集計」の合わせ技で、毎月の集計レポートがほぼ自動になります。

複数ファイルをまとめてから突合したい場合は Power Queryでフォルダ内の複数ファイルを結合する方法 も参考になります。

うまくいかないときの対処法

最後に、マージでつまずきやすい3つのケースと対処法をまとめます。

キーが一致せず商品名が空(null)になる

いちばん多いのが「一致するはずなのに空欄」というトラブルです。原因の多くは キー列の見えない違い です。

  • 前後に余分なスペースが入っている
  • 片方が文字列、片方が数値になっている
  • 全角と半角が混ざっている

対処法は、両方のキー列のデータ型をそろえることです。エディターで列を選び「変換」タブ →「データ型」で型を統一し、必要なら「変換」タブ →「書式」→「トリミング」で余分なスペースを除きます。

1つのキーに複数件ヒットして行が増える

マスタ側にキーの重複があると、その分だけ行が掛け算で増えてしまいます(意図しない行数の膨張)。

マスタはキーが一意になっているのが前提です。重複が疑われるときは、マスタ側のクエリでキー列を選び「ホーム」タブ →「行の削除」→「重複の削除」で整理してからマージしましょう。

マージしたいクエリが選択肢に出てこない

マージダイアログの選択肢に表のクエリが表示されない場合、その表が クエリとして読み込まれていない のが原因です。

ステップ1に戻り、対象の表を「テーブルまたは範囲から」でクエリ化してください。Power Query のマージは「クエリ同士」を結びつける機能なので、シート上の表をそのまま指定することはできません。

まとめ:突合は「左外部結合」から始めよう

Power Query のマージを使えば、VLOOKUP で行数分の数式を引っ張る作業から卒業できます。最初の一歩は、 左外部結合での明細×マスタ突合 がおすすめです。

理由はシンプルです。

  • VLOOKUP と同じ発想なので理解しやすい
  • 左の明細が消えないので事故が起きにくい
  • 更新ボタン1クリックの再利用性をすぐ体感できる

慣れてきたら内部結合や左反も使い分けて、データチェックや抽出にも広げてみてください。

「関数・マクロ・Power Query・Power Automate のどれを選ぶべきか」で迷ったら、Power Queryと関数・VBA・Power Automateの違いと使い分け で4つの手段を比較しています。Power Query 全体の地図を確認したい方は Power Query完全ガイド もあわせてどうぞ。

毎月の突合作業をラクにする第一歩、今日のうちに試してみてください。

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