excel计算两个时间点之间的历时问题,历时计算要避开夜间23:00-早晨8:00这个时段,有具体的函数吗?

我使用的时间格式是 2016/7/25 16:31:00
=B2-A2-(INT(B2)-INT(A2))*TIME(9,0,0),这个公式只适合于开始时间和结束时间都不在23:00-8:00这种情况,如果开始时间在23:00以后8:00之前,或者结束时间在23:00以后8:00之前的情况,需要怎样写公式?

假设截图数据从A1单元格开始
则第一个记录的公式为:=B2-A2-(INT(B2)-INT(A2))*TIME(9,0,0),下拉复制即可
解释:
日期时间数据是整数+小数的结构,整数部分是日期,小数部分是时、分、秒(1小时=1/60)
B2-A2计算出时间差,然后根据两者间的整数差值 INT(B2)-INT(A2),计算出日数差
再按这个天数乘以9小时进行扣减追问

这个公式只适合于开始时间和结束时间都不在23:00-8:00这种情况,如果开始时间在23:00以后8:00之前,或者结束时间在23:00以后8:00之前的情况,需要怎样写公式?

追答

=B2-A2-(INT(B2)-INT(A2))*TIME(9,0,0)-MAX(0, A2-INT(A2)-TIME(23,0,0))+MAX(0, TIME(8,0,0)-(B2-INT(B2)))-MAX(0, TIME(8,0,0)-(A2-INT(A2)))-MAX(0, B2-INT(B2)-TIME(23,0,0))

解释:
B2-A2 计算时间差
-INT(A2))*TIME(9,0,0) 按天数扣减9小时
-MAX(0, A2-INT(A2)-TIME(23,0,0)) 若起始时间晚于23时,则去除多扣减的时间
+MAX(0, TIME(8,0,0)-(B2-INT(B2))) 若结束时间早于8时,则补足多扣减的时间
-MAX(0, TIME(8,0,0)-(A2-INT(A2))) 若起始时间早于8时,则去除多扣减的时间
-MAX(0, B2-INT(B2)-TIME(23,0,0)) 若结束时间晚于23时,则去除多扣减的时间

温馨提示:答案为网友推荐,仅供参考