怎么在每个科目(分类)内容的后面加3个空行?还涉及分组依据的核心原理……
『 1- 问题 』
前些天,在群里有朋友提到问题:在Power Query里,怎么能按需要给某个表添加一些行?比如在每个科目后面加3个空行:
大多数时候,Power Query是用来整合和清洗数据的,所以,如果要用它来拆分表或给数据加一些非规范数据,反而可能有点儿麻烦——当然,这也并不是不可能。
『 2 - 插入行基础 』
首先,Power Query里提供了一个函数专供给表增加行的——Table.InsertRows,基本用法如下:
Table.InsertRows(表,位置,内容列表)
比如要在表(源)中的第3行位置插入一行(单击编辑栏的fx按钮即可插入步骤写公式):
其中,如果添加的内容没有写全表中的所有字段,那整行都会出错,比如这样:
当然,出错了,上载到Excel时就变成了空行,如下图所示:
所以,如果只是为了插入空行,那就啥内容都不用写,比如在表的最后插入3个空行:
其中插入3行内容用了{[],[],[]},即直接写了3个空记录,那如果要插入100行,怎么办?自己想一下,欢迎留言说说你们的方法。
『 3 - 分组依据的核心原理 』
再回到前面群友提出的问题,要在每个科目分类后面插入空行,那么,如果要分别去定位每个科目最后一个记录所在的行,是很麻烦的。
不过,如果我们对“分组依据”的功能理解比较透切,可以知道,实际上分组的过程就是对同一类内容先分好,或者说挑出了每一组所包含的所有内容,然后再针对各类内容分别进行后续的聚合(计算)——这句是超级重点,但太长了,不好重复3遍
。具体是什么意思呢,可以通过这个操作来理解:
结果是这样的——所谓分组下的“所有行”,就是这个分组下的所有内容所形成的一张表,而这张表在代码里直接用下划线(_)表示,而你如果选择其他选项,或者修改公式来实现其他分组功能,实际都是针对这个表的结果进行操作:
『 4 - 问题的解决 』
理解了这个,要对每个分组加空行,就很简单了,只要针对每个分组的表添加空行就好了。于是修改分组公式如下:
最后展开表数据:
结果如下:
剩下的其他调整不再赘述。