Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 由相关表的多列筛选的DAX总和_Powerbi_Dax_Powerbi Desktop - Fatal编程技术网

Powerbi 由相关表的多列筛选的DAX总和

Powerbi 由相关表的多列筛选的DAX总和,powerbi,dax,powerbi-desktop,Powerbi,Dax,Powerbi Desktop,我有一个度量,它被添加到一张桌子和一张卡片上。该度量值用于显示在呼叫处发布的总小时数。[Sch Engineer]=hours.Employee和Calls.ProjID=hours.ProjID 表中每行的值都是正确的。然而,表中和卡片中该度量的总值都不正确,我无法找出原因 因此,措施是: SchEngHrsOnly = VAR main = MAX ( Calls[Sch Engineer] ) RETURN CALCULATE ( SUM ( 'Hours'[Hrs] ),

我有一个度量,它被添加到一张桌子和一张卡片上。该度量值用于显示在呼叫处发布的总小时数。[Sch Engineer]=hours.Employee和Calls.ProjID=hours.ProjID

表中每行的值都是正确的。然而,表中和卡片中该度量的总值都不正确,我无法找出原因

因此,措施是:

SchEngHrsOnly =
VAR main =
    MAX ( Calls[Sch Engineer] )
RETURN
    CALCULATE ( SUM ( 'Hours'[Hrs] ), Hours[Employee] = main )
当我将其添加到表中时,我得到以下结果-表的合计值和度量值的卡片值都不正确-它们应该是163.50:

如果我在表格visual中选择一行,则卡片visual将显示正确的值,否则将显示不正确的值:

我的数据模型是:

我的关系是:

我希望得到的是:

另外,请参见此处的PBIX文件:


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

您可以将其创建为一个计算列,然后将其相加得到值:

Hours Calc = CALCULATE(MAX(Hours[Hrs]),FILTER(Hours,Hours[ProjID]=Calls[ProjID]))

上面的计算将为每个项目ID添加一个最大小时数的列。然后,您可以在最终表格中对其进行汇总,并应得到所需的结果。希望这有帮助。

如果您想要最大值之和,请按以下方式操作:

SumOfMaxes = 
SUMX(
  VALUES( Hours[ProjID] ),
  CALCULATE( MAX( Hours[Hrs]) )
)
它产生:

您可能还对以下方面感兴趣:

编辑

经过你的解释,我知道你想要一个过滤的总和

FilteredSum = 
CALCULATE (
    SUM ( Hours[Hrs] ),
    FILTER (
        Hours,
        Hours[Employee] = RELATED ( Calls[Sch Engineer] )
            && Hours[ProjID] = RELATED ( Calls[Proj ID] )
    )
)


为什么total=281.50不正确?现在它显示出了它的总数。您对所有小时总数的期望值是多少?现在该度量的公式是什么?所有小时数与问题无关,可以忽略它,它只是显示该工作发布的所有小时数的总和-所有小时数=总和(小时数[Hrs])我需要将度量值的总和Schenghrs仅设为=163.50。这是69.75+58+35.75。这有意义吗?我已经修改了原来的帖子,删除了这个额外的措施,因为它只是混淆了这个问题,我想你能解释一下69.75是什么意思吗?你想做什么?让我猜猜。首先按类别(ProjID或Job)计算最大值,然后求最大值的和,是吗?那么你想计算最大值之和吗?我正在尝试求和Hours.Hrs,其中Calls。[Sch Engineer]=Hours.Employee和Calls.ProjID=Hours.ProjID。这有意义吗?请查看我对FilteredSum的编辑。PS您的列名在表[ProjID]和[Prod ID]中不相同。您好@CR7SMS我不想获取最大小时数。我正在尝试计算每个项目的总发布时间,但只计算每个项目的Calls.SchEngineer。这有意义吗?另外,为了以防万一,我尝试了这个度量,但我得到了一个错误:找不到表“Calls”中的列“ProjID”,或者可能没有在这个表达式中使用。这可能是因为您没有在小时和调用表之间创建关系。我正在尝试对小时数进行求和,其中调用了。[Sch Engineer]=Hours.Employee和Calls.ProjID=Hours.ProjID。作业423198的SumofMaxs测量值不正确,应为58.00。总数应该是163.50,太棒了,我想不出一个好办法来回答这个问题。我想我应该早些时候使用SQL连接类比。这个相关函数看起来非常有用,我们将尽快阅读