目次
概要
本記事では、Excel Power Query で Table.TransformColumnNames 関数を用い、列名を一括で変更する手順を解説いたします。列名の一括変換を利用すると、表記揺れの解消や後続処理の統一が容易になり、メンテナンス性が向上いたします。
前提条件
項目 | 内容 |
---|---|
Excel バージョン | Microsoft 365 または 2016 以降 |
サンプルテーブル名 | product_list |
追加アドイン | 不要(標準機能のみ) |
サンプルコード(M 言語)
以下のコードを Power Query エディタの 「詳細エディター」 に貼り付けて実行してください。テーブル名や変数名は例示用に変更してありますので、そのままご利用いただけます。
let
// ブック内テーブル一覧を取得
wkData = Excel.CurrentWorkbook(),
// 対象テーブル product_list を参照
goodsTbl = wkData{[Name = "product_list"]}[Content],
// 列名を一括変換 ("Column" → "col" に置換)
renamed = Table.TransformColumnNames(
goodsTbl,
each Text.Replace(_, "Column", "col")
)
in
renamed
コードのポイント
Excel.CurrentWorkbook()
でワークブック内のテーブル一覧を取得いたします。[Name = "product_list"]
で対象テーブルを指定し、[Content]
でデータ部分を参照いたします。Table.TransformColumnNames
で列名に対し文字列操作を適用します。例では"Column"
を"col"
に置換していますが、用途に合わせて変更できます。
活用例
- 命名規則の統一
複数のソースから取り込んだテーブルの列名に共通の接頭辞を付与し、分析時の列指定を簡潔にできます。 - 表記揺れの解消
大文字小文字の統一や余分な空白の除去も、同関数を用いて一括で処理できます。 - 多言語対応
英語列名を日本語に変換する、あるいはその逆といった用途にも応用可能です。
よくある質問
質問 | 回答 |
---|---|
列名の変換ロジックを複雑にしたい場合はどうすればよいですか。 | each キーワード内で Text.Proper や Text.Upper など複数の文字列関数を組み合わせることで柔軟に対応できます。 |
一部の列だけ変換対象外にしたい場合は? | 無名関数内で条件分岐を行い、特定列名は元の値を返すように実装できます。 |
まとめ
Power Query で列名を一括変更することで、表記統一やメンテナンス性の向上を図れます。まずは本サンプルコードを実行し、列名が適切に置換されることをご確認ください。業務で扱うテーブル名や変換ルールに合わせてカスタマイズいただければ、さらに高度な前処理を簡潔に実現できます。