Power BI带层级的矩阵视觉中正确显示关联表Target值咨询
问题解答
问题根源
直接把Targets[Target]字段拖入视觉对象时出现全局平均值,核心原因是两表的交叉筛选方向默认是单向的:你建立的是Targets表(1端) -> Main表(多端)的1:n关系,默认只有1端的筛选能作用到多端,反过来多端的筛选(也就是矩阵里Main表层级的行上下文)没法传递到1端的Targets表,所以Targets表不会被当前分组筛选,默认聚合就会返回全表的统计值。
解决方案
直接编写显式DAX度量值即可,通过CALCULATE触发上下文转换,将当前分组的筛选条件传递到Targets表,推荐两种写法:
写法1:适配层级汇总(推荐)
如果需要折叠到Group层级时显示该组下所有Subgroup的目标总和,用这个写法:
分组目标值 = CALCULATE(SUM(Targets[Target]))
因为每个Group+Subgroup组合在Targets表中只有唯一的Target值,Subgroup层级的求和结果就是对应单个目标值,Group层级的求和结果就是该组所有子项目标的总和,完全适配折叠/展开的交互需求。
写法2:仅返回单分组目标值
如果希望只有选中单个Group+Subgroup组合时才返回目标值,多组合上下文下返回空值,用这个写法:
分组目标值 = VAR 当前筛选的组合键 = VALUES(Main[Composite Key]) RETURN CALCULATE( SELECTEDVALUE(Targets[Target], BLANK()), Targets[Composite Key] IN 当前筛选的组合键 )
可选优化建议
你不需要额外维护Composite Key拼接字段,直接在两表的关系设置中选择Group和Subgroup两个字段作为复合关联键即可,模型更简洁,也不会影响关联效果。
内容的提问来源于stack exchange,提问作者thothal
相关产品推荐
相关产品推荐

