之前介绍过批量合并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星球
返回搜狐,查看更多
责任编辑: