Excel公式中的日期比较不起作用

19

如果我在A1单元格中输入日期31/12/2013,然后在A2中输入另一个日期1/1/2014,那么像下面这样的公式

 =A1<A2 

给出了预期结果,TRUE。

如果我放置公式

=A1<1/1/2014 

在另一个单元格中,它会给出 FALSE 的结果。

问题是如何调整第二个公式以使其给出正确的结果,并且为什么它不能按原样工作。

我已经研究了一段时间,并找到了一些相关帖子,例如

比较计算日期和输入日期

但没有一个直接回答这个问题。

2个回答

33

1/1/2014 是1除以1除以2014的结果。

改为:=A1<DATEVALUE("1/1/2014")

(意思是如果A1单元格中的日期早于2014年1月1日,则返回TRUE)。


4
当然可以。这段话的意思是“绝对没问题”,或者是一个具体的日期,即2014年1月1日。 - Tom Sharpe

11

现在我可以回答自己的问题了。

与相关帖子中提到的答案是使用DATE或DATEVALUE函数,即:

=A1<date(2014,1,1)
或者
=A1<datevalue("1/1/2014")

这个无法工作的原因是,在这种情况下,Excel只把1/1/2014视为算术表达式,即1除以1再除以2014,得到一个很小的数字。日期(距离1900年1月1日的天数)通常求值为大数字,所以比较失败。

如果你只是在单元格中键入1/1/2014,则会得到一个日期,但如果你键入=1/1/2014则会得到一个小数字。

我认为这很有趣,值得分享,因为对于人类而言,=A1<1/1/2014看起来像是在比较一个单元格和一个日期,但实际上并不是。


=A1<DATEVAL("01/01/2014")在Excel 2016上对我来说很好用! - Spynol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接