Excel "IF" "AND" 语句未返回所需结果
Excel "IF" "AND" statement not returning desired result
我的 excel 语句应该标识我希望日期与之相关联的年份。
- 如果我在 E 列中的日期小于 11/1/2015,则 F 列显示为 2015
- 如果 E 列中的日期介于 2015 年 10 月 31 日和 2016 年 11 月 1 日之间,则 F 列为 2016 年
- 如果 E 列中的日期大于 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)))
此公式还将测试您在 E 中的日期是否实际上是 excel 的连续日期格式或 TEXT 中的日期。
使用这个:
=IFERROR(MIN(MAX(2015,YEAR(E2+61)),2017),"date is text")
这也应该有效:
=INDEX({2015;2016;2017},MATCH(E2,{0;42309;42675},1),1)
我必须将日期转换为数字,所以 0
、42309
和 42675
就是这样。可能有更好的方法让它们看起来像日期。
如果E2
不是一个数字那么它会抛出一个错误。您可以像 Scott 的回答一样使用 IFERROR
来避免它:
=IFERROR(INDEX({2015;2016;2017},MATCH(E2,{0;42309;42675},1),1),"date is text")
我的 excel 语句应该标识我希望日期与之相关联的年份。
- 如果我在 E 列中的日期小于 11/1/2015,则 F 列显示为 2015
- 如果 E 列中的日期介于 2015 年 10 月 31 日和 2016 年 11 月 1 日之间,则 F 列为 2016 年
- 如果 E 列中的日期大于 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)))
此公式还将测试您在 E 中的日期是否实际上是 excel 的连续日期格式或 TEXT 中的日期。
使用这个:
=IFERROR(MIN(MAX(2015,YEAR(E2+61)),2017),"date is text")
这也应该有效:
=INDEX({2015;2016;2017},MATCH(E2,{0;42309;42675},1),1)
我必须将日期转换为数字,所以 0
、42309
和 42675
就是这样。可能有更好的方法让它们看起来像日期。
如果E2
不是一个数字那么它会抛出一个错误。您可以像 Scott 的回答一样使用 IFERROR
来避免它:
=IFERROR(INDEX({2015;2016;2017},MATCH(E2,{0;42309;42675},1),1),"date is text")