2013-07-10 70 views
3

我有兩個表格:客戶之一(「捐助者」)和交易之一(「交易」)。在捐助者,我希望有一個「總計」欄由特定捐助者ID,我會計算在標準Excel表格從而總結的所有交易:根據第二個PowerPivot表的行,我如何SUMIF一個PowerPivot表?

=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]) 

...但只允許1個過濾器,我需要能夠添加更多的過濾器,但是:

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

...(我的理解是一樣FILTER但允許倍數)不起作用。

你能確定我做錯了什麼嗎?

+0

你有沒有找到答案,我現在有完全相同的困境,如果你找到解決方案,這將是偉大的! – James

+0

唉,沒有。我將兩個表格歸一化爲一個平坦的表格。 –

回答

2

組建一個快速的模型,看起來像這樣經過:

我確認這DAX forumla工作作爲捐助表計算列:

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

這裏的關鍵是使確保兩個表格之間的關係配置正確,然後確保使用CALCULATE()和FILTER()的組合 - 根據當前的施主上下文過濾轉換表。

相關問題