我有以下Excel代码:
=IF(K4<=31/03/2014,TRUE,FALSE)
K4包含日期:
01/01/2014
是的,代码带回FALSE
,我也尝试了=IF(K4<="31/03/2014",TRUE,FALSE)
,但结果相同。
关于我哪里出错的任何想法或建议?
答案 0 :(得分:3)
使用
=IF(K4<=DATE(2014,3,31),TRUE,FALSE)
您正在使用Float
<=
String
测试不等式,返回FALSE
。 DATE(,,)
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以查看是否适合您)