Excel IFdate小于date不工作

我有以下Excel代码:

=IF(K4<=31/03/2014,TRUE,FALSE) 

K4包含date:

 01/01/2014 

是的,代码带回了FALSE ,我也试过=IF(K4<="31/03/2014",TRUE,FALSE)但结果相同。

任何想法或build议,我要去哪里错了?

使用

=IF(K4<=DATE(2014,3,31),TRUE,FALSE)

您正在使用Float <= Stringtesting不等式,它将返回FALSEDATE(,,) fx为您提供所需的Float for equality比较。

或者, =K4<=DATE(2014,3,31)是达到同样的更短的方法。

K4<=31/03/2014评估的是:

 K4 <= (31/03)/2014 

31/03给出10.333 …,并且除以2014年给出0.005131 …这就是为什么它将总是评估为假的(2014年1月1日相当于41640,即自从2000年1月1日以来的天数“)

我不知道这是否是一个系统的事情,但是=IF(K4<="31/03/2014",TRUE,FALSE)给了我TRUE ,但是这样做=IF(K4<="31/03/2013",TRUE,FALSE)

一个快速和肮脏的伎俩将是乘以1的string:

 =IF(K4<="31/03/2014"*1,TRUE,FALSE) 

乘法告诉excel将string转换为数字(如果它是可parsing的)(您也可以使用任何其他不改变数值的数字操作,例如+0 )。

注意:Exceldate和数字是相同的。 date格式不同,以便具有特定格式的数字可以显示为date,时间或任何其他格式。

另外,如果你真的使用这个IF构造,你最好简单地使用比较器:

 =K4<="31/03/2014"*1 

我有同样的问题,发现Excel不认可我的2列之一作为一个date。 (尝试将date格式更改为12月13日,以查看是否属于这种情况)