BI可视化:如何基于切片器选中项所属类别绘制销售额最值折线图
问题根因
当前多对多关系的筛选传导逻辑默认会将计算范围限制在切片器选中的单个Item上,不会自动扩展到该Item所属Category下的全部商品,因此最值计算只会统计选中Item自身的销售额,无法拉取同类别其他商品的数据,导致结果不符合预期。
修复方案
1. 新建三个度量值(全部基于Table1创建)
- 选中Item对应销售额(折线2使用,原有逻辑可直接复用):
Selected Item Sales = SUM(Table1[Sales Amount]) - 选中Item所属Category的最高销售额(折线1使用):
Category Max Sales = VAR Current_Category = SELECTEDVALUE(Table2[Category]) RETURN CALCULATE( MAX(Table1[Sales Amount]), REMOVEFILTERS(Table1[Item]), Table2[Category] = Current_Category )
- 选中Item所属Category的最低销售额(折线3使用):
Category Min Sales = VAR Current_Category = SELECTEDVALUE(Table2[Category]) RETURN CALCULATE( MIN(Table1[Sales Amount]), REMOVEFILTERS(Table1[Item]), Table2[Category] = Current_Category )
2. 调整对象配置
- 切片器字段替换为Table2的
Item字段,不要使用Table1的Item字段,避免多对多关系产生筛选上下文歧义 - 折线图X轴放置
Table1[Date]字段,调整到需要的日期粒度 - 折线图Y轴依次放入上述三个新建的度量值,分别对应三条折线
- 移除折线图筛选面板中所有Item层级的强制筛选规则
效果验证
选中切片器中的Apple时,度量值会先读取到当前筛选上下文对应的Category为Fruits,再通过REMOVEFILTERS清除Item=Apple的范围限制,统计Fruits分类下所有商品(Apple、Orange)的销售额,最终返回最大值700、最小值300,符合预期。
特殊场景处理:如果存在单个Item归属多个Category的情况,将度量值中获取当前分类的变量部分替换为
VALUES(Table2[Category])做遍历计算即可。
内容的提问来源于stack exchange,提问作者max
相关产品推荐
相关产品推荐

