Power BI矩阵度量列重复显示求助:切片器选维度后仅显示一次度量
解决Power BI矩阵度量重复显示的问题
嘿,作为Power BI新手遇到这种布局混乱的问题太正常了,我来帮你一步步捋清楚怎么搞定它!
问题根源分析
你现在的核心问题大概率是逆透视时不小心把Sales TY/Sales LY也当成维度列一起逆透视了,或者是矩阵的字段布局没放对位置,导致度量和每个维度值绑定重复显示。别担心,调整下数据模型和视觉对象布局就能解决。
方案一:修正数据模型(推荐,更简洁)
这是最根本的解决办法,先把数据结构理对:
重新逆透视数据
打开Power Query编辑器,找到你的数据表:- 选中
Index、Sales TY、Sales LY这三列(按住Ctrl多选) - 右键点击选中的列,选择「逆透视其他列」——这样只有真正的维度列(比如Region、Product)会被转成
Column(维度名称)和Value(维度值),销售度量列会保留原样 - 把自动生成的
Attribute列重命名为Column(和你之前的操作一致) - 点击「关闭并应用」,现在你的数据表每行对应一个Index的某个维度值,同时带着对应的Sales TY和LY数值。
- 选中
设置视觉对象
- 切片器:把
Column字段拖进去,这样就能选择要查看的维度(比如Region、Product) - 矩阵:
- 把
Value字段拖到行区域——这会显示你选中维度的所有具体值(比如North、South) - 把
Sales TY和Sales LY拖到值区域(默认用SUM聚合,如果每个维度值对应单个销售数值,把聚合方式改成MAX就行,因为同一个维度值下的Sales TY是相同的)
- 把
- 这时候切片器和矩阵会自动联动,选任意维度,矩阵都会显示该维度的所有值,每行对应一个值,列是两个销售度量,完全不会重复!
- 切片器:把
方案二:不重新逆透视的备选方案
如果不想改动已有的逆透视步骤,可以用DAX来补锅:
创建销售度量
新建两个DAX度量,用来从逆透视的数据里提取销售数值:Sales TY = CALCULATE(MAX('你的表名'[Value]), '你的表名'[Column] = "Sales TY") Sales LY = CALCULATE(MAX('你的表名'[Value]), '你的表名'[Column] = "Sales LY")标记维度行
新建一个计算列,用来区分维度行和销售度量行:Is Dimension = NOT('你的表名'[Column] IN {"Sales TY", "Sales LY"})设置视觉对象
- 切片器:拖入
Column字段,然后在切片器的「视觉级筛选器」里设置Is Dimension = TRUE(),这样切片器只显示维度选项 - 矩阵:
- 把
Value字段拖到行区域,同时在矩阵的「视觉级筛选器」里设置Is Dimension = TRUE() - 把刚创建的
Sales TY和Sales LY度量拖到值区域
- 把
- 切片器:拖入
这样设置后,也能实现你要的效果:每个维度值只显示一行,后面跟着两个销售度量,不会重复。
内容的提问来源于stack exchange,提问作者Joe Claxton




