把它分解成几个步骤。我将使用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 个公式,然后瞧。