Power BI (DAX) 如何编写计算差值总汇总并保留筛选的度量值
DAX 全局差值总和度量正确写法
现有代码问题
- 仅迭代
'dim table'[category]的唯一值计算差值,相同分类下的多条数据会被合并计算,导致求和漏项 ALLSELECTED仅清除了分类字段的筛选上下文,若表格还绑定了其他维度字段,会限制求和范围,无法统计所有可见行的差值
正确度量写法
通用写法(适配所有行维度组合)
直接迭代当前视觉对象的所有可见行计算差值后求和,会自动保留切片器、筛选器的全局筛选条件,仅清除表格单行的维度筛选:
sum of diff = SUMX(ALLSELECTED(), [Diff])
显式指定维度写法(性能更优)
如果要明确控制迭代的维度范围,可以手动指定表格用到的所有行维度:
sum of diff = CALCULATE( SUMX( SUMMARIZE( ALLSELECTED('table1'), 'dim table'[category], -- 补充表格中用于区分同一分类下不同行的其他维度,比如日期、子分类等 '其他维度表'[其他维度字段] ), [Diff] ), ALLSELECTED() )
两种写法都可以实现你需要的效果:按示例数据会正确迭代4行数据求和0%+3%+0%+1%,所有行返回4%的总差值,符合预期。
内容的提问来源于stack exchange,提问作者Septiana Fajrin
相关产品推荐
相关产品推荐

