在一个范围内的date擅长
我想在Excel中使用IF
语句来查找特定date是否在特定范围内。 我有单元格A2包含date1/2/2014
。 在另一个单元格中,我使用的是:
=IF(AND(A2>="1/1/2014",A2<="1/15/2014"),"TRUE","FALSE")
这总是输出FALSE。 有谁知道为什么这个expression式不认识到date是在指定的范围内?
你正在比较string。 比较DATE()函数的结果并将其传递给date,月份和年份会更好。
=IF(AND(A2>DATE(2014,1,1), A2<=DATE(2014,1,15)), "TRUE", "FALSE")
=AND(A2>=41640,A2<=41654)
可能就足够了。 如果时间可能涉及您可能需要<41655
而不是<=41654
。
您需要将公式中的date转换为“真实”date。 比较操作者不会那样做。 双重一元,DATEVALUE函数或使用DATE函数(根据Levasseur的答案)将
=IF(AND(A2>=--("1/1/2014"),A2<=--("1/15/2014")),"TRUE","FALSE")
要么
=IF(AND(A2>=DATEVALUE("1/1/2014"),A2<=DATEVALUE("1/15/2014")),"TRUE","FALSE")
这两种方法的缺点是依赖于你的机器上使用的date格式。
更好的select是将范围的开始和结束date放到两个不同的单元格中,并在公式中使用它们
例如
A1: 1/1/2014 B1: 1/15/2014 =IF(AND(A2>=A1,A2<=B1),"TRUE","FALSE")
或者更短:
=IF(AND(A2>=A1,A2<=B1),TRUE)