我在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 - 今天()
非常感谢任何帮助。
答案 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})