在进一步研究之后,对之前的问题进行重新表述。我有一个非正规化的案例层次结构,每个案例都有一个ID,一个对其父(或他们自己)的引用和一个关闭日期。
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的帮助下,我还有另一个列CasesLastClosed,如果当前行是关闭的,它将为真,并且是父组的最后一个关闭的列。
还有第二个支付表,与CasesID相关。这些付款可以在父母或孩子的事务中收到。我将收到的付款合计如下:
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]
)
)感谢大家的帮助。
发布于 2015-10-20 22:06:05
同样,通过添加模型来解决您的解决方案要容易得多。记住,存储是便宜的,你的最终用户是没有耐心的。
只需在Cases表中存储一个列,其中包含每个父事件的LastClosedDate,该列指示与最后一个结束子事件相关联的日期。然后,它是一个简单的过滤器,只返回当前财年中具有LastClosedDate的那些付款/事项。或者,如果您确定您只关心年份,那么可以只存储LastClosedFiscalYear,以使您的过滤谓词更简单。
如果您需要有关特定度量或如何实现附加字段的帮助,请让我们知道(我建议在源中添加这些字段,或者在源查询中派生它们,而不是使用计算列)。
https://stackoverflow.com/questions/33222579
复制相似问题