PowerQuery实战:数据转置的综合应用_第1张图片

(正文开始)
本案例来源于网友提问。
案例描述:如上图,原格式为数据源,目标格式为需通过PowerQuery整理后的数据结构。
大家可以先想一想,或者试一试,看是否可解决,在看了我以下的思路后,欢迎交流。

分析原格式与目标格式,形成以下思路:
1、5行作为一组
2、每组进行转置
无论是写程序,还是通过软件操作,核心的步骤就这2步。
以下是在PowerBI中操作说明与截图
1、载入数据,如下图(步骤略)
PowerQuery实战:数据转置的综合应用_第2张图片
2、由于5行作为一组,所以需要新增辅助列,以下2步完成此操作。先新增索引列,如图:
PowerQuery实战:数据转置的综合应用_第3张图片
3、索引列的值除以5,然后取余数,就能得到分组的值,如图:
PowerQuery实战:数据转置的综合应用_第4张图片
(1、2、3、4、0即5组数据,按此进行分组)
4、按新建字段“辅助分组列”进行分组,如图:
PowerQuery实战:数据转置的综合应用_第5张图片
5、第一次转置:实现字段值的转置
将下图结构
PowerQuery实战:数据转置的综合应用_第6张图片
转变为下图结构
PowerQuery实战:数据转置的综合应用_第7张图片
关键的这一步代码如下图:
PowerQuery实战:数据转置的综合应用
主要用到函数
Table.FromList:从List创建表格,主要提取字段值
Table.Transpose:表的转置,实现字段值的转置
6、展开字段,如下图:
PowerQuery实战:数据转置的综合应用_第8张图片
7、转置表操作,第二次转置实现整表转置,如下图:
PowerQuery实战:数据转置的综合应用
8、提升标题
PowerQuery实战:数据转置的综合应用
至此,核心步骤已完成,剩下修改字段名称就可以了!

总结:核心步骤在第5步,实现字段值的转置,目标是将字段值的内容与分组字段值放在同一行上。
以上就是本案例的核心步骤说明,希望能得到大家的反馈,看是否有其他办法可完成,欢迎留言,让我们相互学习,共同成长!
(正文结束)

网友回答非常棒
1、通过List.Split实现分组,Table.FromColumns创建表
PowerQuery实战:数据转置的综合应用
这种函数组合非常巧妙,学习了!

2、通过Number.IntegerDivide整除实现分组,与我思路相似性很大
PowerQuery实战:数据转置的综合应用_第9张图片

广告:
1、本文所涉及的示例数据,请在知识星球“PowerBI有问必答”同名主题中下载(PS:知识星球最近在更新,不能发表主题,待更新完成后第一时间上传资料)。
2、同步详细视频已更新至网易云课题与51CTO课程中。