Excelで複数のファイルに分かれたデータを共通IDで統合する方法【Power Query活用】初心者でもわかるシンプル解説。

目次

はじめに

Excelを使ってデータ分析をしていると、複数のファイルに分かれたデータを統合する必要があることがあります。各ファイルのテーブル構造が複雑な場合、手作業で統合するのは大変ですし、ミスにつながります。

そこで今回は、Power Query を使って 共通のIDを基準に複数のファイルのデータを統合する方法 を解説します。


今回のゴール・やりたいこと

以下のように異なる3つのExcelファイル上に存在するテーブルデータを、共通ID基準で統合し、1つのテーブルにまとめます。

■前提条件
✔ 各ファイルの1列目に共通IDが入っている。
✔ 各ファイルの1行目は列名が入っている。 (ID、商品名、カテゴリ、、など)
✔ 各ファイルから、必要な列のみ指定して結合する。(不要な列は読み込まない。)

サンプルデータ

1. 商品リスト(product_list.xlsx)

ID商品名カテゴリ
P001りんごフルーツ
P002バナナフルーツ
P003にんじん野菜
P004じゃがいも野菜
P005牛乳飲料

2. 価格情報(product_price.xlsx)

ID価格 (円)
P001150
P002120
P00390
P004200
P006250

3. 在庫情報(product_stock.xlsx)

ID在庫数
P00150
P00230
P00340
P00420
P00510
P00715

統合後のデータ(product_merged.xlsx)

ID商品名カテゴリ価格 (円)在庫数
P001りんごフルーツ15050
P002バナナフルーツ12030
P003にんじん野菜9040
P004じゃがいも野菜20020
P005牛乳飲料10
P006250
P00715

Power Query を使ったデータ統合手順

1. Power Query でデータを取得する

  1. 「データ」タブ → 「データの取得」 → 「ファイル」 → 「Excelブック」 を選択
  2. 「product_list.xlsx」を開く
  3. 「product_list」シートのデータを選択し、「データの変換」をクリック
  4. 「閉じて次に読み込む」を選択し、Power Query エディタを開いたままにする

同様に、「product_price.xlsx」「product_stock.xlsx」 のデータも取得しておきます。

※今回はExcelファイル全体をデータ範囲として取得する例を紹介していますが、あらかじめテーブル化したデータ範囲を読み込むことも可能です。


2. ID を基準にテーブルを結合する

1つ目の結合(商品リスト × 価格情報)

  1. 「product_list」テーブルを選択し、「ホーム」タブ → 「クエリのマージ」をクリック
  2. 「product_price」を選択し、「ID」列をキーにして結合(左外部結合)
  3. 展開アイコン(🔽)をクリックし、「価格 (円)」のみ選択して展開 (この作業で必要な列のみ読み込める)

2つ目の結合(商品リスト+価格情報 × 在庫情報)

  1. 「ホーム」タブ → 「クエリのマージ」 をもう一度クリック
  2. 「product_stock」を選択し、「ID」列をキーにして結合(左外部結合)
  3. 展開アイコン(🔽)をクリックし、「在庫数」のみ選択して展開

3. データの整理と仕上げ

  • 必要に応じて、列毎のデータ型を確認(価格や在庫は数値型にする等。よく分からなければスキップ可)
  • 空欄(null)を「-」に置き換える
    • 「変換」タブ → 「置換」 → null を「-」に置き換える
  • 「閉じて読み込む」で 表示中のExcel に読み込み、テーブルとして保存

IDを基準に、必要な列のみ結合されたデータがテーブルとして得られます。

4. データの更新

各ファイルが更新されたり、IDが追加されたら、「データ」タブ→クエリと接続の「すべて更新」や「更新」を押せば、各ファイルから最新の内容が反映されます。


Power Query を使うメリット

手作業なしでデータ統合可能 → IDが増えても「更新」ボタンで即反映できます。
データ構造が異なっていてもマージ可能 → 各ファイルの列や項目が増えても、必要な列だけ取り出せる。
毎回データをコピー&ペーストする手間がゼロに。単純ミスも減る。


まとめ

Power Queryを活用すると、複雑なデータの管理が楽になります。「毎回手作業でコピペするのが面倒…」 という方は、ぜひ挑戦してみてください!

記事について

当サイトは、主に自分用の備忘録として情報をまとめています。個別の質問にはお答えできません。
紹介するコードや設定をご参考の際は、ご自身の責任においてご利用ください。編集や実行によるいかなる損害・不具合についても、当サイトは責任を負いかねます。
必ず事前にバックアップを取り、安全に作業を行ってください。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次