Excel公式在某些单元格上返回false

时间:2017-08-01 16:15:49

标签: excel excel-formula

我在excel中的几个列中有一个嵌套的IF语句,它在某些单元格上返回FALSE。

=IF(DATEDIF(B2,C2,"y")<5,3.077,IF(AND(DATEDIF(B2,C2,"y")>5,DATEDIF(B2,C2,"y")<10),3.5385,IF(AND(DATEDIF(B2,C2,"y")>10,DATEDIF(B2,C2,"y")<15),3.846,IF(AND(DATEDIF(B2,C2,"y")>15,DATEDIF(B2,C2,"y")<20),4.308,IF(AND(DATEDIF(B2,C2,"y")>20),4.615)))))

这些工作:

B2 - 2/3/95,C2 - =今天()

B2 - 2/21/08,C2 - =今天()

B2 - 9/1/99,C2 - =今天()

这些不是:

B2 - 2/6/12,C2 - 今天()

B2 - 3/1/07,C2 - 今天()

B2 - 12/8/11,C2 - 今天()

B2 - 3/31/97,C2 - 今天()

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

你的问题是你创造了一个“口袋”,其中年份的差异不小于5或大于5;换句话说,5。您可以通过向其中一个添加等号来解决此问题;例如&lt; = 5或&gt; = 5.

但是,您可能还希望使用IF语句的逻辑并大幅减少您的公式。一旦您测试少于5 ,您就会知道在该IF的FALSE处理部分中继续的任何内容将是5或更大。你不必为此进行测试。

=IF(DATEDIF(B2,C2,"y")<5, 3.077,
 IF(DATEDIF(B2,C2,"y")<10, 3.5385,
 IF(DATEDIF(B2,C2,"y")<15, 3.846,
 IF(DATEDIF(B2,C2,"y")<20, 4.308,
  4.615))))

这也可以写成LOOKUP函数。

=LOOKUP(DATEDIF(B2,C2,"y"), {0,5,10,15,20}, {3.077,3.5385,3.846,4.308,4.615})