目次
概要
Excel ファイル内のテーブルを Power Query へ取り込み、1 行目を列見出しとして昇格したうえで、列 ProductName の値のみをリストとして抽出する手順を解説いたします。コードは「詳細エディター」に直接貼り付けてお使いいただけます。
前提条件
項目 | 内容 |
---|---|
対象テーブル名 | ItemCatalog |
抽出したい列 | ProductName |
使用環境 | Excel Microsoft 365/2019/2016(Power Query 搭載版) |
M コード
let
// ブック内テーブル「ItemCatalog」を参照
SourceTable = Excel.CurrentWorkbook(){[Name = "ItemCatalog"]}[Content],
// 1 行目を列見出しへ昇格
PromotedHeader = Table.PromoteHeaders(SourceTable, [PromoteAllScalars = true]),
// 列 ProductName をリストとして取得
ProductList = Table.Column(PromotedHeader, "ProductName")
in
ProductList
コード解説
ステップ | 説明 |
---|---|
Excel.CurrentWorkbook() | 現在のブックに存在するテーブルや名前付き範囲を一覧で取得します。 |
[Name = "ItemCatalog"] | テーブル名でフィルタリングし、[Content] でデータ本体を抽出します。 |
Table.PromoteHeaders | 取り込んだ表の 1 行目を列見出しとして設定します。PromoteAllScalars = true を指定すると、すべてのセルをテキストとして処理するため型推論によるエラーを避けやすくなります。 |
Table.Column | 列 ProductName だけをリスト形式で抽出します。リストは他のクエリや関数の入力値として再利用可能です。 |
操作手順
- Power Query エディターを開く
データ タブ →「テーブル/範囲から」→ 任意のテーブルを選択 →「データの変換」をクリックします。 - 詳細エディターに M コードを貼り付ける
ホームタブ →「詳細エディター」で既存コードをすべて削除し、上記 M コードを貼り付けます。 - 結果を確認して読み込む
プレビューに ProductName のリストが表示されたら、「閉じて読み込む」を実行し、シートまたは接続として保存します。
応用ポイント
目的 | 実装例 |
---|---|
複数列を同時にリスト化 | Table.ToColumns(PromotedHeader) で各列を個別のリストに変換できます。 |
型を自動変換したい | Table.TransformColumnTypes を追加し、列ごとに型を指定します。 |
フィルターを追加したい | 例: Table.SelectRows(PromotedHeader, each [Category] = "A") を挿入して行を絞り込みます。 |
まとめ
Power Query の Table.PromoteHeaders
を利用すると、1 行目を簡単に列見出しへ昇格できます。さらに Table.Column
で列をリスト化すれば、別クエリへのパラメータ渡しやデータ検証に活用しやすくなります。定型作業の自動化にぜひお役立てください。