首页 > 解决方案 > 由多列相关表过滤的 DAX 总和

问题描述

我有一个度量,它被添加到一个表格和一张卡片中。该度量用于显示发布的总小时数,其中 Calls.[Sch Engineer]=Hours.Employee AND Calls.ProjID=Hours.ProjID

表中每一行的值都是正确的。但是,该度量的总值在表格和卡片中都不正确,我无法弄清楚原因。

所以措施是:

SchEngHrsOnly =
VAR main =
    MAX ( Calls[Sch Engineer] )
RETURN
    CALCULATE ( SUM ( 'Hours'[Hrs] ), Hours[Employee] = main )

当我将其添加到表格视觉效果时,我得到以下信息 - 表格总计和卡片测量值都不正确 - 它们应该是 163.50:

在此处输入图像描述

如果我在表格视觉对象中选择一行,则卡片视觉对象会显示正确的值,否则会显示不正确的值:

在此处输入图像描述

我的数据模型是:

在此处输入图像描述

我的人际关系是:

在此处输入图像描述

我想要得到的是:

在此处输入图像描述

另外,请在此处查看 PBIX 文件:

PBIX 文件

有人可以帮忙解决这个问题吗?

标签: powerbidaxpowerbi-desktop

解决方案


如果你想要 MAX 值的总和,那么就这样吧:

SumOfMaxes = 
SUMX(
  VALUES( Hours[ProjID] ),
  CALCULATE( MAX( Hours[Hrs]) )
)

它产生:

在此处输入图像描述

您可能还对以下内容感兴趣:

DAX ALLEXCEPT 按多维表的类别求和

类别总和的 DAX 中位数

编辑

在您的解释之后,我看到您想要过滤总和。

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/


推荐阅读