如何创建含全部分组汇总的calculated column并关联measures可视化
问题根因
你写的DAX表达式存在两个核心逻辑错误,所以达不到预期:
- SWITCH函数按顺序匹配条件,只要
g1/g2/g3任意一个条件命中,就会直接返回对应的分组名,后续g1 || g2 || g3的条件永远不会被触发,根本不可能返回"All Groups"。 - 计算列基于行上下文计算,每一行数据只会生成一个值,无法让同一行同时归属于单个分组和All Groups分组,也就不可能通过普通行级计算列实现All Groups对应三个分组汇总的效果。
推荐解决方案
你需要的其实是一个支持汇总All Groups的维度,不需要修改原表结构,新建独立计算表+适配度量值是最优方案:
- 新建计算表作为分组维度,不需要和原表建立关系:
Group_Dimension = DATATABLE( "分组名", STRING, {{"Group1"}, {"Group2"}, {"Group3"}, {"All Groups"}} )
- 改写你现有用于可视化的度量值,以原有度量值为
[指标值]为例:
分组适配指标 = VAR 选中分组 = SELECTEDVALUE(Group_Dimension[分组名]) RETURN SWITCH( TRUE(), 选中分组 = "Group1", CALCULATE([指标值], '你的表名'[account no] = 3), 选中分组 = "Group2", CALCULATE([指标值], '你的表名'[account no] IN {4,5,6} && '你的表名'[account group] <> 20), 选中分组 = "Group3", CALCULATE([指标值], '你的表名'[account group] = 20), 选中分组 = "All Groups", CALCULATE([指标值], '你的表名'[account no] =3 || ('你的表名'[account no] IN {4,5,6} && '你的表名'[account group] <>20) || '你的表名'[account group] =20), [指标值] )
注意:把代码里的
你的表名替换为你实际的表名,[指标值]替换为你原有要展示的度量值。
后续可视化直接把Group_Dimension[分组名]作为轴/图例,用[分组适配指标]作为值即可,完全符合你的需求。
内容的提问来源于stack exchange,提问作者hana
相关产品推荐
相关产品推荐

