关于PowerQuery批量汇总多个Excel工作簿,该功能非常经典实用,操作起来也很简单,之前已经有几篇文章介绍过该功能以及可能遇到的各种问题,
↑
获取数据>文件夹
↑
点击“转换数据”进入PowerQuery编辑器
↑
添加列>自定义列
↑
自定义列公式:
Excel.Workbook([Content])
这里的Excel.Workbook无需加第二个参数,因为第一行本来也不是标题行,将表的第一行作为标题没有意义。
↑
展开自定义列
展开以后,添加一个自定义列来解析[Data]列:
↑
添加自定义列
这串M函数的含义已经注释计算逻辑,看起来比较长,与上篇文章相比,只是多了
Table.PositionOf
函 数,该函数通过查询某个列名出现的位置,来计算每张表前面有多少空行,利用这个函数的计算结果,来动态返回空行的数量。
将计算出的空行数量传递给
Table.Skip
跳过空行数,并利用函数
Table.PromoteHeaders
提升标题。
然后就是正常的点击自定义列右上角的展开按钮,像往常一样看到每张表的字段列表,想合并哪些列,直接勾选列名,点击确定,就会自动将每张表的所选字段合并到一起。
因为这个示例中,Excel表不规范的地方更多,所以用到了更多的M函数来相应处理,如果能理解M的逻辑最好,即使不理解,遇到相似的问题时,直接复制上面的M代码套用即可。
至此,关于批量合并Excel可能遇到的问题基本都提到了,如果你还有其他问题或者解决方案,欢迎留言分享。
当然,最重要的还是规范数据源,让每一张表的格式有统一的标准,这样才能更简单高效的完成数据汇总工作,而无需使用各种复杂的M函数。
本文的练习数据,可以在「PowerBI星球」公众号对话框发送关键字“批量合并Excel”下载。
-精彩推荐-
如果你刚开始学习Power BI,可在微信公众号后台回复"PowerBI",获取《七天入门PowerBI》电子书,轻松上手。
成为PowerBI星球会员
,获取更多学习资源
↑ 扫码加入,与2k+ 学习者一起成长
使用Power Query是一种什么体验?
批量合并Excel,PowerQuery的这些技巧你应该掌握
利用PowerQuery,批量合并多个Excel的指定列
Power Query批量合并Excel,数据不是从第一行开始怎么办?

从这三张表可以看出,数据前面都有空行,且空行数量都不相等,以这个数据为例,我们依然从头开始,再详细介绍一下PowerQuery批量汇总空行不相等Excel的处理步骤。
下面是详细操作步骤:




Table.PromoteHeaders( //提升标题行
Table.Skip([Data], //跳过表的前 x 行 Table.PositionOf( //计算 x [Data], [Column1="订单日期"], Occurrence.First, "Column1" ) ) )





