PowerQuery(パワークエリ)で列名を変更する方法ついて紹介します。列名を列番号により指定して変更する方法や変換リストを用いた一括変更の方法などを合わせて解説しています。
列名の変更
列名を変更するには列ヘッダー部をダブルクリックすれば、すぐに変更できます。
列位置により変更する列を指定する
上記の列名変更方法だと元データの列名が変わってしまっているとエラーが発生してしまいます。その場合、列位置や列番号により列名を変更する列を指定すればエラーの発生を防ぐことができます。
列位置により列名を変更するには下記のTable.ColumnNames関数を用いた下記式を利用します。
Table.RenameColumns(テーブル名,{{Table.ColumnNames(テーブル名){列番号}, “変更後の列名”}})
【Table.ColumnNames関数の補足説明】
Table.ColumNamesはテーブル名を引数に設定するとテーブルの列名がリストデータが得られます。また、それに{列番号}を後ろにつけるとその列番号の列名が取得できます。※列番号は0始まりです。
【設定手順】
列位置での列名変更の下準備として、まずは列名を変更したい列をダブルクリックして任意の名前に変更します。
これにより数式バーにTable.RenameColumnsの式が作成されます。
下図のように変更前の列名をTable.ColumnNames(テーブル名){列番号}に置き換えます。列番号は0始まりなので”A”は列番号0となります。
以上で列番号による列名変更設定の完了です。これで、元データの列名が変わってもクエリを修正する必要はありません。
Sponsored link
列名の一括変更&可変設定
複数の列名を変換リストを用いて一括変更する方法を紹介します。この方法により作成したリストを利用することで列名を動的に可変できるようになります。
- 列名変換用のテーブルを作成する
- テーブルから列名変換用リストを作成する。
- Table.RenameColumns関数を用いて列名を一括変更する。
列名の一括変更の例として下図のテーブルの列名を変更します。
Excel上に変更前の列名と変更後の列名をまとめたテーブルを作成して、PowerQueryエディターに読み込みます。
変換用テーブルから変換用リストを作成します。
- カスタム列をクリックして新しい列を追加する。
- 下記式を入力して変換用リストの列を作成する。
={[変更前の列名の列], [変更後の列名の列]}
- 作成したデータ列をクリックして選択する。
- 変換タブにある「リストに変換」を選択して列名変換用リストを作成する。
これで下図のように列名変換用が作成されます。
セルのListの中身は下図のように変更前と変更後のデータのリストデータが格納されています。
- 列名を変更したいテーブルを開いて、どれか一つの列名を任意の列名に変更する。
- Table.RenameColumns関数の列名変更部を事前に作成した「列名変換用リスト」に置き換える。
以上で列名の一括変更は完了です。
列名を動的に変更できるか確認する
上述で作成した列名変換用リストとテーブルを利用して下記手順で列名が可変できるか確認します。
- 列名変換用リストの元テーブルのデータを変更する。
- 列名を変換したテーブルのクエリを更新する。
例として列名変換用リストのデータを「あ」「い」「う」「え」「お」と変更すると下図のように変わります。
エラーの対処(変換用リストとテーブル列が異なる場合)
列名変換用リストが実際のテーブル列より多いと下図のようにExpression.Errorというエラーが発生します。下図では列名変換用リストにのみ新たに「F」を追加した場合です。
このエラーを回避したい場合は、Table.RenameColumns関数の引数に「MissingField.Ignore」を追加します。これで変換リストとテーブル列構成が異なってもエラーが発生しなくなります。
Sponsored link
まとめ
今回は列名を変更する方法ついて紹介しました。列名を変更する方法は以下の通りです。
- 列名指定で変更:列ヘッダーをダブルクリックして直接入力
- 列番号指定で変更:Table.ColumnNames関数を用いた列名変更式を使用する
- 一括変更:変換リストを作成してTable.RenameColumns関数を使用する
パワークエリの学習本についてはコチラの記事でまとめてますので参考にしてみてください。
・初心者向けおすすめ学習本
・初中級者向けおすすめ学習本
コメント