Excel IF日期小于日期不起作用

时间:2014-07-17 10:36:34

标签: excel if-statement

我有以下Excel代码:

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

K4包含日期:

01/01/2014

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

关于我哪里出错的任何想法或建议?

3 个答案:

答案 0 :(得分:3)

使用

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

您正在使用Float <= String测试不等式,返回FALSEDATE(,,) fx为您提供了相等比较所需的Float

或者,=K4<=DATE(2014,3,31)是实现相同目标的较短方式。

答案 1 :(得分:1)

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

K4 <= (31/03)/2014

31/03给出10.333 ......除以2014得到0.005131 ...这就是为什么它总是评价为假(2014年1月1日相当于41640,即自'00 /以来的天数01/1900' )

我不知道这是否属于系统问题,但=IF(K4<="31/03/2014",TRUE,FALSE)给了我TRUE,但是=IF(K4<="31/03/2013",TRUE,FALSE)也是如此。

快速而肮脏的技巧是将字符串乘以1:

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

乘法告诉excel将字符串转换为数字(如果它是可解析的)(您还可以使用任何其他不会更改值本身的数值运算,例如+0)。

注意:Excel日期和数字是相同的。日期格式不同,因此具有特定格式的数字可以显示为日期,时间或您可以拥有的任何其他格式。

另外,如果你真的使用这个IF结构,那么你最好只使用比较器:

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

答案 2 :(得分:0)

我遇到了同样的问题,发现excel没有将我的2列中的一列视为日期。 (尝试将日期格式更改为14-Mar-12以查看是否适合您)