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

Power BI新手技术求助:实现两个基于最新日期的DAX度量值相乘并修正总计错误

解决Power BI中基于最新采购日期的成本总计与乘积问题

嘿,作为经常帮Power BI新手踩坑的过来人,你的这个问题太典型啦!我来给你拆解一下问题根源,再一步步搞定它。

问题出在哪?

你写的两个度量Latest Unit/Cost和Latest UnitsUsed,在矩阵的行级(比如单独看某一个物料)时,MAX(InventoryJ[Date Ordered])是该物料的最新采购日期,所以计算结果是对的。但到了总计行,这个MAX会变成整个数据集里的最新日期,系统会用这个全局最新日期去拉所有物料的数据——这就导致总计不是各行结果的合理聚合,而是错误地用统一日期计算,自然就不对了。

修正单个度量,让总计行正常工作

我们需要让每个物料(或你矩阵里的其他分组维度)单独计算自己的最新日期,而不是用全局日期。修改后的度量如下:

修正后的Latest Unit/Cost

Latest Unit/Cost = 
SUMX(
    VALUES(InventoryJ[Material]), // 按物料维度分组计算
    VAR MaxDatePerMaterial = CALCULATE(MAX(InventoryJ[Date Ordered]), ALLEXCEPT(InventoryJ, InventoryJ[Material]))
    RETURN CALCULATE(SUM(InventoryJ[Cost/Unit]), InventoryJ[Date Ordered] = MaxDatePerMaterial)
)

修正后的Latest UnitsUsed

Latest UnitsUsed = 
SUMX(
    VALUES(InventoryJ[Material]),
    VAR MaxDatePerMaterial = CALCULATE(MAX(InventoryJ[Date Ordered]), ALLEXCEPT(InventoryJ, InventoryJ[Material]))
    RETURN CALCULATE(SUM(InventoryJ[Unit Used]), InventoryJ[Date Ordered] = MaxDatePerMaterial)
)

这里的关键是SUMX+ALLEXCEPT:

  • VALUES(InventoryJ[Material])确保我们逐个处理每个物料
  • ALLEXCEPT会保留当前物料的上下文,清除其他筛选,这样计算的MaxDatePerMaterial就是该物料自己的最新采购日期

如果你的矩阵还有其他分组维度(比如部门、类别),只需要把这些维度加到ALLEXCEPT的参数里就行,比如ALLEXCEPT(InventoryJ, InventoryJ[Material], InventoryJ[Department])。

计算最新数量×最新单位成本的正确总计

现在两个单个度量的总计已经正常了,你可以直接相乘得到乘积,但更严谨的方式是用SUMX逐行计算乘积再求和,这样总计就是各行乘积的总和:

Latest Total Cost = 
SUMX(
    VALUES(InventoryJ[Material]),
    VAR MaxDatePerMaterial = CALCULATE(MAX(InventoryJ[Date Ordered]), ALLEXCEPT(InventoryJ, InventoryJ[Material]))
    VAR UnitCost = CALCULATE(SUM(InventoryJ[Cost/Unit]), InventoryJ[Date Ordered] = MaxDatePerMaterial)
    VAR UnitsUsed = CALCULATE(SUM(InventoryJ[Unit Used]), InventoryJ[Date Ordered] = MaxDatePerMaterial)
    RETURN UnitCost * UnitsUsed
)

这样不管是行级还是总计行,结果都会完全符合你的预期——每个物料用自己最后一次采购的成本和使用数量相乘,总计就是所有物料的这个乘积之和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 10:39:07