文章背景: 透视列(Pivot)和逆透视列(Unpivot)是在Excel当中经常使用的一对数据聚合和拆分方法,在Power BI中也提供了同样的功能。
透视,或者称为列的透视,是一维表转换到二维表的过程;逆透视,或者称为列的逆透视,是把二维表转换到一维表的过程。
逆透视列可以将列转换为行,并对数据进行拆分操作。逆透视列操作主要针对的是有多列数据的表单,这类表单的特点是一般有一个主列,该列中数值多数情况下都是非重复值;而其他数据列类型基本相同,其数值都是对主列中数据某一属性的描述。
对于这种有一定汇总关系的表单,可以将主列外的其他多列数据合并成一个列,即将列转换成行,然后将主列中原始值扩展成多个重复数值与合并后的新列产生对应关系,以便进行后续分析计算。
对于上图中的二维表,选中部门
列,点击右键,选择逆透视其他列
,得到一维表。
得到的一维表如下:
Power BI对逆透视列操作提供了三个选项,其功能区别如下:
(1)逆透视列:后台调用了M语言中的Table.UnpivotOtherColumns
函数。该操作意味着对当前选中的列进行逆透视操作,列中数据将被转换成行,未选中列保持不变。
(2)逆透视其他列:后台也是调用了M语言中的Table.UnpivotOtherColumns
函数,是逆透视列操作的反选操作。使用此选项意味着对选中列以外的其他列进行逆透视操作,选中列保持不变。
(3)仅逆透视选定列:后台调用了M语言中的Table.UnpivotColumns
函数。该操作意味着仅仅对当前选中列做逆透视操作。
逆透视列
/逆透视其他列
选项和仅逆透视选中列
选项的区别在于,当有新的列添加到表单中时,逆透视列
和逆透视其他列
选项拥有自动将新列进行逆透视操作的能力,而仅逆透视选中列
选项则不会对新列进行处理。
两类操作之所以有这样的区别,在于逆透视列
和逆透视其他列
使用的是Table.UnpivotOtherColumns
函数,该函数明确定义的是不需要进行逆透视的列,不在定义范围内的其他列默认都要进行逆透视操作。所以当数据源中出现新列时,就会被进行逆透视操作。而仅透视选定列
使用的则是Table.UnpivotColumns
函数,该函数明确定义了需要进行逆透视操作的列,不在定义范围内的列都不会做逆透视操作。因此,当数据源中出现新列时,也不会被进行逆透视操作。
透视列操作是将列下所有的N个非重复数据转换成N个新列,然后对原始数据进行汇总合并来计算新列中的每一行值。也就是说,透视列有将行数据转换成列数据的能力。
针对上面逆透视其他列
得到的表单,选中季度
列做透视列的操作。Power BI会提示季度
列中的内容会被用来创建新列,值列所选择的销售额
则会根据季度
列中的内容进行聚合求和
操作来生成相应的列值。
得到的二维表如下:
参考资料:
[1] Power BI中的透视列和逆透视(https://blog.csdn.net/jessica_seiya/article/details/105923945)
[2] Power Query数据透视与逆透视(https://www.youtube.com/watch?v=hNaTA6SfMzU)
[3] 数据的透视与逆透视(https://zhuanlan.zhihu.com/p/102385866)
[4] 逆透视列(https://learn.microsoft.com/zh-cn/power-query/unpivot-column)