基本上,我想得到一个实体的总数,但要为另一个(但仍具有关联/关联!)实体进行计算。这些实体之间的关系类型是多对多。 只是为了简化起见,让我们以“旅行和货运”作为上述实体,然后将“货运”的权重作为要计算的总和。 仅计算每次行程的总重量是一件容易的事。这是货运重量表:
我们将它们放入一定数量的卡车/行程中,每次行程的总重量如下:
但是,当我尝试显示每个相关装运(第1个表中的列)的行程总重量(第2个表中的数字)的总和时,它变得比我预期的要难得多。 它应该看起来像:
我在Power BI中找不到这样的表。
看起来像SUMMARIZE函数几乎是合适的,但是它不允许我使用另一个表中未在函数中初始化的表中的列:
其他限制:
用户所做的选择(单击单元格等)不会影响计算。
这些数字应能够作为基础用于进一步的计算。
有人可以提出解决方案吗?还是至少要考虑适当的DAX参考?我以为自己可以在DAX参考指南中找到快速解答。但是我找不到快速答案。
答案 0 :(得分:1)
尝试将以下DAX函数用作您的货运表中的计算列:
TripWeight =
VAR tripID =
RELATED ( Trips[TripID] )
RETURN
CALCULATE (
SUM ( Shipments[ShipmentTaxWeightKG] );
FILTER ( Shipments; RELATED ( InkTable[TripID] ) = tripID )
)
第一个表达式var tripID
存储当前行的TripID,并且CALCULATE函数获取属于当前行程的所有货件的所有重量的总和。
您还可以使用以下DAX创建计算表,并在新创建的表和Trips表之间创建关系,并在此表中简单显示权重:
TripWeight =
GROUPBY (
Shipments;
Trips[TripID];
"Total Weight KG"; SUMX ( CURRENTGROUP (); Shipments[ShipmentTaxWeightKG] )
)
仅当lnkTrip和Shipment之间的关系为一对一关系时,版本1和版本2才有效。如果是多对一关系,则可以在Trips表中创建以下计算列:
ShipmentTaxWeightKG by Trip = SUMX(RELATEDTABLE(Shipments); Shipments[ShipmentTaxWeightKG])
希望这会有所帮助。