毎月のCSVで列名が変わっても止めない ― Power Query Mで列名ゆれを吸収する

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。Microsoft LearnのTable.RenameColumns、Table.SelectColumns、MissingFieldの仕様を確認し、曖昧な列は勝手に捨てない設計にしています。

検証ステータス:Microsoft公式仕様確認済み・実データ実機未確認

毎月届くCSVで「社員コード」が「社員ID」に変わるだけでPower Queryが止まることがあります。列名ゆれは吸収しつつ、候補が複数ある曖昧な入力は止めるのが安全です。

まず考える入力

1か月目は 社員コード,氏名、翌月は 社員ID,氏名 とします。どちらも標準列 社員コード へ寄せます。

let
    Source = #table({"社員ID", "氏名"}, {{"A001", "山田"}}),
    Renamed = Table.RenameColumns(Source, {{"社員ID", "社員コード"}}, MissingField.Ignore),
    Result = Table.SelectColumns(Renamed, {"社員コード", "氏名"}, MissingField.UseNull)
in
    Result

ここを見る

結果の列名が 社員コード に揃うことを確認します。不足列を MissingField.UseNull で補う設計なら、列がないことと空値を区別して後段で判断できます。

本番では「複数候補」を黙って選ばない

社員コード社員ID が同時に存在して値が違う場合、どちらが正しいかは業務判断です。Daily-Code版では候補が複数ある場合にSchemaConflictとして停止します。

1か所変える

入力列を 社員ID から 社員コード へ変えます。標準名が最初から存在する場合に不要なrenameをしないことを確認します。

仕事で使うなら

月次CSV、部署別の表記差、旧システムから新システムへの項目名移行で使えます。ただし「似た列名だから同じ意味」と自動判定しないことが重要です。

公式情報・一次情報

GitHubサンプル

文書情報

記事タイトル
毎月のCSVで列名が変わっても止めない ― Power Query Mで列名ゆれを吸収する
作成日
更新日
Source URL
https://papanda925.com/?p=16553

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました