如何移除来自其他表的筛选器?求DAX表达式解决度量值计算异常
解决DAX度量值「Conso A LAST Relevé -1」计算问题
问题根源:当前筛选上下文锁定了选中的
EDV[Ordre TimeLine]值,导致无法访问Ordre TimeLine -1对应的行数据,进而无法计算目标度量值。推荐DAX表达式(替换基础度量值后使用):
Conso A LAST Relevé -1 = VAR SelectedOrdre = SELECTEDVALUE(EDV[Ordre TimeLine]) VAR TargetOrdre = SelectedOrdre - 1 RETURN CALCULATE( [Conso A Base Measure], -- 替换为你计算Conso A的基础度量值 REMOVEFILTERS(EDV[Ordre TimeLine]), EDV[Ordre TimeLine] = TargetOrdre )
逻辑说明:
- 通过
VAR定义变量,分别存储选中的时间线序号和目标序号(选中值减1) REMOVEFILTERS(EDV[Ordre TimeLine])清除当前对EDV[Ordre TimeLine]的筛选,让模型能访问所有时间线行数据- 重新筛选到
TargetOrdre对应的行,计算基础度量值得到目标结果
- 通过
进阶适配(保留其他筛选上下文):
如果需要保留其他列的筛选条件(比如维度列筛选),可改用ALLSELECTED()精准清除时间线筛选:
Conso A LAST Relevé -1 = VAR SelectedOrdre = SELECTEDVALUE(EDV[Ordre TimeLine]) VAR TargetOrdre = SelectedOrdre - 1 RETURN CALCULATE( [Conso A Base Measure], ALLSELECTED(EDV[Ordre TimeLine]), EDV[Ordre TimeLine] = TargetOrdre )
内容的提问来源于stack exchange,提问作者steven
相关产品推荐
相关产品推荐

