【问题标题】:Duration and idle time for a server from continuous dates服务器从连续日期开始的持续时间和空闲时间
【发布时间】:2018-12-01 16:27:33
【问题描述】:
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/10/2018 12:56 to 18/10/2018 20:09 

以及它空闲了多少时间,即

            13/10/2018 17:09 to 15/10/2018 16:07  
 duration + 17/10/2018 14:09 to 18/10/2018.

如果有任何客户登录,则该时间不计为空闲时间。

如何在 Excel 或 Google 表格中进行操作

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      假设登录是按登录时间排序的,我们需要从服务器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"))
      

      必须使用 CtrlShiftEnter 作为数组公式输入。对于 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))
      

      空闲时间只是间隙的总和。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-03
        • 1970-01-01
        • 1970-01-01
        • 2021-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多