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

DAX度量问题:财年同期对比度量返回零值排查

问题排查与解决方案

你的度量返回零值的核心原因是上下文筛选冲突:
在Equivalent Period 22/23的FILTER中,你限定了Der_Financial_Year = "2022/23",此时调用[YTD Period]时,这个度量会继承当前的筛选上下文——只能看到2022/23财年的数据,自然找不到2023/24的最大月份,MAX([FY_Month_No])返回空白,导致FY_Month_No <= 空白的条件永远不成立,最终求和结果为0。

修正方案

方案1:修复YTD Period度量,清除上下文筛选

修改YTD Period,添加ALL(Query[Der_Financial_Year])强制清除财年的外部筛选,确保无论当前上下文是什么,都能正确获取2023/24财年的最新月份:

YTD Period := CALCULATE(MAX([FY_Month_No]), ALL(Query[Der_Financial_Year]), Query[Der_Financial_Year] = "2023/24")

之后原有的Equivalent Period 22/23度量即可正常工作,或者你可以优化成更高效的写法(直接用CALCULATE的筛选参数替代FILTER):

Equivalent Period 22/23 := CALCULATE(
    SUM([NumberOfContacts]),
    Query[Der_Financial_Year] = "2022/23",
    Query[FY_Month_No] <= [YTD Period]
)

方案2:整合逻辑到单个度量(推荐)

用变量存储2023/24的最新月份,减少度量依赖,逻辑更清晰:

Equivalent Period 22/23 := 
VAR CurrentYTDMonth = CALCULATE(MAX([FY_Month_No]), ALL(Query[Der_Financial_Year]), Query[Der_Financial_Year] = "2023/24")
RETURN
CALCULATE(
    SUM([NumberOfContacts]),
    Query[Der_Financial_Year] = "2022/23",
    Query[FY_Month_No] <= CurrentYTDMonth
)

关键原理

ALL(Query[Der_Financial_Year])的作用是移除当前上下文对Der_Financial_Year列的所有筛选,让CALCULATE能访问到整个表中2023/24财年的数据,从而正确获取最大月份值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 10:05:30