Excel中的停机时间计算

问题描述 投票:0回答:1

我正在尝试计算设备的停机时间。我只想计算特定时间段内的时间。我将此时间段称为最小和最大时间。所有时间戳都带有日期,但当日期更改时,时间应据此计算。对于一台设备,我可以做到这一点,但相同的公式不适用于下一台设备。

逻辑:时间戳是 22:00,设备的最后一个时间戳是 6:00 小时之前。 最少上午 6:00 至晚上 18:00

因此停机时间为2 小时。因为设备上次通信的时间是 16:00,停机时间考虑在 18:00。

文件

excel-formula excel-2010
1个回答
0
投票

将其分解为步骤。 我将使用

Time(6,0,0)
Time(18,0,0)
作为您的开始/结束时间,但您可能希望将它们设为单元格引用。 我还将使用
Min_Date
Max_Date
作为您要比较的 2 个时间戳

第0步:检查日期是否相同 - 如果是,则按正常计算。 否则,请继续执行以下步骤:

=MEDIAN(TIME(6,0,0), Mod(Max_Date,1), Time(18,0,0)) - MEDIAN(TIME(6,0,0), Mod(Min_Date,1), Time(18,0,0))

第 1 步: 有多少全天 停机时间? (即

2018-01-01 12:00
2018-01-03 12:00
有 1 全天
2018-01-02
)将此乘以每天的小时数:

=Max(Int(Max_Date)-Int(Min_Date)-1, 0) * (Time(18,0,0)-Time(6,0,0))

第 2 步: 第一天 有多少时间是停机时间?

=TIME(18,0,0)-MEDIAN(TIME(6,0,0), Mod(Min_Date,1), Time(18,0,0))

第 3 步: 最后天有多少时间是停机时间?

=MEDIAN(TIME(6,0,0), Mod(Max_Date,1), Time(18,0,0))-TIME(6,0,0)

第 4 步: 将步骤 1、2 和 3 加在一起

只需将它们结合成 1 个公式,然后 voilá

{编辑} 将所有内容与

LET
函数放在一起:

=LET(outageStart, A1,
     outageEnd, B1,
     shiftStart, TIME(6,0,0),
     shiftEnd, TIME(18,0,0),
     IF(INT(outageStart)=INT(outageEnd),
        MEDIAN(shiftStart, MOD(outageEnd,1), shiftEnd) - MEDIAN(shiftStart, MOD(outageStart,1), shiftEnd),
        LET(_shiftLength, shiftEnd-shiftStart,
            _outageFullDays, MAX(INT(outageEnd)-INT(outageStart)-1, 0)*_shiftLength,
            _outageFirstDay, shiftEnd-MEDIAN(shiftStart, MOD(outageStart, 1), shiftEnd),
            _outageLastDay, MEDIAN(shiftStart, MOD(outageEnd, 1), shiftEnd)-shiftStart,
            _outageFirstDay+_outageFullDays+_outageLastDay
        )
     )
)

或通过反转开始/结束时间段以从全天停机中减去非停机部分来简化事情:

=LET(outageStart, A1,
     outageEnd, B1,
     shiftStart, TIME(6,0,0),
     shiftEnd, TIME(18,0,0),
     _shiftLength, shiftEnd-shiftStart,
     _days, 1+INT(outageEnd)-INT(outageStart),
     _inageStart, MEDIAN(shiftStart, MOD(outageStart, 1), shiftEnd)-shiftStart,
     _inageEnd, shiftEnd-MEDIAN(shiftStart, MOD(outageEnd, 1), shiftEnd),
     (_days*_shiftLength)-(_inageStart+_inageEnd)
)
© www.soinside.com 2019 - 2024. All rights reserved.