powerbi - Power BI - 每个相关实体的总计
问题描述
基本上,我想获得一个实体总数,但为另一个(但仍然相关/关联!)实体计算。这些实体之间的关系类型是多对多的。只是为了不那么抽象,让我们将旅行和发货作为提到的实体,将发货的重量作为要计算的总数。计算每次旅行的总重量非常容易。以下是货件重量表:
我们将它们放入一定数量的卡车/旅行中,并获得以下每次旅行的总重量:
但是,当我尝试显示每个相关货件(第 1 表中的列)的行程总重量总和(第 2 表中的数字)时,它变得比我预期的要困难得多。它应该看起来像:
而且我无法在 Power BI 中获得这样的表。
似乎 SUMMARIZE 函数几乎是合适的,但它不允许我使用另一个表中的列而不是在函数中初始化:
附加限制:
用户所做的选择(单击单元格等)无论如何都不应影响计算。
这些数字应该能够用于进一步的计算,并以此为基础。
任何人都可以提出解决方案吗?或者至少要考虑适当的 DAX 参考?我想我可以自己在 DAX 参考指南中找到快速答案。但是我没有找到一个快速的答案。
解决方案
版本 1
尝试将以下 DAX 函数作为发货表中的计算列:
TripWeight =
VAR tripID =
RELATED ( Trips[TripID] )
RETURN
CALCULATE (
SUM ( Shipments[ShipmentTaxWeightKG] );
FILTER ( Shipments; RELATED ( InkTable[TripID] ) = tripID )
)
第一个表达式var tripID
是存储当前行的 TripID,CALCULATE 函数获取属于当前行程的所有货物的所有重量的总和。
版本 2
您还可以使用以下 DAX 创建计算表,并在新创建的表和您的 Trips 表之间创建关系,并在此表中简单地显示权重:
TripWeight =
GROUPBY (
Shipments;
Trips[TripID];
"Total Weight KG"; SUMX ( CURRENTGROUP (); Shipments[ShipmentTaxWeightKG] )
)
版本 3
只有当 lnkTrip 和 Shipment 之间的关系是一对一关系时,版本 1 和 2 才有效。如果是多对一关系,可以在 Trips 表中创建以下计算列:
ShipmentTaxWeightKG by Trip = SUMX(RELATEDTABLE(Shipments); Shipments[ShipmentTaxWeightKG])
希望这可以帮助。
推荐阅读
- python - 在不同方面绘制绘图子集时,seaborn displot 的 xticks 旋转不一致
- apache - 如何允许我的网站的 http 和 https 版本,但将其默认为 https?
- reactjs - 当 React 功能组件重新渲染时,它会重新分配分配的值和功能吗?
- apache-spark - 将数据帧写入 Ceph 存储时出错
- javascript - 使用 Turf JS 创建统一分箱
- html - 更改子元素背景 CSS
- sql - Postgres GENERATED AS IDENTITY 列可空性
- admob - Play 商店付款设置是否会覆盖 AdMob 付款方式?
- c++ - 连接多个范围而不复制
- c# - 外键被定义为数据注释但仍返回 null