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

如何在Power BI日历表中填充测试间隔日期的对应代码?

Power BI 实现无测试日期沿用最近Code的DAX方案

已通过DAX创建Calendar表,与存储Grower、Orchard、ManagementArea测试结果的Maturity表通过Date/SampleDate建立1对多关系。现有度量值仅在有测试结果的日期显示对应Code,需求是让无测试结果的日期自动沿用最近一次测试的Code,直到新测试完成。此前尝试的MAX函数会导致所有后续日期填充最后一个Code,另写的DAX公式无输出,无法定位问题。

以下是两种可行的解决方法:

方法一:使用LASTNONBLANKVALUE

LastValidCode = 
VAR CurrentDate = MAX(Calendar[Date])
RETURN
LASTNONBLANKVALUE(
    FILTER(ALL(Maturity[SampleDate]), Maturity[SampleDate] <= CurrentDate),
    CALCULATE(MAX(Maturity[Code]))
)
  • 逻辑:先获取当前上下文的日期,筛选出该日期及之前的所有测试日期,取最后一个有有效Code的结果。

方法二:结合CALCULATE与筛选上下文

LastValidCode_Alt = 
VAR CurrentDate = MAX(Calendar[Date])
VAR LastTestDate = 
    CALCULATE(
        MAX(Maturity[SampleDate]),
        Maturity[SampleDate] <= CurrentDate
    )
RETURN
CALCULATE(
    MAX(Maturity[Code]),
    Maturity[SampleDate] = LastTestDate
)
  • 逻辑:先定位当前日期之前的最后一次测试日期,再匹配该日期对应的Code。

注意事项

  • 确保Calendar表的日期连续覆盖需要展示的全时间段
  • 若涉及Grower、Orchard、ManagementArea等多维度筛选,需在视觉对象中添加这些字段,DAX会自动继承筛选上下文
  • 若仍无输出,排查方向:
    • 检查Calendar[Date]与Maturity[SampleDate]的关系是否正确激活,筛选方向是否符合需求
    • 测试日期存在空值的话,可在筛选条件中添加NOT(ISBLANK(Maturity[SampleDate]))过滤空值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:22:52