Power BI:如何实现Slicer控制Ribbon Chart的数据更新
解决方案:用度量值替代计算表实现动态响应切片器
1. 创建独立的Value维度表
先构建一个包含所有X轴可能值(1、2、3)的维度表,用于Ribbon Chart的X轴:
Value Dimension = DISTINCT( UNION( SELECTCOLUMNS(main, "Value", main[Food]), SELECTCOLUMNS(main, "Value", main[Hygiene]), SELECTCOLUMNS(main, "Value", main[NFI]) ) )
注意:这个表不需要和
main表建立任何关系,我们会通过度量值在筛选上下文里关联数据。
2. 创建三个计数度量值
分别为Food、Hygiene、NFI创建动态计数的度量值,这些度量值会响应切片器的筛选:
Food Count
Food Count = CALCULATE(COUNTROWS(main), main[Food] = SELECTEDVALUE('Value Dimension'[Value]))
Hygiene Count
Hygiene Count = CALCULATE(COUNTROWS(main), main[Hygiene] = SELECTEDVALUE('Value Dimension'[Value]))
NFI Count
NFI Count = CALCULATE(COUNTROWS(main), main[NFI] = SELECTEDVALUE('Value Dimension'[Value]))
3. 配置Ribbon Chart
- X轴:选择
Value Dimension表中的Value字段 - Y轴:将上述三个度量值(Food Count、Hygiene Count、NFI Count)全部拖入
- 图例:Power BI会自动将三个度量值识别为图例项(对应你需要的Food、Hygiene、NFI)
4. 添加Type切片器
将main表中的Type字段拖入报表,创建切片器即可。此时选择City/Village时,Ribbon Chart中的计数会实时更新,符合你的需求。
为什么原来的计算表不生效?
计算表(Calculated Table)是在数据刷新阶段生成的静态表,不会响应报表层面的筛选器(比如切片器)。而度量值(Measure)是在报表交互时,根据当前的筛选上下文动态计算结果,因此能随切片器的选择实时更新数据。
内容的提问来源于stack exchange,提问作者Mitya Kobrinsky
相关产品推荐
相关产品推荐

