用于比较时间值的公式

时间:2014-08-25 09:51:32

标签: excel excel-vba excel-formula excel-2007 excel-2010 vba

在excel公式下工作正常,但在某些情况下,它没有给我正确的价值。

输入:

19:20:42
24:58:36
26:11:18

使用此公式后:

 =IF(TIMEVALUE(K7)>TIMEVALUE("09:00:00"),TRUE,FALSE)

我得到了以下输出:

FALSE
TRUE
TRUE

如果时间值是>我观察到的是什么或= 24:00:00它不会给我正确的答案。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

作为Captain的优秀答案的替代方案,你也可以使用:

=IF(K7>(9/24),TRUE,FALSE)

DateTime值在内部存储为自191年1月1日以来的天数,
因此1 = 1天= 24小时。所以9/24 = 0.375 = 9小时:-)

您可以通过清除DateTime单元格的格式轻松验证这一点。


修改:请注意,这样的布尔公式可以用更短的方式表达而不会丢失易读性:

=K7>(9/24)

答案 1 :(得分:3)

当你超过24小时后,Excel将其计为第二天......然后TIMEVALUE是第二天的时间(即你的例子中的00:58:36和02:11:18)因此,可以在0900之前。 您可以DATEVALUE(K7)+TIMEVALUE(K7)来确保计算日期部分......