基本表をまとめる

商品コードで別の表から商品名を付けたい

このページでできること

売上の各行に商品名を付けます。マスターにないコードも残し、未一致を確認できます。

処理の例

売上と商品マスター → 商品コードで左外部結合 → 商品名を展開

処理前:売上

処理前:売上
商品コード数量
P012
P991

残したい左側の表。コードはテキスト型です。

処理前:商品マスター

処理前:商品マスター
商品コード商品名
P01ノート
P02ペン

右側の照合表。P99は登録されていません。

使い方を順番に確認する練習を始めるときは、この手順に沿って進めます

使い方

  1. 売上表と商品マスターを別々にテーブル化し、それぞれPower Queryへ読み込みます。商品コードは両方ともテキスト型にし、接続のみで保存します。
  2. 売上クエリを編集し、[ホーム]→[クエリのマージ]▼→[新規クエリとしてマージ]を選びます。
  3. 上側を売上、下側を商品マスターにし、それぞれ「商品コード」をクリックします。結合の種類は[左外部]を選びます。
  4. 追加されたテーブル列の展開ボタンで「商品名」だけを選びます。元の列名をプレフィックスとして使用するチェックは外します。
  5. [ホーム]→[閉じて読み込む]の▼→[閉じて次に読み込む]で、テーブル・新規ワークシートを選びます。元の表と出力先を分けて結果を確認します。

結果の例

結果:2行
商品コード数量商品名
P012ノート
P991null(値なし)
注意点

商品名だけを付ける目的なら、展開前後で売上の行数と数量合計が変わっていないか確認します。この基本例は2行・数量合計3です。nullは一致なし、または一致先の商品名自体が空の場合にも現れるため、元のマスターも確認してください。

マスターが重複すると何が変わる?

練習用の右表:P01を2件にした場合

練習用コピーのマスターを下の3行にする → 同じ左外部結合 → 商品名を展開

売上は上の2行(P01の数量2、P99の数量1)のままです。右表だけを下の例に変更します。本番のマスターには追加せず、別の練習用ブックで確認してください。

練習用の右表:P01を2件にした場合:3行
商品コード商品名
P01ノート
P01メモ帳
P02ペン

展開後:同じ売上が2回現れる

P01は右表の2件に一致 → 2行へ展開
P99は一致なし → nullの1行を残す

売上2行が結果3行になります。数量合計は元の2+1=3から、2+2+1=5へ増えます。販売数が増えたのではなく、P01の数量2が一致先ごとに繰り返されています。このまま売上集計には使わず、マスターのどの行が正しいか確認します。表の行順は説明用です。

展開後:同じ売上が2回現れる:3行
商品コード数量商品名
P012ノート
P012メモ帳
P991null(値なし)

結合の種類による違い

元の重複なしマスターに戻す → 左外部と内部を比較

上の基本例では左外部ならP99も残り、内部ならP99が消えます。内部結合に変えることは重複対策ではありません。P01が右表に2件あれば内部でもP01の売上が2行になります。

結合の種類による違い:2行
設定(元のマスター)結果行数数量合計P99
左外部23残る/商品名null
内部12含まれない
うまくいかないときに確認するエラーや想定と違う結果が出たときの確認ポイント

うまくいかないとき

コードの型、前後空白、全角半角、先頭0を確認します。左外部は売上を全部残す設定です。未一致を取り除く内部結合とは結果が違います。 行数が増えたら、商品マスターの確認用クエリで商品コードを選び、[グループ化]の操作を[行数のカウント]にして2以上のコードを探せます。これは確認用の集計で、マスターの代わりに結合しません。同じコードの商品名が異なる場合は正しい対応を確認し、機械的に重複削除して片方を採用しないでください。複数列で照合する場合は両表で列を選ぶ順番もそろえます。

Excel Windows(Microsoft 365)を中心とした操作例です。画面名や利用できる接続はバージョン・環境で異なります。掲載表は架空データの期待値で、Excel実機での動作確認はしていません。

結果表への手入力は更新で失われる場合があります。元データと出力先は分けてください。

Microsoft:データのプライバシーレベル / Excelの対応環境

公式ドキュメントで詳しく確認する

Microsoft:マージの概要と列の型

Microsoft:テーブル列の展開と複数行への展開例

Microsoft:グループ化と行数のカウント

関連する処理

一覧に戻る