Power Query で列名を一括変更する方法【初心者向けサンプル】

目次

概要

本記事では、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

コードのポイント

  1. Excel.CurrentWorkbook() でワークブック内のテーブル一覧を取得いたします。
  2. [Name = "product_list"] で対象テーブルを指定し、[Content] でデータ部分を参照いたします。
  3. Table.TransformColumnNames で列名に対し文字列操作を適用します。例では "Column""col" に置換していますが、用途に合わせて変更できます。

活用例

  • 命名規則の統一
    複数のソースから取り込んだテーブルの列名に共通の接頭辞を付与し、分析時の列指定を簡潔にできます。
  • 表記揺れの解消
    大文字小文字の統一や余分な空白の除去も、同関数を用いて一括で処理できます。
  • 多言語対応
    英語列名を日本語に変換する、あるいはその逆といった用途にも応用可能です。

よくある質問

質問回答
列名の変換ロジックを複雑にしたい場合はどうすればよいですか。each キーワード内で Text.ProperText.Upper など複数の文字列関数を組み合わせることで柔軟に対応できます。
一部の列だけ変換対象外にしたい場合は?無名関数内で条件分岐を行い、特定列名は元の値を返すように実装できます。

まとめ

Power Query で列名を一括変更することで、表記統一やメンテナンス性の向上を図れます。まずは本サンプルコードを実行し、列名が適切に置換されることをご確認ください。業務で扱うテーブル名や変換ルールに合わせてカスタマイズいただければ、さらに高度な前処理を簡潔に実現できます。

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

この記事を書いた人

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

目次