本节所用知识点:Power Query - 表头和首行互转的妙用。
实用案例:公司员工工资条的批量制作。
原始数据如下图所示:
然而我们人事部打印的要求需要一行标题,一行明细,一行空格,以此类推,如下图所示:
其实用 Excel 的普通功能也可以实现,但今天我们就用一个新方法来实现,具体思路:
比如某公司有 1000 个员工,那我们需要准备 1000 个表头,1000 条明细记录已经存在,1000 个空行,最后追加到一起,进行排序。
下面直奔主题,选中数据源,“Power Query”——“从表”,进入到 PQ 界面。
改名为 “工资条”,复制一份出来做 “标题”。
下面我们首先处理 “标题” 部分。比如我们的示例数据有 10 条记录,那我们必须创建 10 个标题行。
难点在于如何将数据源内容全部转换为标题行。
首先我们需要把它里头的内容都清空,这里用到的功能是 “转换”——“提取”——“范围”(必须全选)。
这里的关键在于范围的起始索引,我们设置为 199 的目的是什么?
目的是从每一单元格的 199 位开始提取,因为每一单元格都不满 199 个,所以无论提取多少个字符都是为空,这样一来,空行就得到了。
接下来一步则是查找替换值,查找空值,替换成为真空,即 null,“转换”——“替换值”(必须全选)。
效果如下:
接下来我们就可以把上面的表头复制到下面的内容中来,“转换”——“将第一行用作标题”——“使用表头作为首行”。
效果如下:
这样一来第一行已经有内容了,下面的怎么办呢?使用 “转换”——“填充”——“向下”(必须全选)。
效果如下:
可以发现,已经全部填充为标题行了,但是我们发现多了一行表头,这个时候我们可以用到反转的功能,将第一行内容变回为表头行。
“转换”——“将第一行用作标题”——“使第一行用作标题”,这样一来的好处是,之后可以和明细行对的上。
下面要做 10 个空行,这个相当简单了,直接复制 “标题” 即可。
然后右边 “应用的步骤” 删除到空行就可以了。
好了,基础数据已经准备完毕,这个时候还有一个问题需要考虑,即排序!
我们先给 “标题” 表添加索引列,“添加列”——“添加索引列”——“自定义”。
由工资表的布局,我们可以确定它的其实索引是 1,增量是 3,即第二个员工是从第四行开始打印。
效果如下:
然后给 “工资条” 也添加索引列,起始索引为 2,增量同样是 3。
同样的给空行设置索引列。
最后万事俱备,追加三个表。“开始”——“追加查询”——“三个或更多表”,把三个表添加进去。
效果如下:
下面对索引列进行排序就可以了,“开始”——“升序”。
效果如下:
这个时候发现第一行数据和表头的一样一样的,同样用上面的方法一步操作,“将第一行用作标题”。
删除索引列,关闭并上载出来。
最后我们用老方法美化一下它,好给员工打印。
在 “视图” 里面将它的网格线也去掉。
然后选中这么几列,“开始”——“条件格式”——“新建规则”。
即有内容的时候,我们给它设置边框,条件 = A1<>””。
有没有发现很销魂,最后我们在数据源里随意添加记录。
刷新,动态更新记录。
同样,删除也是动态的,一劳永逸!
https://saper.blog.csdn.net/article/details/54098615