さくっとエクセレートさくっとエクセレート

【脱VLOOKUP】パワークエリで別ファイルのエクセルデータを紐付ける方法

Thumbnail for 【脱VLOOKUP】パワークエリで別ファイルのエクセルデータを紐付ける方法

はじめに

Excel(エクセル)を使っていると、次のような悩みを感じたことはありませんか?

  • 「別ファイルのマスタデータから自動で情報を取得できたらいいのに…」
  • 「VLOOKUPの参照がよく壊れて困る…」
  • 「そのたびにファイルを開いてコピペするのが手間…」

こうした課題も、Power Query(パワークエリ) とテーブル機能を使えば、ほとんど解決できます。 VBAも必要ありません。

Power Queryで「マージ」機能 を使うことで、
外部ファイルを参照し、必要なデータの抽出・テーブルデータ間の紐付けが簡単にできるようになります。

実践:Power Queryで別ファイルからデータを抽出する手順

ここからは、Power Queryを使って別ファイル(外部ブック)のデータを取り込み、 必要な情報を抽出する手順について解説します。

具体的には、 外部 のテーブル(マスタデータなど)を参照し、 その中から「セルの値」に該当する項目を取得する、という流れになります。

Power Queryで別ファイルからデータを抽出
吉峰
吉峰

VLOOKUPを使って、 別ファイル を参照するイメージです。

ある「セルの値」と「別のテーブル」を突き合わせて、
「セルの値」の横に「別のテーブル」から該当データが追加されます。
つまり、 以下は同じことをしている と言えます。

  • 「セルの値」を格納したテーブルの横に、「別のテーブル」のデータを 紐づけ連結 する。
  • 「別のテーブル」から「セルの値」を検索 / 照合し、 マッチした該当データを取得 する。
STEP1

準備:「テーブル化」する

「別ファイル」のデータ範囲と、「検索値(検索に使うセルの値)」のデータ範囲を それぞれExcelの「テーブル」に変換します。

まず、データが入っているセル範囲を選択し、 挿入タブの テーブルCtrl + t を選べばテーブル化できます。

準備:「テーブル化」する

ここでは例として、以下のようなテーブル名を設定しています。

  • 別ファイルのテーブル名:M_アイテム
  • 検索値のテーブル名:P_名前

テーブル化することで、リンクが「シート名」と「セル位置」に依存しなくなり、
リンク切れのリスクを下げられます。

» テーブル機能の詳細はこちら

STEP2

エディタ起動:検索値のテーブルを読み込む

検索値のテーブルを Excel 上で選択し、そのままPower Queryエディターを起動します。

  1. テーブルP_名前のセルを選択。
  2. データタブのテーブルまたは範囲からを選択。
エディタ起動:検索値のテーブルを読み込む
STEP3

読込:別ファイルのテーブルを取り込む

別ファイル側にあるテーブルM_アイテムもPower Queryに読み込みます。

  1. Power Queryエディターの ホームタブの 新しいソース > ファイル > Excelブックを選択。
  2. 読み込む別ファイルを選択。
  3. M_アイテムテーブルを選択し、OKを押す。
読込:別ファイルのテーブルを取り込む
STEP4

結合:「マージ」でデータを紐付け

Power Queryエディター内で2つのテーブルが読み込めたら、 この2つをマージ(連結)します。 ここではテーブルP_名前を基準に、データの紐づけを行います。

  1. Power Queryエディター左側の欄で P_名前 を選択。
  2. ホームタブのクエリのマージを選択。
  3. マージダイアログ中の中央付近でテーブルM_アイテムを選択。
  4. 上部・下部のテーブルで、紐づける列(結合キー)をそれぞれ選択。
  5. 結合の種類左外側(最初の行すべて、および2番目の行のうち一致するもの)を選択
  6. OKを選択し、ダイアログを閉じる。
結合:「マージ」でデータを紐付け
STEP5

列の展開:結合した列を展開する

結合後の新しい列には、元のテーブルのすべての列情報が 1つのセル内にまとめて格納されています。 「展開」操作をして使いたい列だけ表示させます。

  1. M_アイテム列見出し中の右側のボタンを選択。
  2. 必要な列のみを選択する。
  3. 元の列名をプレフィックスとして使用しますのチェックを外す (列の展開後に、列名に重複が発生する場合はチェックを付ける)。
  4. OKを選択
列の展開:結合した列を展開する
STEP6

整形:不要な列の削除(任意)

