この記事について
この記事は、生成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、部署別の表記差、旧システムから新システムへの項目名移行で使えます。ただし「似た列名だから同じ意味」と自動判定しないことが重要です。
