PowerQuery批量合并Excel,前面有空行且不相等的解决办法

关于PowerQuery批量汇总多个Excel工作簿,该功能非常经典实用,操作起来也很简单,之前已经有几篇文章介绍过该功能以及可能遇到的各种问题,
上面的第四篇文章介绍的是数据不是从第一行开始但前面空行是相同数量的情况,这种合并起来还比较简单。有朋友提到更特殊的一种情况,每张Excel表格前面的空行也不相同,那应该怎么快速批量合并呢?
这篇文章继续探讨解决合并Excel时会遇到的这个问题,比如下面示例中的这几张表:

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

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

Table.PromoteHeaders(        //提升标题行

Table.Skip([Data],             //跳过表的前 x 行
Table.PositionOf(         //计算 x
[Data],
[Column1="订单日期"],
Occurrence.First,
"Column1"
)
)
)
↑ 添加自定义列
这串M函数的含义已经注释计算逻辑,看起来比较长,与上篇文章相比,只是多了 Table.PositionOf 函 数,该函数通过查询某个列名出现的位置,来计算每张表前面有多少空行,利用这个函数的计算结果,来动态返回空行的数量。
将计算出的空行数量传递给 Table.Skip 跳过空行数,并利用函数  Table.PromoteHeaders 提升标题。
(0)

相关推荐