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

Power BI需求:获取可用上一日期数据的度量值

Power BI 实现商品价格的最近可用日期填充

核心逻辑

针对Date表中的每个日期,先找到Data表中小于等于当前日期的最大可用日期,再提取该日期对应的商品价格;若当前日期本身在Data表中存在,则最大可用日期就是当前日期,直接取当日价格。

具体DAX度量值写法

以下以Item A为例,两种写法都可以实现需求,任选其一即可:

方法1:LOOKUPVALUE + 最近日期筛选

Item A 价格 = 
VAR CurrentDate = SELECTEDVALUE('Date'[Date])
-- 找到当前日期之前最后一个有价格的日期
VAR LastValidDate = CALCULATE(MAX('Data'[Date]), 'Data'[Date] <= CurrentDate)
RETURN
    IF(
        NOT ISBLANK(LastValidDate),
        -- 根据找到的日期匹配对应商品价格
        LOOKUPVALUE('Data'[Item A], 'Data'[Date], LastValidDate),
        BLANK() -- 无可用日期时返回空白
    )

方法2:CALCULATE直接筛选取值

Item A 价格 = 
VAR CurrentDate = SELECTEDVALUE('Date'[Date])
RETURN
    -- 筛选Data表中日期<=当前日期的行,取对应商品价格(因每个日期唯一,MAX等价于取值)
    CALCULATE(
        MAX('Data'[Item A]),
        'Data'[Date] <= CurrentDate,
        REMOVEFILTERS('Date') -- 清除Date表的上下文筛选,确保Data表筛选逻辑不受干扰
    )

批量处理50个商品的建议

因为每个商品的度量值逻辑完全一致,仅商品列名不同,可通过以下方式批量创建:

  • 复制上述任意一个度量值代码,批量替换代码中的Item A为其他商品列名(如Item B、Item C等);
  • 使用DAX Studio的批量生成功能,通过脚本自动生成所有商品的度量值。

注意事项

  • 确保Data表的Date列是唯一值,避免出现同一日期对应多个价格的情况;
  • 若Date表与Data表已建立基于Date列的关系,需注意上下文筛选的影响,必要时可使用ALL('Data'[Date])替代REMOVEFILTERS('Date')调整上下文。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 20:20:04