之前介绍过批量合并Excel文件的特定列,方法可以参考:

利用PowerQuery,批量合并多个Excel的指定列

有星友问,如果有多个csv文件,像上面这篇文章中一样,列的顺序也是不同的,能够用这种方法批量合并吗?

对于这种情况的csv文件,同样可以用PowerQuery实现,不过相对于Excel文件的操作步骤,有两个细节需要调整:

1. csv数据的解析函数是Csv.Document。

在提取Excel数据时,用的是Excel.Workbook,而对于csv文件,就不能再用这个函数了,有专门针对csv文件的函数,它就是Csv.Document,之前这篇文章也介绍过:批量合并Excel,PowerQuery的这些技巧你应该掌握

具体方式就是添加自定义列时这样来写公式:

Csv.Document([Content],[Delimiter=",", Encoding=936])

2. Csv.Document无法自动提升标题

Excel.Workbook函数可以利用第二个参数true来自动将第一行用作标题,而Csv.Document函数无法自动提升标题,而每个csv文件的列顺序并不完全一致,所以不能直接展开。

虽然Csv.Document函数没有提升标题的参数,但是可以通过与提升标题的函数嵌套使用,来达到自动提升标题的目的。

对于第一步添加的自定义列,在Csv.Document的外层套上Table.PromoteHeaders函数,写法如下:

Table.PromoteHeaders(
Csv.Document([Content],[Delimiter=",", Encoding=936])
)

这样就将第一行用作标题了,达到了与Excel.Workbook([Content],true)同样的效果,然后再展开自定义列,选择特定的列就可以了。

对于合并Excel文件时遇到的其他情况,比如数据不是从第一行开始的、列名不一致等问题:

批量合并Excel,数据不是从第一行开始怎么办?

批量合并Excel,前面有空行且不相等怎么办?

批量合并Excel,列顺序/列名都不一致怎么办?

如果你处理csv文件时也遇到这些情况,都可以利用上面的处理方式调整后实现数据的批量合并。

更多教程

Power Query批量合并Excel特殊情况,列顺序/列名都不一致怎么办?

展示任务的时间进度,原来Power BI可以这样做~

这个PowerBI新功能太实用了,轻松设置图表的个性化数据格式

采悟 | PowerBI星球 返回搜狐,查看更多

责任编辑: