前の記事では、「クエリの追加」で店舗ごとの集計の下に全店の合計を足しました。そのときに少し触れた「クエリのマージ」は、別の表の列を横に足す機能です。

実務では、ローデータに商品マスタをマージして、箱のサイズやカテゴリの列を足しています。商品コードをもとにマスタから列を持ってくるので、パワークエリの中でXLOOKUPを使うようなイメージです。
なお、この記事の表や手順は説明のために作ったもので、実際に使っているExcelとは作りが違います。商品コードや商品名も架空です。
例の表
ローデータには、店舗・商品コード・数量だけが入っています。
| 店舗 | 商品コード | 数量 |
|---|---|---|
| 本店 | 1001 | 3 |
| 本店 | 2001 | 2 |
| 駅前店 | 1002 | 5 |
商品マスタには、商品コードごとに商品名・カテゴリ・箱のサイズを登録しています。
| 商品コード | 商品名 | カテゴリ | 箱のサイズ |
|---|---|---|---|
| 1001 | バニラアイス | アイス | 60 |
| 1002 | チョコアイス | アイス | 60 |
| 2001 | クッキー詰め合わせ | 菓子 | 80 |
| 3001 | プレーンクッキー | 菓子 | 60 |
| 3002 | チョコクッキー | 菓子 | 60 |
このマスタから、ローデータにカテゴリと箱のサイズの列を足します。
箱のサイズは、宅配便の運賃を出すときに使っています。運賃表の記事では、箱の3辺の長さからサイズを出して、運賃を調べる方法を紹介しています。

商品マスタをクエリにする
まず、商品マスタをパワークエリに読み込みます。
- 同じファイルにある場合:マスタをテーブルにして、[データ]タブ→[テーブルまたは範囲から]
- 別のファイルにある場合:[データ]タブ→[データの取得]→[ファイルから]→[Excelブックから]
実務でも、マスタは同じファイルにある場合も、別のファイルにある場合もあります。別のファイルを読み込むときは、ファイル名をセルで指定しておくと、フォルダを移してもパスを直さずにすみます。

クエリの名前を「商品マスタ」にして、[閉じて次に読み込む]で「接続の作成のみ」にします。
クエリのマージでマスタを結合する
ローデータのクエリをPower Queryエディターで開き、[ホーム]タブ→[クエリのマージ]を押します。
マージの画面で、次のように指定します。
- 上の表:ローデータ。「商品コード」の列をクリックして選ぶ
- 下の表:「商品マスタ」を選び、「商品コード」の列をクリックして選ぶ
- 結合の種類:「左外部」
[OK]を押すと、ローデータの右端に「商品マスタ」という列ができます。中身は「Table」と表示されていて、このあと必要な列だけを取り出します。
商品コードは、ローデータとマスタでデータ型をそろえておいてください。片方が数値、もう片方がテキストだと、同じコードでも一致しません。
私もこれで失敗したことがあります。最初に資料を作ったときはうまくマージできていましたが、何かの拍子にマージ元の商品コードの型が変わってしまいました。運用を始めてから指摘があり、確認すると型が変わっていて、マージされなくなっていました。
マージより前のステップで型を変えるときは、商品コードの型が変わっていないか注意してください。
必要な列を展開する
「商品マスタ」の列の見出しにある、左右の矢印のボタンを押します。列の一覧が出るので、「展開」を選んだまま、「カテゴリ」と「箱のサイズ」だけにチェックを入れます。
「元の列名をプレフィックスとして使用します」のチェックは外しておくと、列名が「商品マスタ.カテゴリ」のようにならず、「カテゴリ」のままになります。
[OK]を押すと、次のようになります。
| 店舗 | 商品コード | 数量 | カテゴリ | 箱のサイズ |
|---|---|---|---|---|
| 本店 | 1001 | 3 | アイス | 60 |
| 本店 | 2001 | 2 | 菓子 | 80 |
| 駅前店 | 1002 | 5 | アイス | 60 |
グループ化の前にマージする
カテゴリごとに集計したい場合は、マージでカテゴリの列を足してからグループ化します。グループ化のやり方はこちらの記事で紹介しています。

実務では、グループ化の前にマージすることも、後にマージすることもあります。
また、このマージを応用して、部材の構成マスタから使った部材の数を出す方法も、別の記事で紹介する予定です。
まとめ
- 「クエリのマージ」で、商品コードをもとにマスタの列を横に足せる
- 結合の種類は「左外部」にする
- 展開するときは、必要な列だけにチェックを入れる

