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

如何修正DAX公式以获取对应年份1月的首个非空值?

修正DAX公式以获取对应年份1月的首个非空值

原始数据

日期数值
1/1/202353
1/1/202354
1/1/202352
1/2/202355
1/2/202351
1/2/202352
1/2/202360
1/3/202341
1/3/202344

原公式问题分析

原公式仅筛选了1月的数据,但未限定当前上下文对应的年份,导致无论切换到哪一年,都会返回所有年份中1月的首个非空值(此处为2023年数据)。

修正方案

需要在筛选条件中加入年份限制,关联当前筛选上下文的年份,以下是两种常用实现方式:

方式一:基于当前筛选的年份

直接通过YEAR函数获取当前上下文的年份,与日期列的年份匹配:

CALCULATE(
    FIRSTNONBLANK('Turn Over'[Effectif avant], 'Turn Over'[Effectif avant]),
    MONTH('Turn Over'[Date]) = 1,
    YEAR('Turn Over'[Date]) = YEAR(MAX('Turn Over'[Date]))
)

MAX('Turn Over'[Date])会获取当前筛选上下文中的最大日期,提取其年份后,筛选出该年份1月的数据,再取首个非空值。

方式二:使用日期维度表(推荐)

如果模型中有规范的日期维度表(如DateTable),可直接关联日期表的年份和月份筛选,更高效且不易出错:

CALCULATE(
    FIRSTNONBLANK('Turn Over'[Effectif avant], 'Turn Over'[Effectif avant]),
    DateTable[MonthNumber] = 1,
    DateTable[Year] = SELECTEDVALUE(DateTable[Year])
)

SELECTEDVALUE会获取当前选中的年份,确保只筛选对应年份的1月数据。

验证效果

切换到2024年时,公式会自动筛选2024年1月的数据,返回该月份的首个非空值,不会再调用2023年的旧数据。


内容的提问来源于stack exchange,提问作者Serge Inácio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:40:05