根据多个日期标准过滤PowerPivot

时间:2015-07-08 05:22:06

标签: powerpivot dax

我正在尝试在我的PowerPivot工作簿中应用一些时间智能功能,这些功能涉及项目和收到的资金。我有三个相关的表格;事项,付款和日期表。

每个问题都有一个creationDate和一个closureDate(来自链接表)。同样,每笔付款都有一个日期。我的报告设置不错,但我现在正试图使用​​时间智能来更清楚地过滤这一点。

如何设置PowerPivot数据透视表,以便显示的唯一事项是所选时段内存在的事项。例如如果我选择2014年的切片机,我不想展示在2015年创建的事件,或者在2013年关闭的事件。该事项应该在指定的时间段内处于活动状态。

这可能吗?

2 个答案:

答案 0 :(得分:1)

除了您正在查看的日期范围的上限或ClosureDate在您正在查看的日期范围的下限之前,您希望显示所有事项,除非创建日期超出您所查看的日期范围的上限。

假设你有这样的数据结构,左边的表是事项,右边的是付款:

enter image description here

如果您有一个名为[总付款]的计算字段,只是将付款表中的所有付款相加,那么类似于此的公式就可以使用: -

[Payment in Range]:=IF(OR(MIN(Matters[Creation Date])>MAX('Reporting Dates'[Date]),MAX(Matters[Closure Date])<MIN('Reporting Dates'[Date])),BLANK(),[Total Payments])

以下是在时间轴中选择一个月的结果:

enter image description here

或者在年份切片机中选择了一年:

enter image description here

注意:在我的示例中,我使用了断开连接的日期表。

此外,您将看到Grand Total将所有付款加起来,因为它占所有创建日期中的最低值,并且是所有关闭日期中最高的,以确定是否显示总付款值。如果Grand Total正确显示非常重要,则需要采取额外措施:

[Fixed Totals Payment in Range]:=IF(COUNTROWS(VALUES(Matters[Matter]))=1,[Payment in Range],SUMX(VALUES(Matters[Matter]),[Payment in Range]))

使用此新度量替换数据透视表中的[范围内付款],并且总计将正确显示,但是,这仅在Matters [Matter]用作数据透视表中的某个字段时才有效。

enter image description here

答案 1 :(得分:0)

使用过滤器&amp;计算功能。

所以,如果你要汇总付款,那就好像......

2014年付款:=计算(合并([付款]),日期表[年] = 2014年)

Sum函数需要全部付款和&amp;过滤功能仅根据连接到您的日期表的数据捕获2014年的付款。