excel算两个时间相差值的公式什么意思?

请问C1这里个公式什么意思
它能算出A1和B1的时间差,具体意思不懂

意思是,前者比后者大半天(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")追问

=IF(A1>B1,TEXT(1+B1-A1,"h:mm:ss"),TEXT(B1-A1,"h:mm:ss"))
这个公式,在A1大于B1的时候算不出差值

追答

算不出差值是什么意思,这个公式是基于日常使用,B1的时间点晚于A1而设计的,如果仅仅是求两者的时间差,而不用考虑哪个时间晚于另一个时间,可以直接用绝对值来求,不用这么复杂


=TEXT(ABS(A1-B1),"h:mm:ss")

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-09
在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同理)
第2个回答  2014-08-09
这么复杂,C1=B1-A1就行了,如果A列可能大于B列,那就复杂点追问

如果A1时间是23:00,直接减就不行

追答

如果有时A列会大于B列,有时B列会大于A 列的话,C1=ABS(B1-A1)

相似回答