Powerpivot数据跨越多个过滤器值

时间:2013-03-26 04:50:53

标签: excel excel-formula powerpivot dax

我有存储在Excel Powerpivot中的中断信息。我正在尝试使用Powerpivot来显示和计算每月的正常运行时间,但是,我有点停留在超过两个月的停机时间。

我目前的设置:

中断表有四列:应用程序,中断开始时间,中断结束时间,持续时间。持续时间是计算列,它是结束时间和开始时间之间的差异。

停机开始时间连接到日期表。我每月都有切片器,因此用户可以选择他们喜欢的月份来查看可用性数据,而powerpivot表将显示该月份针对不同应用程序的可用性。

如果停电开始时间和结束时间在同一个月内,那么可用性计算是正确的。但是,例如,如果中断在7月底开始并在8月初结束,那么这只被认为是7月的中断(因为开始时间与日期表的关系如何)。理想情况下,我希望看到这次停电的持续时间在7月和8月分开。这可能吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

Tallie,

绝对可能!我通过在停机表上创建2个计算列来解决它:

确定当月中断的持续时间:

=if([End]>EOMONTH([Start],0),EOMONTH([Start],0)-[Start],[End]-[Start])

另一个确定下个月的停电:

=if([End]>EOMONTH([Start],0),[end]-EOMONTH([Start],0),blank())

然后它变得稍微复杂一点,我想要创建一个度量,不仅可以汇总当前月份中断,还可以汇总上个月的下个月中断量。我首先创建了一个度量,分别对2个计算列中的每个列求和 - 这是一个很好的做法,因为它有助于逻辑构建并提高性能:

[Cur Month Dur] = sum(Outage[Cur Month Outage])

[Following Month Dur] = sum(Outage[Following Month Outage])

然后我将[Cur Month Dur]添加到[Follow Month Dur]的过滤版本中,该版本打开度量的过滤器上下文并查看上个月的日期表(必须是数字):

=[Cur Month Dur] + 
      CALCULATE([Following Month Dur],
                    FILTER(
                         ALL(dimDate),
                         dimDate[Month Number]=max(dimDate[Month Number])-1
                          )
                )

您可以找到方法here的详细说明。

我将我的工作上传到了SkyDrive,您可能会发现它很有用。

HTH

雅各