意思是,前者比后者大半天(12小时),则后面的时间加1天计算差值,否则直接相减,这个公式本身存在错误。前者比后者大,而且小于12小时的情况下,会出现不正确的时间差。
原公式,等同于:=IF(A1-B1>0.5,TEXT(1+B1-A1,"h:mm:ss"),TEXT(B1-A1,"h:mm:ss"));
我觉得应该用:=IF(A1>B1,TEXT(1+B1-A1,"h:mm:ss"),TEXT(B1-A1,"h:mm:ss"))
更简洁的公式可以用:=TEXT(B1-A1+(A1>B1),"h:mm:ss")
在excel里面,一个时间格式的字符串,其实是一个小于1的数字表示的(你可以右键A1,设置单元格式,改成常规,就能看到),这个数字大于0.5表示时间>12:00:00,而这里mod的作用是将负数变成正数。
这里公式判断mod(a1-b1,1)>0.5,即间隔大于12:00:00(这时得到的间隔,其实是前一天的A1时间到今天A2时间的间隔),就要反过来B1-A1,后面的text是格式化("h:mm:ss"格式,即时:分:秒,2个mm表示如果分钟数<10,则前面添加0补齐,比如07,ss同理)