2016-09-29 74 views
0

这是一个基于分数的评分公式。Excel:我如何构建嵌套如果在Excel公式中的条件

If score < 4 Then LEVEL 1 
If score > 4 and score < 9 LEVEL 2 
If score > 8 and score < 13 LEVEL 3 
If score > 12 and score < 15 LEVEL 4 
If score > 15 LEVEL 5 

我真的搞不明白,错在哪里。请帮忙。

=IF(A1<4,"LEVEL 1",IF(AND(A1>4,A1<9),"LEVEL 2",IF(AND(A1>8,A1<13,"LEVEL 3",IF(AND(A1>12,A1<17,"LEVEL 4",IF(A1>16,"LEVEL 5"))))))) 
+0

第四级<17级,第五级> 15级 – eshwar

+0

谢谢指出。我纠正了错误。 –

+0

我假设水平<4,4-7,8-11,12-14,15及以上。如果这是正确的,我有一个更简单的公式= min(int(A1/4)+1,5) – eshwar

回答

0

您忘记在当时的条件之前关闭您的AND的右边。
第三个IF结束了一个巨大的条件,没有then或else语句,这也发生在最后AND

=IF(A1<4,    "LEVEL 1", 
IF(AND(A1>4, A1<9), "LEVEL 2", 
IF(AND(A1>8, A1<13), "LEVEL 3", 
IF(AND(A1>12, A1<17), "LEVEL 4", 
IF(A1>16,    "LEVEL 5"))))) 
+0

辉煌。它像一个魅力。非常感谢你。 –

1

你几乎拥有它,你只需要确保你封闭括号内为AND声明:

=IF(A1<4,"LEVEL 1",IF(AND(A1>4,A1<9),"LEVEL 2",IF(AND(A1>8,A1<13),"LEVEL 3",IF(AND(A1>12,A1<17),"LEVEL 4",IF(A1>16,"LEVEL 5"))))) 
+0

非常感谢。 –

3

你不需要AND()。如果第一个条件不自动传递数大于4所以你刚才检查它是否比9等等... 或者在一个公式:

=IF(A1<4,"LEVEL 1",IF(A1<9,"LEVEL 2",IF(A1<13,"LEVEL 3",IF(A1<17, "LEVEL 4", "LEVEL 5")))) 
+0

非常感谢。今天,我学习了excel公式 –

0

高兴你得到它的工作,但有在这种情况下,您可能需要考虑另一种方法,而不是嵌套IF。

在另一片材上的片材与您的水平和到达它们所需的得分创建一个表或其他地方: 0等级1 第4级第2 8等级3 12等级4 15等级5

然后用VLOOKUP或INDEX(MATCH函数查找匹配。我喜欢INDEX(MATCH,因为它给你更多的控制权。

=INDEX(Sheet1!$B$1:$B$5,MATCH(A1,Sheet1!$A$1:$A$5,1)) 

在这种情况下,我们的名单将在Sheet1中,与水平的上市B栏和所需的A列中的分数,而我们的公式在表2中引用以A1开始的实际分数。

INDEX函数查看数组-B1:B5 - 并从该数组中的指定行返回一个值。 MATCH函数查看数组 - A1:A5 - 并返回小于或等于匹配值的最大数组的位置。它将此结果传递回INDEX,以便它可以选择适当的行。

该方法比多级嵌套更易于维护,修改和扩展IF

0

你也可以使用这个公式:

=CHOOSE(MATCH(Score,{0,4,8,12,15},1),"Level 1","Level 2","Level 3","Level 4","Level 5") 

分数是一个定义的名称与您输入的单元格。