欢迎光临散文网 会员登陆 & 注册

Excel之PowerQuery 合并单元格及多行表头转动态一维表

2022-11-15 11:41 作者:孙兴华zz  | 我要投稿

网友提问:

放大图片:

原图
目标图

个人建议:原表是一张打印表(或展示表),这种表不要再拿来加工了。这种原表是给外行看的,我们做这件事情的人应该保留原始数据。

因为您的需求不一样,所以直接套用PowerQuery 107集合集中的这节课,是不行的。

只要需求变了,我们的思路就要跟着变。计算机里不能强行记忆。

第1步:导入数据

原始的合并单元格就都变成了如下情况

第2步:降标题

这里有些人会说,直接鼠标操作就好了,小心哈罗雷球白夕尚*会提“性能”问题,不信你用鼠标操作看看会不会多出一步,这一步是多余的,你还要删除。因为所有列的数据类型暂时都无法确定。

第3步:我们只需要红框之内表

方法:筛选"降标题"这张表Column1这列不为null的,然后对筛选后的表除了Column1、Column2以外所有列删除。最后转置。

得到结果:这一步做完先放在这里,我们一会有用。


第4步:我们需要“降标题”那样表红框之内的表,再转置

首先对“降标题”这张表删除Column1与Column2这两列,对结果表转置,会得到下表

接下来我们再对这张表,Column1这列判断,当以“列”开头时,就让他为null

第4步完整代码:

第5步:现在可以使用Table.Group第五参数分组了

现在我们需要让Column2、3、4  变成  Column1、2、3 好与我们第3步做好的表拼接

所以,我们需要将分组each后面的下划线(代表数据列每个Table)

我们先将每个Table按列转成列表,跳过第一行,再转回表

然后我们就可以用第三步的结果表与每个Table相连接

对每个Table做转置

提升每个Table的标题

第5步的完整代码如下:

第6步:动态表头

取第5步的【数据】列,把它们合并成一张表,取表头

第7步:展开

第8步:使用鼠标修改表头

双击Column1

修改成:部门

第9步:使用鼠标拖拽排序字段

第10步:使用鼠标排序字段

返回结果:

本文章配套课件已上传评论区。所有公式均在PowerQuery 107集课程中有讲解。且能实现添加部门、月份、仓库、SKU等数据后动态刷新。

PowerQuery合集:https://www.bilibili.com/video/BV1oa4y1j75e

更多教程:https://www.bilibili.com/read/cv10222110

Excel之PowerQuery 合并单元格及多行表头转动态一维表的评论 (共 条)

分享到微博请遵守国家法律