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

如何计算Scenario ID计数的累计值?DAX代码异常排查

DAX累计和计算错误修复方案

我有包含日期及每日Scenario ID计数的数据,需要计算累计和。使用以下DAX代码后,未得到逐行累加的结果,反而出现Scenario ID计数总和乘以计数的错误:

Cummulative Planned =
CALCULATE (
SUM('Table7'[Count of Scenario ID]),
FILTER (
ALL( 'Table7'[Projected LandingStart Date] ),
'Table7'[Projected LandingStart Date] <= MAX ( 'Table7'[Projected LandingStart Date] )
)
)

问题原因

原代码仅清除了日期列的筛选上下文,但表中若存在其他列,这些列的筛选会保留,导致CALCULATE重复计算总和,最终出现总和乘以当前行计数的错误结果。此外,行上下文与筛选上下文的冲突也会干扰累计逻辑。

修复方案

方案1:使用单独日期表(推荐)

如果模型中有独立的日期表,用日期表的日期列来构建筛选逻辑,能彻底避免原表其他列的干扰:

Cummulative Planned =
CALCULATE (
    SUM('Table7'[Count of Scenario ID]),
    FILTER (
        ALL( 'DateTable'[Date] ),
        'DateTable'[Date] <= MAX ( 'DateTable'[Date] )
    )
)

方案2:清除整个表的筛选上下文

若没有单独日期表,修改代码清除整个表的筛选,确保只按日期维度累计:

Cummulative Planned =
CALCULATE (
    SUM('Table7'[Count of Scenario ID]),
    FILTER (
        ALL( 'Table7' ),
        'Table7'[Projected LandingStart Date] <= MAX ( 'Table7'[Projected LandingStart Date] )
    )
)

方案3:用变量明确当前日期

通过变量获取当前行的日期,简化筛选逻辑,避免上下文冲突:

Cummulative Planned =
VAR CurrentDate = MAX('Table7'[Projected LandingStart Date])
RETURN
CALCULATE (
    SUM('Table7'[Count of Scenario ID]),
    ALL('Table7'[Projected LandingStart Date]),
    'Table7'[Projected LandingStart Date] <= CurrentDate
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 06:13:24