基于Check Month Wise度量筛选23 Qty空值,小计层级失效求助
解决DAX度量在小计层级无法正确过滤的问题
问题核心
你编写的23 Qty Blank Values Only度量仅在项目代码明细层级生效,小计层级失效,原因是原度量基于当前上下文直接判断Check Month Wise的状态,但小计层级是多个项目的聚合结果,此时Check Month Wise的上下文不是逐行判断的状态,导致逻辑出错。
解决方案
使用迭代函数或上下文筛选的方式,确保在明细和小计层级都逐行评估每个项目的Check Month Wise状态,仅计算符合“23 Qty为空”(即Check Month Wise = "D")的项目。
方法1:使用SUMX迭代计算
23 Qty Blank Values Only = SUMX( VALUES('你的表名'[项目代码]), // 替换为实际的项目代码列所在表名 IF([Check Month Wise] = "D", [23 Qty], 0) )
- 原理:
SUMX会遍历每个唯一的项目代码,逐行判断该项目是否满足“23 Qty为空”的条件,仅将符合条件的项目数值计入聚合结果,确保小计层级的结果是正确过滤后的总和。
方法2:使用CALCULATE+FILTER筛选上下文
23 Qty Blank Values Only = CALCULATE( SUM([23 Qty]), FILTER( VALUES('你的表名'[项目代码]), [Check Month Wise] = "D" ) )
- 原理:通过
FILTER筛选出所有符合“23 Qty为空”的项目代码,再用CALCULATE在这个筛选后的上下文里聚合[23 Qty],同样能保证明细和小计层级的结果一致。
说明
两种方法都能解决原度量在小计层级失效的问题,你可以根据自己的数据模型选择合适的写法,记得把代码中的'你的表名'替换成实际包含项目代码列的表名称。
内容的提问来源于stack exchange,提问作者Pavan
相关产品推荐
相关产品推荐

