Excel - 在IF语句中比较具有连接值的单元格

时间:2013-08-20 10:50:15

标签: excel concatenation

我理解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")

2 个答案:

答案 0 :(得分: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年的日期。

答案 1 :(得分: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")