目次
はじめに
同じ列構造を持つ複数テーブルを 1 つにまとめたい場合、Power Query の Table.Combine
関数が便利です。本記事ではブック内テーブル TableEast、TableWest、TableCentral を連結する 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({...}) | 配列で指定したテーブルを上から順に縦方向(行方向)へ結合します。 |
操作手順
- Power Query エディターを起動
データ タブ →「テーブル/範囲から」→ いずれかのテーブルを選択 →「データの変換」をクリックし、Power Query エディターを表示します。 - 詳細エディターで M コードを入力
エディター上部 ホーム → 詳細エディター を開き、上記 M コードを貼り付けます。内容を確認後、「完了」を選択します。 - プレビュー確認と読み込み
3 テーブル分の行が連結されていることを確認し、「閉じて読み込む」を押して新しいシートまたはテーブルとして配置します。
応用ポイント
目的 | 実装例 |
---|---|
列数が異なる場合に対応 | 事前に Table.SelectColumns を用いて共通列のみ抽出します。 |
テーブル名を動的に取得 | List.Accumulate と Table.Combine を組み合わせ、特定接頭辞を持つテーブルを自動結合します。 |
重複行の削除 | Table.Distinct を追加して一意行だけを残します。 |
まとめ
テーブル名や結合条件を変数化すれば、他のブックやプロジェクトでも再利用しやすくなります。
Table.Combine
を使うと、列構造が同一の複数テーブルを簡単に連結できます。
テーブルの内容が更新された場合でも、Power Query のリフレッシュだけで再結合が完了するため、月次・週次のレポート作成効率が向上します。