列中的 PowerPivot 滚动总计

PowerPivot Rolling Total in Column

我被要求调查事件的响应和解决时间。不幸的是,我们现有的工具在这方面没有帮助。以下是 2 张票的数据摘录:

Incident_Id | Status           |Begin_Time        |End_Time          | RowTotal
------------|------------------|------------------|------------------|--------
IM3415346   | Open             | 10/03/2017 11:20 | 10/03/2017 11:33 | 787
IM3415346   | Work In Progress | 10/03/2017 11:33 | 10/03/2017 11:55 | 1325
IM3415346   | Work In Progress | 10/03/2017 11:55 | 10/03/2017 13:20 | 5099
IM3415346   | Work In Progress | 10/03/2017 13:20 | 10/03/2017 13:56 | 2133
IM3415346   | Closed           | 10/03/2017 13:56 | 10/03/2017 13:56 | 0
IM3415483   | Open         | 10/03/2017 12:30 | 10/03/2017 12:39 | 530
IM3415483   | Work In Progress | 10/03/2017 12:39 | 10/03/2017 12:53 | 848
IM3415483   | Work In Progress | 10/03/2017 12:53 | 10/03/2017 14:10 | 4579
IM3415483   | Work In Progress | 10/03/2017 14:10 | 10/03/2017 14:30 | 1199
IM3415483   | Work In Progress | 10/03/2017 14:30 | 10/03/2017 16:55 | 8700
IM3415483   | Closed           | 10/03/2017 16:55 | 10/03/2017 16:55 | 0

该工具仅表示工单不符合 SLA,这归因于团队关闭工单,即使他们不是造成延迟的责任人。

理想情况下,我试图为 RowTotal 旁边的每个事件获取一个 运行 总计列:

RowTotal | RunningTotal |
---------|--------------|
787      | 786          |
1325     | 2111         |
5099     | 7210         |
2133     | 9343         |
0        | 9343         |
530      | 530          |
848      | 1377         |
4579     | 5956         |
1199     | 7155         |
8700     | 15855        |
0        | 15855        |

我已经看到了如何将每个事件的所有时间依次累加...

=CALCULATE(SUM(Query[TotalSeconds]),Query[Incident_Id]=EARLIER(Query[Incident_Id]),Query[TotalSeconds]>0)

但我真的很难接受这种 运行 整体方法。有没有人以前可能遇到过这个问题?

我在提供的数据中看不到 TotalSeconds,所以我将只使用 RowTotal 来说明。请随意更改它以适应您的具体用例。

RunningTotal = 
CALCULATE(
    SUM(Query[RowTotal]),
    FILTER(
        Query,
        Query[Incident_Id] = EARLIER(Query[Incident_Id]) &&
        Query[Begin_Time] <= EARLIER(Query[Begin_Time])
    )
)

您缺少使行上下文正常工作的 FILTER 函数。您还需要在 Begin_Time 上添加过滤器,这样它只会添加上次记录的时间,而不是事件中的所有行。

取决于业务逻辑,您可能需要在 StatusEnd_Time 上添加过滤器,但这不在讨论范围内。

结果: