如何根据第二个PowerPivot表的行对一个PowerPivot表进行SUMIF?

时间:2013-07-10 19:56:39

标签: excel powerpivot dax

我有两个表:一个是客户(“捐赠者”),另一个是交易(“Trans”)。在Donor中,我想要一个“Total”列,它按特定的捐赠者ID对所有交易进行求和,我将在标准的Excel表中计算:

=SUMIF(Trans[Donor ID],[@ID],Trans[Amt])

简单!如何使用DAX公式做同样的事情?我想

=CALCULATE(SUM(Trans[Amt]),Trans[Donor ID]=[ID])

会这样做,但我收到错误

Column "ID" cannot be found or may not be used in this expression.

奇怪的是,当我使用

=CALCULATE(SUM(Trans[Amt]),Trans[Donor ID]=3893)

获得ID 3893的总数。

Eschewing CALCULATE,我确实发现这有效:

=SUMX(FILTER(Trans, Trans[Donor ID]=[ID]),[Amt])

...但它只允许一个过滤器,我需要能够添加更多过滤器,但是:

=SUMX(CALCULATETABLE(Trans, Trans[Donor ID]=[ID]),[Amt])

...(我理解为像FILTER但允许倍数)不起作用。

你能说出我做错了吗?

1 个答案:

答案 0 :(得分:2)

组合一个如下所示的快速模型:

我已经确认此DAX论坛作为捐赠者表中的计算列:

=CALCULATE(SUM(Trans[Amt]), FILTER(Trans, Trans[Donor] = Donor[DonorKey]))

这里的关键是确保正确配置两个表之间的关系,然后确保使用CALCULATE()和FILTER()的组合 - 根据当前的捐赠者上下文过滤转换表。