【Excel】パワークエリでマスタを結合する|クエリのマージで商品マスタの列を足す

Excel・業務効率化

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

【Excel】パワークエリで店舗ごとの集計の下に全店の合計を追加する|参照とクエリの追加
パワークエリで店舗ごとにまとめた集計の下に、全店の合計の行を追加する方法を紹介します。「参照」と「クエリの追加」を使い、プルダウンで「合計」を選べば同じ式で全店の数字も出せます。

実務では、ローデータに商品マスタをマージして、箱のサイズやカテゴリの列を足しています。商品コードをもとにマスタから列を持ってくるので、パワークエリの中でXLOOKUPを使うようなイメージです。

なお、この記事の表や手順は説明のために作ったもので、実際に使っているExcelとは作りが違います。商品コードや商品名も架空です。

例の表

ローデータには、店舗・商品コード・数量だけが入っています。

店舗商品コード数量
本店10013
本店20012
駅前店10025

商品マスタには、商品コードごとに商品名・カテゴリ・箱のサイズを登録しています。

商品コード商品名カテゴリ箱のサイズ
1001バニラアイスアイス60
1002チョコアイスアイス60
2001クッキー詰め合わせ菓子80
3001プレーンクッキー菓子60
3002チョコクッキー菓子60

このマスタから、ローデータにカテゴリと箱のサイズの列を足します。

箱のサイズは、宅配便の運賃を出すときに使っています。運賃表の記事では、箱の3辺の長さからサイズを出して、運賃を調べる方法を紹介しています。

【Excel】XLOOKUP2回と近似一致の応用|宅配便の運賃表から運賃を出す
XLOOKUPで複数列を取り出す方法、近似一致、XLOOKUPを2回使うクロス表の検索を組み合わせて、商品と都道府県から宅配便の運賃を出す方法を紹介します。

商品マスタをクエリにする

まず、商品マスタをパワークエリに読み込みます。

  • 同じファイルにある場合:マスタをテーブルにして、[データ]タブ→[テーブルまたは範囲から]
  • 別のファイルにある場合:[データ]タブ→[データの取得]→[ファイルから]→[Excelブックから]

実務でも、マスタは同じファイルにある場合も、別のファイルにある場合もあります。別のファイルを読み込むときは、ファイル名をセルで指定しておくと、フォルダを移してもパスを直さずにすみます。

【Excel】パワークエリで読み込むファイルをセルで指定する|ローデータと集計のExcelを分けて軽くする
パワークエリで読み込むファイルをセルで指定する方法を紹介します。ローデータと集計のExcelを分けて軽くでき、フォルダごと移してもパスを直さずに読み込めます。

クエリの名前を「商品マスタ」にして、[閉じて次に読み込む]で「接続の作成のみ」にします。

クエリのマージでマスタを結合する

ローデータのクエリをPower Queryエディターで開き、[ホーム]タブ→[クエリのマージ]を押します。

マージの画面で、次のように指定します。

  • 上の表:ローデータ。「商品コード」の列をクリックして選ぶ
  • 下の表:「商品マスタ」を選び、「商品コード」の列をクリックして選ぶ
  • 結合の種類:「左外部」

[OK]を押すと、ローデータの右端に「商品マスタ」という列ができます。中身は「Table」と表示されていて、このあと必要な列だけを取り出します。

商品コードは、ローデータとマスタでデータ型をそろえておいてください。片方が数値、もう片方がテキストだと、同じコードでも一致しません。

私もこれで失敗したことがあります。最初に資料を作ったときはうまくマージできていましたが、何かの拍子にマージ元の商品コードの型が変わってしまいました。運用を始めてから指摘があり、確認すると型が変わっていて、マージされなくなっていました。

マージより前のステップで型を変えるときは、商品コードの型が変わっていないか注意してください。

必要な列を展開する

「商品マスタ」の列の見出しにある、左右の矢印のボタンを押します。列の一覧が出るので、「展開」を選んだまま、「カテゴリ」と「箱のサイズ」だけにチェックを入れます。

「元の列名をプレフィックスとして使用します」のチェックは外しておくと、列名が「商品マスタ.カテゴリ」のようにならず、「カテゴリ」のままになります。

[OK]を押すと、次のようになります。

店舗商品コード数量カテゴリ箱のサイズ
本店10013アイス60
本店20012菓子80
駅前店10025アイス60

グループ化の前にマージする

カテゴリごとに集計したい場合は、マージでカテゴリの列を足してからグループ化します。グループ化のやり方はこちらの記事で紹介しています。

【Excel】パワークエリで大量データを軽くする|グループ化で行数を減らして集計する
1年分で約20万行のローデータをSUMIFSで集計して重かったExcelを、パワークエリのグループ化で約6,000行にまとめて軽くした方法を紹介します。月の列の作り方、不要な列の削除、店舗・月・カテゴリでのグループ化、更新の仕方まで書いています。

実務では、グループ化の前にマージすることも、後にマージすることもあります。

また、このマージを応用して、部材の構成マスタから使った部材の数を出す方法も、別の記事で紹介する予定です。

まとめ

  • 「クエリのマージ」で、商品コードをもとにマスタの列を横に足せる
  • 結合の種類は「左外部」にする
  • 展開するときは、必要な列だけにチェックを入れる
タイトルとURLをコピーしました