由相关表的多列过滤的DAX总和
DAX sum filtered by multiple columns of related tables
我有一个措施,正在添加到 table 和一张卡片中。该度量用于显示在 Calls.[Sch Engineer]=Hours.Employee AND Calls.ProjID=Hours.ProjID
中发布的总小时数
table 每一行的值都是正确的。但是 table 和卡中此度量的总值不正确,我不知道为什么。
所以度量是:
SchEngHrsOnly =
VAR main =
MAX ( Calls[Sch Engineer] )
RETURN
CALCULATE ( SUM ( 'Hours'[Hrs] ), Hours[Employee] = main )
当我将其添加到 table 视觉对象时,我得到以下结果 - Table 总计和度量卡值都不正确 - 它们应该是 163.50:
如果我在 table 视觉对象中 select 一行,则 Card 视觉对象显示正确的值,否则显示不正确的值:
我的数据模型是:
我的关系是:
我想要得到的是:
此外,请在此处查看 PBIX 文件:
有人可以帮忙解决这个问题吗?
您可以将其创建为计算列,然后将其相加得到值:
Hours Calc = CALCULATE(MAX(Hours[Hrs]),FILTER(Hours,Hours[ProjID]=Calls[ProjID]))
以上计算将为每个项目 ID 添加一列,其中包含最大小时数。然后你可以在最后的 table 中总结它并且应该得到想要的结果。希望这有帮助。
如果你想要 MAX 值的 SUM,那么走这条路:
SumOfMaxes =
SUMX(
VALUES( Hours[ProjID] ),
CALCULATE( MAX( Hours[Hrs]) )
)
它产生:
您可能还对以下内容感兴趣:
DAX ALLEXCEPT to sum by category of multiple dimension tables
编辑
经过你的解释,我明白你想要过滤总和。
FilteredSum =
CALCULATE (
SUM ( Hours[Hrs] ),
FILTER (
Hours,
Hours[Employee] = RELATED ( Calls[Sch Engineer] )
&& Hours[ProjID] = RELATED ( Calls[Proj ID] )
)
)
https://www.sqlbi.com/blog/marco/2010/02/09/how-to-relate-tables-in-dax-without-using-relationships/
我有一个措施,正在添加到 table 和一张卡片中。该度量用于显示在 Calls.[Sch Engineer]=Hours.Employee AND Calls.ProjID=Hours.ProjID
中发布的总小时数table 每一行的值都是正确的。但是 table 和卡中此度量的总值不正确,我不知道为什么。
所以度量是:
SchEngHrsOnly =
VAR main =
MAX ( Calls[Sch Engineer] )
RETURN
CALCULATE ( SUM ( 'Hours'[Hrs] ), Hours[Employee] = main )
当我将其添加到 table 视觉对象时,我得到以下结果 - Table 总计和度量卡值都不正确 - 它们应该是 163.50:
如果我在 table 视觉对象中 select 一行,则 Card 视觉对象显示正确的值,否则显示不正确的值:
我的数据模型是:
我的关系是:
我想要得到的是:
此外,请在此处查看 PBIX 文件:
有人可以帮忙解决这个问题吗?
您可以将其创建为计算列,然后将其相加得到值:
Hours Calc = CALCULATE(MAX(Hours[Hrs]),FILTER(Hours,Hours[ProjID]=Calls[ProjID]))
以上计算将为每个项目 ID 添加一列,其中包含最大小时数。然后你可以在最后的 table 中总结它并且应该得到想要的结果。希望这有帮助。
如果你想要 MAX 值的 SUM,那么走这条路:
SumOfMaxes =
SUMX(
VALUES( Hours[ProjID] ),
CALCULATE( MAX( Hours[Hrs]) )
)
它产生:
您可能还对以下内容感兴趣:
DAX ALLEXCEPT to sum by category of multiple dimension tables
编辑
经过你的解释,我明白你想要过滤总和。
FilteredSum =
CALCULATE (
SUM ( Hours[Hrs] ),
FILTER (
Hours,
Hours[Employee] = RELATED ( Calls[Sch Engineer] )
&& Hours[ProjID] = RELATED ( Calls[Proj ID] )
)
)
https://www.sqlbi.com/blog/marco/2010/02/09/how-to-relate-tables-in-dax-without-using-relationships/