Power Query で複数テーブルを縦に連結する方法

目次

はじめに

同じ列構造を持つ複数テーブルを 1 つにまとめたい場合、Power Query の Table.Combine 関数が便利です。本記事ではブック内テーブル TableEastTableWestTableCentral を連結する M コード例と、操作手順を丁寧にご説明いたします。


前提条件

項目内容
対象テーブルTableEast/TableWest/TableCentral
列構成3 テーブルとも同一(例:Date, Product, Amount など)
使用環境Excel Microsoft 365/2019/2016(Power Query 搭載版)

M コード(詳細エディターに貼り付け)

let
    // ブック内の全テーブルを取得
    CurrentBook = Excel.CurrentWorkbook(),

    // 必要なテーブルだけを配列で指定し結合
    CombinedData = Table.Combine({
        CurrentBook{[Name = "TableEast"]}[Content],
        CurrentBook{[Name = "TableWest"]}[Content],
        CurrentBook{[Name = "TableCentral"]}[Content]
    })
in
    CombinedData

コード解説

ステップ説明
Excel.CurrentWorkbook()現在のブックにあるすべてのテーブルや名前付き範囲をリスト形式で取得します。
{[Name = "TableEast"]}[Content]リストから対象テーブルのデータ部分のみを取り出します。
Table.Combine({...})配列で指定したテーブルを上から順に縦方向(行方向)へ結合します。

操作手順

  1. Power Query エディターを起動
    データ タブ →「テーブル/範囲から」→ いずれかのテーブルを選択 →「データの変換」をクリックし、Power Query エディターを表示します。
  2. 詳細エディターで M コードを入力
    エディター上部 ホーム → 詳細エディター を開き、上記 M コードを貼り付けます。内容を確認後、「完了」を選択します。
  3. プレビュー確認と読み込み
    3 テーブル分の行が連結されていることを確認し、「閉じて読み込む」を押して新しいシートまたはテーブルとして配置します。

応用ポイント

目的実装例
列数が異なる場合に対応事前に Table.SelectColumns を用いて共通列のみ抽出します。
テーブル名を動的に取得List.AccumulateTable.Combine を組み合わせ、特定接頭辞を持つテーブルを自動結合します。
重複行の削除Table.Distinct を追加して一意行だけを残します。

まとめ

テーブル名や結合条件を変数化すれば、他のブックやプロジェクトでも再利用しやすくなります。

Table.Combine を使うと、列構造が同一の複数テーブルを簡単に連結できます。

テーブルの内容が更新された場合でも、Power Query のリフレッシュだけで再結合が完了するため、月次・週次のレポート作成効率が向上します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次