EXCEL 算历时怎么把每天某一时间段给排除?

例如我要算A列到B列的故障历时,但是要排除晚上20点-第二天8点这个时间段,这个时间段不计入故障历时。如果流程开始时间是晚上20点后,那么就从早上8点开始计算历时。

   下次上图必须要有行列标号的啊!!!!!

A、B这两列时间数据都统一是日期数据格式的吧!还是文本格式的!

就按你的数据是日期时间格式为例,行列标号如图:

解题思路:就是开始日期的0点至结束日期的0点每天按12小时有效时间算,然后减去开始日期的当天的前面的有效时间,再加上结束日期的当天有效时间。

        具体的核算,即可在E3单元格输入公式:

=12*60*(INT(C3)-INT(B3))-SUM(TEXT(24*60*MOD(B3,1)-{0,480,1200},"0;!0")*{0,1,-1})+SUM(TEXT(24*60*MOD(C3,1)-{0,480,1200},"0;!0")*{0,1,-1})

结果就是有效的历时“分钟”数值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-09-14
已测试正确!
C2
=TEXT((B2-A2)*24*60-(DATEDIF(A2,B2,"d")-1)*9*60-(9-24*(TEXT(A2,"hh:mm")-TIMEVALUE("23:00")>0)*(TEXT(A2,"hh:mm")-TIMEVALUE("23:00"))+24*(TEXT(B2,"hh:mm")-TIMEVALUE("8:00")<0)*(TEXT(B2,"hh:mm")-TIMEVALUE("8:00")))*60,"#") 下拉填充
其中:
1、(B1-A1)*24*60计算不考虑任何其他因素两个时间差的总分钟数。
2、(DATEDIF(A1,B1,"d")-1)*9*60计算当两个时间差大于等于2天,应去掉n-1个完整的23:00---8:00固定段时间9小时分钟数。

3、(9-24*(TEXT(A2,"hh:mm")-TIMEVALUE("23:00")>0)*(TEXT(A2,"hh:mm")-TIMEVALUE("23:00"))+24*(TEXT(B2,"hh:mm")-TIMEVALUE("8:00")<0)*(TEXT(B2,"hh:mm")-TIMEVALUE("8:00")))*60计算时间段在23:00---8:00这一固定时间段中不足9小时应去掉的分钟数。
4、TEXT函数将计算出来的总分钟数用常规数值显示出来。
相似回答