Power BI多条件求和:按订单等组合取最高发货单且快照为1的值求和
Power BI 分组求和解决方案:取最大Shipment No且Last Snapshot为1的行求和
可以通过创建DAX度量值精准实现需求,以下是两种可行的写法:
方法一:简洁版(适用于每组最大Shipment No对应唯一Last Snapshot行)
创建新度量值,代码如下:
Sum_Target_Value = CALCULATE( SUM('你的表名'[value]), FILTER( '你的表名', '你的表名'[is last snapshot] = 1 && '你的表名'[shipment no] = CALCULATE( MAX('你的表名'[shipment no]), ALLEXCEPT( '你的表名', '你的表名'[order no], '你的表名'[line no], '你的表名'[rel no] ) ) ) )
方法二:通用版(兼容复杂分组场景)
如果存在同一组最大Shipment No对应多行的情况,用这个写法更稳妥:
Sum_Target_Value = VAR GroupWithMaxShipment = ADDCOLUMNS( SUMMARIZE('你的表名', '你的表名'[order no], '你的表名'[line no], '你的表名'[rel no]), "@MaxShipment", CALCULATE(MAX('你的表名'[shipment no])) ) RETURN CALCULATE( SUM('你的表名'[value]), FILTER( '你的表名', '你的表名'[is last snapshot] = 1 && EXISTS( GroupWithMaxShipment, '你的表名'[order no] = [order no] && '你的表名'[line no] = [line no] && '你的表名'[rel no] = [rel no] && '你的表名'[shipment no] = [@MaxShipment] ) ) )
使用说明
- 将代码中的
'你的表名'替换为你实际使用的表名称 ALLEXCEPT函数会保留「order no」「line no」「rel no」的分组上下文,计算每组的最大「shipment no」- 外层筛选逻辑会精准定位到同时满足「is last snapshot=1」和「shipment no为组内最大值」的行,最终对这些行的value求和
内容的提问来源于stack exchange,提问作者ChubbyKidz
相关产品推荐
相关产品推荐