結合後のテーブルから、不要な列はこの段階で削除しておくと管理が楽です。 もし削除したい列がなければ、この手順は省略して問題ありません。

  1. Power Queryエディター中の結合後のテーブルで、削除する列の見出しをクリック。
  2. ホームタブの列の削除を選択
整形:不要な列の削除(任意)
STEP7

出力:Excelシートへ配置

作成したテーブルをExcelシートに出力します。 Power Queryエディターを閉じた直後は、 P_名前M_アイテム2つ のクエリの読み込み先を設定することになるので、 一度接続の作成のみを選んだ後、 個別にP_名前のみをテーブルとして配置します。

  1. ホーム / ファイルタブの 閉じて次に読み込む を選択。
  2. データのインポートダイアログで接続の作成のみを選び、OKを選択。
  3. クエリと接続欄でP_名前を右クリックし読み込み先...を選択。
  4. データのインポートダイアログでテーブルを選択。
  5. データを返す場所を選択してください。の欄で、テーブルを配置したい場所を選択。
  6. OKを押し、ダイアログを閉じる。
出力:Excelシートへ配置
吉峰
吉峰

配置したテーブルのデータを新しい内容に更新する場合は、Excelのデータタブのすべて更新を押します。

メリット:VLOOKUPよりも壊れにくく、管理しやすい

VLOOKUPなどの関数ではなく、Power Queryとテーブルを使うことで、次のようなメリットがあります。

  • 外部参照のリンクが切れにくい
  • 外部ファイルを開く必要なし
 

外部参照のリンクが切れにくい

別ファイル(外部ブック)のデータを テーブル に格納して参照することで、 リンクが切れにくくなります。 通常のセル参照は「シート名」「セル位置」に依存しているため、ちょっとした編集でもリンク切れのリスクがあります。 一方、テーブル参照の場合は「テーブル名」と「列名」に基づくリンクで安定します。

吉峰
吉峰

逆に「テーブル名」または「列名」を変更するとリンクが切れます。

ただし「ファイル名 / パス」を変えてしまうと、どんな参照方式でもリンクは切れてしまうので注意が必要です。

 

外部ファイルを開く必要なし

Power Queryを使った外部参照なら、 別ファイル(外部ブック)を開かなくてもデータを自動で取り込めます。

VLOOKUP関数など数式での外部参照の場合は、 参照先のファイルを開かないとデータ更新ができなかったり、エラーになることもあります。

【逆引き】状況別の解決策

状況によっては、それぞれ違ったアプローチの方が効果的な場合があります。 以下の状況について、それぞれ説明します。

  • 同じファイル内を参照する場合 → 関数が有効
  • 複数の結果を取得したい場合 → Power Queryのフィルタ機能を活用
  • 複雑な紐づけを行いたい場合 → Power Pivot(データモデル)へ移行
 

同じファイル内で参照するなら、関数が有効

参照先が別ファイルでない場合は、 素直にVLOOKUP関数などの数式を使用するのが有効です。 VLOOKUP以外に、類似の関数としてXLOOKUP, INDEX + MATCH, FILTERもあります。

関数(数式)を使用するときは、以下のメリットがあります。

  • ✅ 手軽に設定できる
  • ✅ データの更新がリアルタイム
  • ✅ リンク切れリスク少(同一ブックのため)
吉峰
吉峰

参照先が同一ブックであっても、Power Queryが有効な場合があります。 たとえば「データ加工の自動化」などです。

 

複雑な紐づけを行いたいなら、Power Pivotへ移行

3つ以上 のテーブル間を紐づける場合は、 「Power Queryのマージ」では少々手間です。

Power Pivot(データモデル) を使えば、テーブル間の複雑な関連付けも簡単に実施できます。 特徴は以下の通りです。

  • グラフィカルに設定可能
  • リレーショナルデータベース のような動作が実現できる
パワーピボットを使用したリレーションシップの設定画面
吉峰
吉峰

Power Pivotは別ファイルを直接取り扱えませんが、 Power Queryで一度インポートしたあとデータモデルにすることで、 取り扱えるようになります。

まとめ:テーブルとPower Queryで「効率化」の仕組みを作ろう

上記で説明したように、 Power Queryの「マージ」とテーブル機能を使うことで、 外部ファイルを参照 し、 VLOOKUPのように必要なデータを抽出・テーブルデータ間の紐付けができます。

データの活用・再利用ができるようになると、著しい業務効率化が可能です。
今回紹介したように、Excelの テーブルPower Query の活用がデータ活用のカギになります。
データの転記、データの加工を自動化でき、簡易的なデータベースの運用へと応用できます。

» 詳細はこちら