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

Power BI中用DAX为表1添加最近早日期关联价格的计算列

将新表DAX逻辑转为Table1计算列的方法

核心思路

针对Table1的每一行销售记录,筛选Table2中同商品、生效日期≤销售日期的价格记录,再从中取生效日期最晚的那条价格(即最近且早于销售日期的价格)。

计算列DAX代码

匹配价格 = 
VAR CurrentItem = 'Table1'[Item]
VAR CurrentSaleDate = 'Table1'[SaleDate]
VAR ValidPrices = 
    FILTER(
        'Table2',
        'Table2'[Item] = CurrentItem && 'Table2'[StartDate] <= CurrentSaleDate
    )
VAR LatestPrice = 
    MAXX(
        TOPN(1, ValidPrices, 'Table2'[StartDate], DESC),
        'Table2'[Price]
    )
RETURN IF(ISBLANK(LatestPrice), BLANK(), LatestPrice)

代码说明

  • CurrentItem和CurrentSaleDate:利用DAX行上下文特性,自动获取计算列当前行的商品和销售日期
  • ValidPrices:筛选Table2中符合条件的有效价格记录,排除生效日期晚于销售日期的无效数据
  • LatestPrice:通过TOPN(1, ..., DESC)提取有效记录中生效日期最晚的一条,再用MAXX取出对应的价格值
  • 最后处理无匹配记录的情况,返回空值避免错误

原新表DAX的修正提示

原代码中DATEDIFF([StartDate],[Posting Date],DAY)存在笔误,[Posting Date]应为[Sale Date],否则逻辑会出现偏差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:38:26