Power Query透视丢失行:无法复现Excel数据透视表效果
嘿,我明白你的困扰了——Power Query里的透视操作和Excel数据透视表的逻辑确实有点不一样,直接透视Category列只会把所有分类合并成一行,因为它默认会对值做聚合。咱们一步步来解决这个问题,还原出和Excel数据透视表一样的效果:
解决Power Query透视后仅显示一行的问题
首先得明确问题根源:Excel数据透视表把Course拖到行区域时,是自动按Course分组,然后把对应的Category列展开;但Power Query的透视操作默认会对值列做聚合计算(比如计数、求和),所以直接透视Category会把所有Course的分类合并成一行。
下面是具体的操作步骤:
先给数据添加一个辅助列
在Power Query编辑器中,点击「添加列 > 自定义列」,输入公式:=1(这个列只是用来做透视时的占位值,不会影响最终结果),把它命名为占位值即可。执行透视操作(关键选对聚合方式)
选中分类列,点击菜单栏的「转换 > 透视列」:- 在弹出的窗口里,值列选择刚才创建的
占位值 - 聚合函数一定要选择不要聚合(默认是「计数」,这就是导致合并成一行的原因)
- 点击确定后,你就能看到每个Course对应的分类列都展开了,和Excel数据透视表的效果完全一致
- 在弹出的窗口里,值列选择刚才创建的
(可选)清理优化显示
如果不需要占位值的痕迹,可以用「替换值」功能把单元格里的1换成√,或者把null值替换为空字符串,让表格更整洁。
用你提供的数据源操作后,最终结果会是这样:
| 课程 | NL | CCA | STS | SS |
|---|---|---|---|---|
| English | 1 | |||
| Mathematics | 1 | |||
| Social Studies | 1 | 1 | ||
| History | 1 | 1 | ||
| Physics | 1 | |||
| Geology | 1 | 1 |
内容的提问来源于stack exchange,提问作者Ron Rosenfeld




