列名无效怎么解决_PowerQuery批量合并Excel,前面有空行且不相等的解决办法

关于PowerQuery批量汇总多个Excel工作簿,该功能非常经典实用,操作起来也很简单,之前已经有几篇文章介绍过该功能以及可能遇到的各种问题,
  • 使用Power Query是一种什么体验?

  • 批量合并Excel,PowerQuery的这些技巧你应该掌握

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

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

上面的第四篇文章介绍的是数据不是从第一行开始但前面空行是相同数量的情况,这种合并起来还比较简单。有朋友提到更特殊的一种情况,每张Excel表格前面的空行也不相同,那应该怎么快速批量合并呢? 这篇文章继续探讨解决合并Excel时会遇到的这个问题,比如下面示例中的这几张表: c06cdda2459ff69f1e5c7f63f2db5b61.png

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

下面是详细操作步骤: 7149ee701143aa3a9812134e33d3b525.png ↑  获取数据>文件夹 7ccb7f1b82af4f0b2b49784a4a8f7390.png ↑  点击“转换数据”进入PowerQuery编辑器 b1051db9d7b90f772e5be3cf41ce7bf2.png ↑  添加列>自定义列 cc4b58c27ba5e02645c6693ce5e20bdd.png ↑  自定义列公式: Excel.Workbook([Content]) 这里的Excel.Workbook无需加第二个参数,因为第一行本来也不是标题行,将表的第一行作为标题没有意义。 d2cd3a947de14e46a917202243ddf62e.png ↑  展开自定义列 展开以后,添加一个自定义列来解析[Data]列:

Table.PromoteHeaders(        //提升标题行

    Table.Skip([Data],              //跳过表的前 x 行         Table.PositionOf(         //计算 x             [Data],             [Column1="订单日期"],             Occurrence.First,             "Column1"         )     ) )
5776ba0836a9819f24ae6132a68110b9.png ↑  添加自定义列 这串M函数的含义已经注释计算逻辑,看起来比较长,与上篇文章相比,只是多了  Table.PositionOf   函 数,该函数通过查询某个列名出现的位置,来计算每张表前面有多少空行,利用这个函数的计算结果,来动态返回空行的数量。 将计算出的空行数量传递给  Table.Skip  跳过空行数,并利用函数   Table.PromoteHeaders 提升标题。 然后就是正常的点击自定义列右上角的展开按钮,像往常一样看到每张表的字段列表,想合并哪些列,直接勾选列名,点击确定,就会自动将每张表的所选字段合并到一起。 a1f65cf16d8e1f9cd5c949bff2462ddb.png 44b24a8e91469c04801664594940c09b.png 因为这个示例中,Excel表不规范的地方更多,所以用到了更多的M函数来相应处理,如果能理解M的逻辑最好,即使不理解,遇到相似的问题时,直接复制上面的M代码套用即可。 至此,关于批量合并Excel可能遇到的问题基本都提到了,如果你还有其他问题或者解决方案,欢迎留言分享。 当然,最重要的还是规范数据源,让每一张表的格式有统一的标准,这样才能更简单高效的完成数据汇总工作,而无需使用各种复杂的M函数。 本文的练习数据,可以在「PowerBI星球」公众号对话框发送关键字“批量合并Excel”下载。 -精彩推荐-

652e00f26e42673b81ad6fd7d9107e4d.png

b4e1a535516ae6a3e92bbcca8784287a.png 9415cf7cf4c511b8ec597ac51af587be.png 如果你刚开始学习Power BI,可在微信公众号后台回复"PowerBI",获取《七天入门PowerBI》电子书,轻松上手。 成为PowerBI星球会员 ,获取更多学习资源 2a0177f86da40ae41761c913ef9b7a19.png ↑ 扫码加入,与2k+ 学习者一起成长
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值