You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DAX中通过条件移除行以避免重复计算?

解决DAX度量值中排除特定行的问题

问题分析

当前的MyCalculate度量值仅筛选了Currency = "USD"和Scenario = "AOP"的行,但未处理[LC or USD] = "USD"的排除条件,导致这部分数据被计入计算,不符合预期。

修改后的DAX代码

直接在CALCULATE的筛选参数中添加排除[LC or USD] = "USD"的条件即可:

MyBase = SUM('MyData'[Amount])

MyCalculate = 
    CALCULATE(    
        [MyBase],
        KEEPFILTERS('MyData'[Currency] = "USD"),
        KEEPFILTERS('MyData'[Scenario] = "AOP"),
        KEEPFILTERS('MyData'[LC or USD] <> "USD") // 新增:排除LC or USD为USD的行
    )

结果验证

基于你的数据源:

  • 原数据中[LC or USD] = "USD"的3行被排除
  • 剩余符合条件的是3行[LC or USD] = "LC"且Currency = "USD"的记录,总和为3,与预期一致。

补充说明

如果不需要保留外部筛选上下文的影响,也可以省略KEEPFILTERS,直接使用筛选表达式:

MyCalculate = 
    CALCULATE(    
        [MyBase],
        'MyData'[Currency] = "USD",
        'MyData'[Scenario] = "AOP",
        'MyData'[LC or USD] <> "USD"
    )

两者的区别在于KEEPFILTERS会保留原有筛选器与当前筛选的交集,适合需要维持外部筛选上下文的场景。

内容的提问来源于stack exchange,提问作者symkly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 17:04:58