如何在 Excel 中组合具有不同列名和列顺序的多个 CSV 文件?

How can I combine multiple CSV files with different column names and column order in Excel?

我有 350 多个 CSV 文件需要合并到一个聚合文件中。 Using Power Query for Excel,我能够在几分钟内轻松合并所有文件。但是,经过检查,并非所有文件都遵循相同的列顺序或名称。例如,一些文件经过:

first, last, address, city, state, username

但是其他一些文件经过了:

address1, address2, city, state, last_name, first_name, age

使用 Power Query、Excel、VBA 或其他方式 - 有没有办法有效地合并具有不同列名和列顺序的多个 CSV 文件?我尝试在线搜索,但 none 的解决方案与我正在寻找的内容相关 ()。

以上示例的最终结果应如下所示:

username, last_name, first_name, age, address1, address2, city, state

一个 sheet 中不存在的任何额外列可以为空(或 null),最终确定的列顺序无关紧要,因为稍后可以重新排列。

类似于 this related post, the Table.Combine 函数应该可以解决问题,假设您有 headers 来匹配列。

通过从文件夹加载 CSV 文件,将 CSV 转换为 table 格式并提升 headers,然后与 Table.Combine.

结合
let
    Source = Folder.Files("C:\Path\To\Folder\With\CSVs"),
    #"Added Custom" = Table.AddColumn(Source, "CSV", each Table.PromoteHeaders(Csv.Document([Content]))),
    #"Combine CSVs" = Table.Combine(#"Added Custom"[CSV])
in
    #"Combine CSVs"