Excel“IF”“AND”语句不返回所需的结果

我的excel声明应该确定我想要与date关联的年份。

  • 如果我在E栏的dateless于2015年11月1日,那么F栏就是2015年
  • 如果E列中的date在2015年10月31日至2016年1月1日之间,则列F读取2016年
  • 如果E列中的date大于10/31/2016,则列F显示2017年

但是,他们都在阅读2015年。

=IF(E2<"11/01/2015","2015",IF(AND(E2<"11/1/2016",E2>"10/31/2015"),"2016",IF(E2>"10/31/2016","2017"))) 

 =IF(AND(E2<>"",NOT(ISNUMBER(E2))),"DATE IS TEXT",IF(E2<date(2015,11,1),2015,IF(E2>DATE(2016,19,31),2017,2016))) 

这个公式还将testing你的E中的date实际上是Excel中的序列date格式还是TEXT中的date。

用这个:

 =IFERROR(MIN(MAX(2015,YEAR(E2+61)),2017),"date is text") 

这也应该工作:

 =INDEX({2015;2016;2017},MATCH(E2,{0;42309;42675},1),1) 

我必须将date转换为数字,这就是4230942675 。 可能有更好的方法来让他们看起来像date。


如果E2不是一个数字,那么它会抛出一个错误。 你可以像斯科特的答案一样使用IFERROR来避免它:

 =IFERROR(INDEX({2015;2016;2017},MATCH(E2,{0;42309;42675},1),1),"date is text")