2015-10-19 95 views
0

在進一步研究之後改述上一個問題。我有一個denormalised層次的案件,每個都有一個ID,對他們的父母(或他們自己)的引用和結束日期。DAX SUMMARIZE()帶過濾器 - Powerpivot

Cases 
ID | Client | ParentMatterName | MatterName | ClaimAmount | OpenDate | CloseDate 
1 | Mr. Smith | ABC Ltd   | ABC Ltd | $40,000  | 1 Jan 15 | 4 Aug 15 
2 | Mr. Smith | ABC Ltd   | John  |  $0  |20 Jan 15 | 7 Oct 15 
3 | Mr. Smith | ABC Ltd   | Jenny  |  $0  | 1 Jan 15 | 20 Jan 15 
4 | Mrs Bow | JQ Public  | JQ Public | $7,000  | 1 Jan 15 | 4 Aug 15 

greggyb我也有另一列的幫助後,案件[LastClosed],這將在當前行被關閉是真實的,並且是最後父組的關閉。

還有第二個支付表,與案例[ID]有關。這些付款可能會在父母或小孩的事務中收到。我總結收到的款項如下:

Recovery All Time:=CALCULATE([Recovery This Period], ALL(Date_Table[dateDate])) 

我要尋找一個新的措施,這將計算回收的唯一ParentMatterName總,如果這個羣體在過去的封閉物財政年度,我們正在考慮關閉 - 6月30日結束日期。

我現在正在看SUMMARIZE()函數做這個的第一部分,但我不知道如何過濾它。計算的層次很混亂。我查看了This MSDN blog,但它似乎會過濾爲僅顯示上次關閉的事件的總付款(不添加相關子女)。

我目前的計算公式爲:

Recovery on Closed This FY := 
CALCULATE (
    SUMX (
     SUMMARIZE (
      MatterListView, 
      MatterListView[UniqueParentName], 
      "RecoveryAllTime", [Recovery All Time] 
     ), 
     [RecoveryAllTime] 
    ) 
) 

所有幫助表示讚賞。

回答

0

同樣,您的解決方案通過添加模型更容易解決。請記住,存儲很便宜,您的最終用戶不耐煩。

只需在您的Cases表中存儲每個父項的LastClosedDate列,該列表示與上次關閉的子項目相關的日期。然後,這是一個簡單的過濾器,僅返回當前會計年度中具有LastClosedDate的付款/事項。或者,如果您確切知道您只關注一年,則可以只存儲LastClosedFiscalYear,以使您的過濾器謂詞更簡單一些。

如果您需要具體措施方面的幫助或者您可能如何實施其他字段,請告訴我們(我建議您在源代碼中添加這些字段,或者在源查詢中派生它們而不是使用計算列)。