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

求助:编写DAX度量值从非快照数据生成含多维度的每日快照数据

DAX度量值:带Product/Customer维度的日历日期最新值聚合

你的原度量值问题在于没有考虑Product和Customer的筛选上下文,直接取全局的最大事实日期,导致加入维度后无法正确计算每个组合的最新值。以下是适配多维度的解决方案:

LatestValue_WithDimensions = 
SUMX(
    // 遍历当前筛选范围内的所有Product-Customer唯一组合
    SUMMARIZE(tblData, tblData[Product], tblData[Customer]),
    VAR CurrentProduct = tblData[Product]
    VAR CurrentCustomer = tblData[Customer]
    VAR MaxCalendarDate = MAX(tblCalendar[Date])
    // 定位当前组合在日历日期之前的最新事实记录日期
    VAR LatestFactDate = CALCULATE(
        MAX(tblData[Date]),
        tblData[Product] = CurrentProduct,
        tblData[Customer] = CurrentCustomer,
        tblData[Date] <= MaxCalendarDate
    )
    // 获取该最新日期下当前组合的Value总和(支持同一日期多条记录)
    VAR LatestValue = CALCULATE(
        SUM(tblData[Value]),
        tblData[Product] = CurrentProduct,
        tblData[Customer] = CurrentCustomer,
        tblData[Date] = LatestFactDate
    )
    RETURN LatestValue
)

关键逻辑说明:

  • SUMX作为迭代函数,会逐个处理当前筛选上下文里的每一组Product-Customer,确保每个维度组合独立计算最新值后再汇总。
  • 对每个组合,先获取当前日历表的日期(即视觉对象中当前行的日期)。
  • 通过CALCULATE锁定当前Product-Customer,找到不晚于日历日期的最新事实记录日期。
  • 最后提取该日期下对应组合的Value总和,若同一日期同一组合只有单条记录,SUM可替换为MAX或SELECTEDVALUE,结果一致。

验证场景:

例如筛选日历日期为2024/6/1时,Prod 1-Cust A的最新事实日期是2024/5/11,对应值为3;若同时存在Prod 2-Cust B的最新值为5,度量值会返回3+5=8的聚合结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:37:17