如何在 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"
我有 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"