连续日期中服务器的持续时间和空闲时间

时间:2018-12-01 16:27:34

标签: excel datetime google-sheets spreadsheet gaps-and-islands

Server   Customer.              Start.                          End
A.               X.         12/10/2018 12:56    13/10/2018. 13:05
B.               K.         12/10/2018 14:05.   12/10/2018.  14:25
A.               N          12/10/2018.13:08.   13/10/2018. 17:09
A.               Y          15/10/2018.16:07.   17/10/2018. 14:09
A.               F.         18/10/2018 13:05.   18/10/2018 20:09

我想要使用多少持续时间的服务器A 12/12/2018 12:56至18/10/2018 20:09。空闲时间为多少,即13/10/2018 17:09至15/10/2018 16:07持续时间+ 17/10/2018 14:09至18/10/2018。如果有任何客户登录,则该时间不算作空闲时间。如何在Excel或Google表格中完成

2 个答案:

答案 0 :(得分:0)

对问题做出一些假设(您的问题可能会更好地表达),您可以使用数组公式。 E行和H5单元格的格式设置为显示小时

enter image description here enter image description here enter image description here

答案 1 :(得分:0)

这是一个“空白和孤岛”的问题。间隔是用户数变为零的点与用户数大于零的点之间的间隔:

enter image description here

假设登录是按登录时间排序的,那么对于服务器A,我们需要从下一次登录时间中减去到目前为止的最新注销时间,从而得出从E2开始的公式:

=IF(A2<>$G$1,0,--TEXT(INDEX(C3:C$10,MATCH(TRUE,A3:A$10=$G$1,0))-MAX(IF(A$2:A2=$G$1,D$2:D2)),"general;\0"))

必须使用 Ctrl Shift Enter 作为数组公式输入。对于Excel,可以使用Aggregate替代非数组公式:

=IF(A2<>$G$1,0,--TEXT(INDEX(C3:C$10,AGGREGATE(15,6,ROW(A3:A$10)/(A3:A$10=$G$1),1)-ROW(A2))-AGGREGATE(14,6,D$2:D2/(A$2:A2=$G$1),1),"general;\0")) 

持续时间由

给出
=MAX(IF(A2:A10=$G$1,D2:D10))-MIN(IF(A2:A10=$G$1,C2:C10))

空闲时间就是间隔的总和。

enter image description here