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

Excel之PowerQuery 逆透视的应用

2022-11-30 13:19 作者:孙兴华zz  | 我要投稿

网友提问:


其实知识还是要你自己去学会的,先别处理自己工作中的问题,学完后用自己掌握的知识,处理自己的问题,否则外人永远不懂您的业务,永远不知道下一步你会遇到什么BUG。

PowerQuery和ExcelVBA的方法我都会给你,先发PowerQuery稍候发ExcelVBA的文章

学ExcelVBA看合集就可以了:https://www.bilibili.com/video/BV1rt4y1a72y


第1步:将原表导入PowerQuery

第2步:第1次逆透视

按住Ctrl键,选择以下四列

依次点【转换】~【逆透视】~【逆透视其他列】

返回结果:

我们把字段名改一下

返回结果:

选中:【款号】、【部位】、【颜色】这三列,删除其它列,用鼠标操作就好了【主页】~【删除列】~【删除其它列】

第3步:第2次逆透视

复制上面逆透视的公式

= Table.UnpivotOtherColumns(更改的类型, {"款号", "面料A", "面料B", "面料C"}, "部位", "颜色")

 {"款号", "面料A", "面料B", "面料C"}   改成   {"款号", "颜色A", "颜色B", "颜色C"}

将  "颜色"  改成  "面料"

返回:

第4步:做合并

将“删除其他列”那张表按列转列表与“第2次逆透视”这张表的【面料】列合并后转成表,加表头

第5步:修改列

修改【部位】列,将颜色替换为空字符,最后用鼠标去调一下列的顺序。

现在说一下进阶部分,因为我们之前两次逆透视都是固定写法

= Table.UnpivotOtherColumns(更改的类型, {"款号", "面料A", "面料B", "面料C"}, "部位", "颜色")

= Table.UnpivotOtherColumns(更改的类型, {"款号", "颜色A", "颜色B", "颜色C"}, "部位", "面料")

问题就在这红色部分,假设以后有面料D、E、F...   颜色D、E、F

怎么办?我们需要写动态列表,替换它,我们先获取字段名列表

我们要按红色规律取一次,蓝色规律取一次。我们学过表的循环取行,列表也是一样,只是把Table改成List,功能上没有区别

但是,列表这个功能的函数叫 List.Alternate   把后面的Rows取消掉了,因为表有行,列表没有行,只有元素个数。

把这两个公式代替替换我们上面的固定写法就OK了。做好的课件我发到评论区了,可以下载学习。

以后我们增加行或列

刷新生成的表

PowerQuery教程:https://www.bilibili.com/video/BV1oa4y1j75e

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

Excel之PowerQuery 逆透视的应用的评论 (共 条)

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