2015-10-19 65 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,以使您的过滤器谓词更简单一些。

如果您需要具体措施方面的帮助或者您可能如何实施其他字段,请告诉我们(我建议您在源代码中添加这些字段,或者在源查询中派生它们而不是使用计算列)。