商品コードで別の表から商品名を付けたい
売上の各行に商品名を付けます。マスターにないコードも残し、未一致を確認できます。
処理の例
売上と商品マスター → 商品コードで左外部結合 → 商品名を展開処理前:売上
| 商品コード | 数量 |
|---|---|
| P01 | 2 |
| P99 | 1 |
残したい左側の表。コードはテキスト型です。
処理前:商品マスター
| 商品コード | 商品名 |
|---|---|
| P01 | ノート |
| P02 | ペン |
右側の照合表。P99は登録されていません。
使い方を順番に確認する練習を始めるときは、この手順に沿って進めます
使い方
- 売上表と商品マスターを別々にテーブル化し、それぞれPower Queryへ読み込みます。商品コードは両方ともテキスト型にし、接続のみで保存します。
- 売上クエリを編集し、[ホーム]→[クエリのマージ]▼→[新規クエリとしてマージ]を選びます。
- 上側を売上、下側を商品マスターにし、それぞれ「商品コード」をクリックします。結合の種類は[左外部]を選びます。
- 追加されたテーブル列の展開ボタンで「商品名」だけを選びます。元の列名をプレフィックスとして使用するチェックは外します。
- [ホーム]→[閉じて読み込む]の▼→[閉じて次に読み込む]で、テーブル・新規ワークシートを選びます。元の表と出力先を分けて結果を確認します。
結果の例
| 商品コード | 数量 | 商品名 |
|---|---|---|
| P01 | 2 | ノート |
| P99 | 1 | null(値なし) |
商品名だけを付ける目的なら、展開前後で売上の行数と数量合計が変わっていないか確認します。この基本例は2行・数量合計3です。nullは一致なし、または一致先の商品名自体が空の場合にも現れるため、元のマスターも確認してください。
マスターが重複すると何が変わる?
練習用の右表:P01を2件にした場合
練習用コピーのマスターを下の3行にする → 同じ左外部結合 → 商品名を展開売上は上の2行(P01の数量2、P99の数量1)のままです。右表だけを下の例に変更します。本番のマスターには追加せず、別の練習用ブックで確認してください。
| 商品コード | 商品名 |
|---|---|
| P01 | ノート |
| P01 | メモ帳 |
| P02 | ペン |
展開後:同じ売上が2回現れる
P01は右表の2件に一致 → 2行へ展開
P99は一致なし → nullの1行を残す売上2行が結果3行になります。数量合計は元の2+1=3から、2+2+1=5へ増えます。販売数が増えたのではなく、P01の数量2が一致先ごとに繰り返されています。このまま売上集計には使わず、マスターのどの行が正しいか確認します。表の行順は説明用です。
| 商品コード | 数量 | 商品名 |
|---|---|---|
| P01 | 2 | ノート |
| P01 | 2 | メモ帳 |
| P99 | 1 | null(値なし) |
結合の種類による違い
元の重複なしマスターに戻す → 左外部と内部を比較上の基本例では左外部ならP99も残り、内部ならP99が消えます。内部結合に変えることは重複対策ではありません。P01が右表に2件あれば内部でもP01の売上が2行になります。
| 設定(元のマスター) | 結果行数 | 数量合計 | P99 |
|---|---|---|---|
| 左外部 | 2 | 3 | 残る/商品名null |
| 内部 | 1 | 2 | 含まれない |
うまくいかないときに確認するエラーや想定と違う結果が出たときの確認ポイント
うまくいかないとき
コードの型、前後空白、全角半角、先頭0を確認します。左外部は売上を全部残す設定です。未一致を取り除く内部結合とは結果が違います。 行数が増えたら、商品マスターの確認用クエリで商品コードを選び、[グループ化]の操作を[行数のカウント]にして2以上のコードを探せます。これは確認用の集計で、マスターの代わりに結合しません。同じコードの商品名が異なる場合は正しい対応を確認し、機械的に重複削除して片方を採用しないでください。複数列で照合する場合は両表で列を選ぶ順番もそろえます。
Excel Windows(Microsoft 365)を中心とした操作例です。画面名や利用できる接続はバージョン・環境で異なります。掲載表は架空データの期待値で、Excel実機での動作確認はしていません。
結果表への手入力は更新で失われる場合があります。元データと出力先は分けてください。
Microsoft:データのプライバシーレベル / Excelの対応環境