Power BI - 每个相关实体的总数

Power BI - totals per related entity

基本上,我想获得一个实体的总数,但要为另一个(但仍然 related/associated!)实体计算。这些实体之间的关系类型是多对多的。 为了不那么抽象,让我们将 Trips 和 Shipments 作为提到的实体,并将 Shipments 的重量作为要计算的总数。 计算每次旅行的总重量非常容易。这是 table 的装运重量:

我们将它们放入一定数量的 trucks/trips 中,并获得以下每次旅行的总重量:

但是,当我尝试显示每个相关装运(第 1 个 table 的列)的行程总重量总和(第 2 个 table 的数字)时,它变得比我预期的要难得多。 它应该看起来像:

而且我无法在 Power BI 中得到这样的 table。

供您参考的数据模型:

似乎 SUMMARIZE 函数几乎适合,但它不允许我使用另一个 table 中的列而不是在函数中初始化:

附加限制:

用户所做的选择(点击单元格等)不应影响计算。

这些数字应该能够用于进一步的计算,并以此为基础。

任何人都可以建议解决方案吗?或者至少要考虑适当的 DAX 引用?我以为我可以自己在 DAX 参考指南中找到快速答案。但是我没能快速找到答案。

版本 1

尝试将以下 DAX 函数作为发货中的计算列 table:

TripWeight =
VAR tripID =
    RELATED ( Trips[TripID] )
RETURN
    CALCULATE (
        SUM ( Shipments[ShipmentTaxWeightKG] );
        FILTER ( Shipments; RELATED ( InkTable[TripID] ) = tripID )
    )

第一个表达式 var tripID 存储当前行的 TripID,CALCULATE 函数获取属于当前行程的所有货件的所有重量的总和。

版本 2

您还可以使用以下 DAX 创建计算的 table,并在新创建的 table 和您的行程 table 之间创建关系,并在此 table:

TripWeight =
GROUPBY (
    Shipments;
    Trips[TripID];
    "Total Weight KG"; SUMX ( CURRENTGROUP (); Shipments[ShipmentTaxWeightKG] )
)

版本 3

只有当 lnkTrip 和 Shipment 之间的关系是一对一的关系时,版本 1 和 2 才有效。如果是多对一关系,可以在Trips里面创建如下计算列table:

ShipmentTaxWeightKG by Trip = SUMX(RELATEDTABLE(Shipments); Shipments[ShipmentTaxWeightKG])

希望这对您有所帮助。