批量汇总多Excel表 | 标题位置不确定,怎么处理?

2021-08-31 10:41:06 浏览数 (2)

标准Excel表格批量汇总过程及基础方法请参考文章:《批量汇总Excel工作簿多表数据,结合CELL函数实现动态化数据源及需要注意的Formula.Firewall问题》,所有特殊情况处理都是在该基础方法之上加以适当的处理而已。

小勤:好烦啊,公司里有些让人填的表,有的在表头了加一行,有的又把我们设定的行给删除了,结果交上来的数据有的表头前2行,有的3行,而且里面各种杂乱说明备注……,像这种表怎么汇总啊?

大海:那你说,这有什么明确的规则能确定标题行开始的地方吗?

小勤:能不能通过搜索的方式来确定标题从哪一行开始?这还是基本有规律的,比如如果第一列里有“姓名”字样的,那肯定就是标题行了。

大海:好吧。如果这样的话,这个问题处理起来也很简单。可以通过Table.Skip函数直接跳过第一列内容为“姓名”之前的行,如下所示:

小勤:这也行啊?原来以为Table.Skip的第二个参数是个数字,只是用来跳过多少行呢。

大海:当然不是啦。Power Query里有很多函数的参数既可以是数值,还可以是其他的条件,这是PQ的函数相对稍为复杂而功能更加强大的地方。

小勤:嗯。那能通过多列都匹配才能确定标题行吗?比如要求第1列里找到“姓名”,第2列找到“公众号”才算。

大海:当然。比如:

小勤:咦,为什么条件不是[Column1]<>"姓名" and [Column2]<>"公众号"?

大海:你仔细思考一下?

小勤:嗯。我大概想到了。接下来就简单了,用Table.PromoteHeaders函数提升标题行然后展开就合并好了:

大海:嗯。就是这么简单!

0 人点赞