如何根据第二个PowerPivot表的行SUMIF一个PowerPivot表?
我有两个表:一个客户(“捐助者”)和一个交易(“交易”)。 在捐助者中,我想要一个“总计”列,用一个特定的捐助者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])
…但它只允许一个filter,我需要能够添加更多的filter,但:
=SUMX(CALCULATETABLE(Trans, Trans[Donor ID]=[ID]),[Amt])
…(我的理解是像FILTER,但允许倍数)不起作用。
你能确定我做错了什么吗?
把一个看起来像这样的快速模型放在一起后:
我已经确认这个DAX论坛在Donor表中作为计算列工作:
=CALCULATE(SUM(Trans[Amt]), FILTER(Trans, Trans[Donor] = Donor[DonorKey]))
这里的关键是确保两个表之间的关系是正确configuration的,然后确保使用CALCULATE()和FILTER()的组合 – 根据当前的施主上下文过滤转换表。