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

DAX度量值填充空白并保留后续月份期末最大值代码调试

DAX实现期末值向后持续填充空白单元格方案

需求说明

需要实现两类表格填充逻辑:

  • 用相邻列的有效值填充Average Actual FTE列的空白单元格
  • 当某月份出现期末实际值后,后续所有空白月份持续保留该期末值,直到出现新的期末值再替换为新值向后填充

现有数据样例

月份ForecastAverage Actual FTEActuals end period
January0.991.25
February1.50.8
March1.190.77
April1.030.75
May1.11.631.63
June0.991.63
July11.63
August3.51.63
September2.11.63
October1.61.63
November1.91.63
December3.51.64

原有未达预期的DAX代码

Actuals end period = 
VAR max_period =
MAXX ( ALLSELECTED ( 'Actual Hours'), 'Actual Hours'[Date])
VAR sum_ = 'Actual Hours'[Actuals]
VAR y =
CALCULATE (
[Actuals],
FILTER ( ALLSELECTED ( 'Actual Hours' ), 'Actual Hours'[Date] = max_period )
)RETURN
IF ( ISBLANK ( [Actuals] ), y + sum_ )

代码问题说明

原有代码直接取全选范围最大日期对应的实际值,没有做逐行的前置非空值判断,会导致期末值出现前的空白行错误填充、新期末值出现时无法自动更新。

修正后DAX代码

Actuals end period = 
CALCULATE (
    SELECTEDVALUE ( 'Actual Hours'[Average Actual FTE] ),
    FILTER (
        ALLSELECTED ( 'Actual Hours' ),
        'Actual Hours'[Date] <= MAX ( 'Actual Hours'[Date] )
            && NOT ISBLANK ( 'Actual Hours'[Average Actual FTE] )
    ),
    REMOVEFILTERS ( 'Actual Hours'[Date] )
)

实现逻辑

  • 针对每一行的日期,筛选当前日期及之前所有日期范围
  • 过滤掉该范围内Average Actual FTE为空的行
  • 取距离当前行日期最近的非空值返回,自动实现:有实际值的月份返回自身值,空值月份返回上一个最近的有效期末值,出现新的有效期末值时自动替换为新值向后持续填充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 07:31:28