专栏名称: PowerBI星球
海量干货,帮你轻松上手 Power BI
目录
相关文章推荐
玩物志  ·  曾在风口浪尖的明星 AI ... ·  昨天  
昆明发布  ·  昆明1月住宅销售价格指数公布 ·  3 天前  
51好读  ›  专栏  ›  PowerBI星球

PowerQuery如何批量合并csv文件的指定列?

PowerBI星球  · 公众号  ·  · 2024-07-09 12:08

正文

前面介绍过批量合并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文件时也遇到这些情况,都可以利用上面的处理方式调整后实现数据的批量合并。




PowerBI星球的最新版内容合辑,值得你收藏学习:






请到「今天看啥」查看全文