Excel数据透视不够用?试试PowerQuery的透视功能

对于Excel用户而言,数据透视表无疑是基础又实用的数据分析利器,轻松实现数据汇总与可视化。可能有些人还不知道,PowerQuery中也藏着强大的透视功能,在数据预处理、多源数据整合后的透视分析上同样很有优势。

之前分享过如何利用PowerQuery将二维表转换为一维表,主要使用的是PQ的"逆透视"功能:

关于一维表,你想知道的都在这里了

多列结构的二维表转一维表,PowerQuery可以这样做

利用PowerQuery转换一维表,这种格式的表格你见过吗?

而透视功能正好相反,它能快速将一维数据转为二维表格,支持求和、计数等多种聚合方式,适配复杂数据场景。

下面这篇文章就带你深入拆解PQ透视功能的具体用法,以及使用该功能时你可能遇到的一些问题。

一维表转二维表,或者说长表转换为宽表,其实并不难,用“透视列”功能即可轻松实现,比如下面这个表格:

如果想把这个数据转换为每个产品一列,可以通过在PQ中使用透视列功能来实现,数据导入到PQ后,选中产品列,点击“透视列”功能,“值列”选择数据,如下图:

就可以轻松实现透视后的二维表效果:

对于值列是数值的,默认聚合方式是求和,也可以调整为最大值、最小值、不要聚合等方式,展开高级选项可以更改:

如果值列是文本,默认聚合方式是计数,如果想显示为文本本身,就选择最后一项"不要聚合"(数值型字段也可以选择不聚合)。

透视这个功能本身很简单,不过当分类有重复值时,选择不要聚合就会报错,比如上面的数据变成下面这样:

透视时聚合方式选择“不要聚合”,有重复值的单元格则会出错,点击Error可以看到如下信息:

Expression.Error: 枚举中用于完成该操作的元素过多。

对于这种问题,如果你想把重复的多个值显示在一个单元格中,可以通过修改M公式的方式来解决。

不要聚合默认的M公式是这样的:

= Table.Pivot(更改的类型, List.Distinct(更改的类型[产品]), "产品", "数据")

改成下面这样:

= Table.Pivot(更改的类型, List.Distinct(更改的类型[产品]), "产品", "数据", each Text.Combine(_,"、"))

也就是Table.Pivot最后面增加一个参数:each Text.Combine(_,"、")

就可以实现重复值合并到一个单元格的效果:

对于有重复的情况,如果需求不是放到一个单元格中,而是分别放到多行中,比如上面的数据,透视后2022应该有两行,分别显示A和D重复的两个数据,这种需求也可以实现,可以先添加一个辅助列。

这个辅助列是根据年度和产品两列来添加索引,具体添加方式可以参考这篇文章中的分组法:PowerQuery添加索引,这几种情况你应该知道怎么做

添加后效果如下:

然后选中产品列,进行透视,

透视后的效果如下:

这样就实现了重复值用多行显示的效果(处理完成后可以删掉索引列)。

以上就是关于PowerQuery中透视列的用法,以及特殊情况的处理,希望对你有帮助。

关于透视列,除非特殊需要,一般不建议在数据整理阶段进行这种操作,大多数时候其实一维的长表结构更适合后续的分析;即使展示时需要透视的效果,也可以利用Excel的数据透视功能,或者PowerBI的矩阵,简单拖拽字段得到。

ABI智能助手完整指南:重新定义您的PowerBI数据分析流程

年度盘点 | 2025 Power BI十大新增功能

Power BI分析师年底必备!用它轻松拿捏年度分析报告返回搜狐,查看更多

阅读 ()
平台声明
该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。