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

DAX公式问题:CALCULATE函数月度值缺失但总计正确

DAX公式问题分析与解决方案

问题根源

你的ActualsReleased公式存在两个核心问题:

  1. 筛选上下文覆盖:FILTER('reporting Time','reporting Time'[DateId]<=SELECTEDVALUE([Version date]))直接对整个时间表进行筛选,会覆盖矩阵中日期维度(年度/月份)的行上下文筛选,导致公式无法按当前行的日期分组(如某一月)计算对应数据。
  2. 上下文交互异常:当选择2023年3月31日作为Version date时,2023年的月份日期自然满足<=2023-03-31,但2023年之前的年度/月份日期也符合条件,却无法显示数据——这是因为原公式的全局筛选替代了行上下文的分组筛选,导致公式计算的是所有符合条件日期的总和,而非当前行分组的数值,视觉上表现为仅2023年行有数据。

修改后的DAX公式

方案1:使用KEEPFILTERS保留行上下文

ActualsReleased = 
CALCULATE(
    SUM('reporting ActualsProducedReleased'[ActualsReleasedWX]),
    KEEPFILTERS('reporting Time'[DateId] <= SELECTEDVALUE([Version date]))
)

方案2:简化筛选逻辑(效果一致)

如果不需要复杂的表筛选,直接使用列筛选更高效:

ActualsReleased = 
CALCULATE(
    SUM('reporting ActualsProducedReleased'[ActualsReleasedWX]),
    'reporting Time'[DateId] <= SELECTEDVALUE([Version date]),
    KEEPFILTERS('reporting Time')
)

额外建议

  • 确保[Version date]来自独立的参数表(而非reporting Time表),避免切片器选择与日期维度的上下文冲突。如果当前[Version date]属于reporting Time表,建议新建一个仅包含日期的参数表用于切片器。
  • 修改后公式会保留矩阵的日期分组上下文,支持正常钻取到月度维度,同时年度总计仍会正确计算所有<=Version date的数值总和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:23:15