0

我知道这会CONCATENATE()返回一个字符串,但希望下面的公式可以帮助提供一些上下文以及我想要实现的目标:

我需要单元格说出YESNO取决于日期是否在特定范围内。

  • V3 =1.1
  • C5 =01/01/2014
  • D5 =01/02/2014

=IF(AND(V$3>=CONCATENATE(DAY($C5),".",MONTH($C5)),
   V$3<=CONCATENATE(DAY($D5),".",MONTH($D5))),"YES","NO")
4

2 回答 2

0

如果 V3 表示 Month.Day 使得 1.1 实际上是 1 月 10 日,则在单元格 E5 中使用此公式将其转换为日期(并将单元格 E5 格式化为日期):

=--TEXT(V$3*100&YEAR($C5),"00\/00\/0000")

那么比较公式就变成了:

=IF(AND($C5<=$E5,$D5>=$E5),"YES","NO")

如果你不能有一个辅助单元格,那么这里是完整的公式:

=IF(AND($C5<=--TEXT(V$3*100&YEAR($C5),"00\/00\/0000"),$D5>=--TEXT(V$3*100&YEAR($C5),"00\/00\/0000")),"YES","NO")
于 2013-08-20T15:24:37.373 回答
0

如果要比较数字,为什么要使用连接?只需将它们保留为这样的数字:

=IF(AND(V$3>=DAY($C5)+(MONTH($C5)/10),V$3<=DAY($D5)+(MONTH($D5)/10)),"Yes","No")

编辑:

很难想出一个解决方案,因为你的问题不是很清楚。你的问题是你有一个代表一个月和一天的十进制数字并且你想知道它是否位于日期之间,但是因为你的十进制数字没有代表你想从比较中排除年份而只是基数的年份它在月份和日期?

如果是这样,那么试试这个:

=IF(AND(DATE(1900,INT(V$3),(V$3 - INT(V$3))*10)>=DATE(1900,MONTH($C5),DAY($C5)),DATE(1900,INT(V$3),(V$3 - INT(V$3))*10)<=DATE(1900,MONTH($D5),DAY($D5))),"Yes","No")  

这会将所有三个元素转换为年份为 1900 的日期。

于 2013-08-20T11:06:11.557 回答