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

PowerBI DAX度量需求:按类别取最新库存值并汇总

PowerBI DAX度量:按类别提取最新库存并正确汇总

需求说明

需要创建DAX度量Latest Inventory,实现以下目标:

  • 按类别提取**所选时间切片(或更早)**的最新库存值
  • 跨类别汇总时,需包含所有类别各自的最新库存(不能仅保留全局最新日期有记录的类别)
  • 支持年度、月度等时间层级的正确展示

示例数据

InventoryTable

类别日期库存
A31.10.202315
E31.10.202361
A31.12.20231
B31.12.202313
A31.01.202439
B31.01.202472
B29.02.202438
A31.03.202446

现有代码问题

你提供的DAX代码仅能正确计算单类别值,但汇总时仅保留全局最新日期有记录的类别,遗漏了那些最新记录早于全局日期的类别(比如示例中的E类别,在31.10.2023后无更新,汇总时会被忽略)。

解决方案

正确DAX度量代码

Latest Inventory = 
SUMX(
    VALUES('InventoryTable'[类别]),
    VAR MaxDateForCategory = CALCULATE(
        MAX('InventoryTable'[日期]),
        'InventoryTable'[日期] <= MAX(DateTable[Date])
    )
    RETURN
    CALCULATE(
        SUM('InventoryTable'[库存]),
        'InventoryTable'[日期] = MaxDateForCategory
    )
)

代码解释

  1. SUMX遍历类别:通过VALUES('InventoryTable'[类别])获取所有唯一类别,SUMX会对每个类别单独计算后汇总,确保每个类别的最新值都被纳入统计
  2. 计算类别专属最新日期:对每个类别,用CALCULATE(MAX('InventoryTable'[日期]), ...)筛选出所选时间范围内该类别的最新记录日期
  3. 提取对应库存值:根据每个类别的专属最新日期,取出对应的库存值,最终SUMX完成跨类别汇总

DateTable配置要点

  • 确保InventoryTable[日期]与DateTable[Date]建立多对一关系(InventoryTable为多端)
  • DateTable需包含完整的日期序列,并且设置好年度、月度等层级字段(可通过PowerBI自动生成日期表实现),这样在时间切片器或钻取操作时,能正确匹配时间范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 07:40:32