在一个范围内的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)