Excel嵌套错误

另一个问题! 我正在使用Excel 2013,我不得不创build一个If语句,它基本上根据特定的标记号select学生成绩(显然需要嵌套)这里是我创build的If语句

=IF(E2<=20,"N", IF(OR(E2>=21,E2<=25),4, IF(OR(E2>=26,E2<=32),"5C", IF(OR(E2>=33,E2<=38),"5B", IF(OR(E2>=39, E2<=44), "5A", IF(OR(E2>=45, E2<=53), "6C", IF(OR(E2>=54, E2<=61), "6B", IF(OR(E2>=62, E2<=71), "6A", IF(OR(E2>=72, E2<=87), "7C", IF(OR(E2>=88, E2<=103), "7B", IF(OR(E2>=104, E2<=120), "7A"))))))))))) 

我收到的错误是“指定的公式不能input,因为它使用更多的嵌套水平比当前的文件格式允许”基本上我的问题是,我怎么缩短这个声明,然后让Excel使用它?

将逻辑放在电子表格单元格中。 一列为最低分数,一列为分数:

  AB 1 0 N 2 21 4 3 26 5C 4 33 5B 5 39 5A 6 45 6C 7 54 6B 8 72 7C 9 88 7B 10 104 7A 

然后做一个vlookup从实际得分的分数。 vlookup将在A列中find最小值,小于查找值38。

在下面的例子中,vlookup是38分,A1:B10是查找表2是包含结果(等级)的第二列(在这个例子中是B列)。

 =VLOOKUP(38, A1:B3, 2, TRUE) 

有几个不同的解决scheme。 AND使用OR协议,而不是首先想到的。

 =IF(E2<=20,"N", IF(AND(E2>=21,E2<=25),4, IF(AND(E2>=26,E2<=32),"5C", ... 

你也可以使用下面的公式。

 =LOOKUP(E2;{0;21;26;33;39;45;54;62;72;88;104;121};{"N";4;"5C";"5B";"5A";"6C";"6B";"6A";"7C";"7B";"7C";"No match"}) 

在我看来,最好的办法是编写一个UDF。 然后你可以使用VBA和CASE语句。 在VBA中试验这个代码来创build一个名为GRADE()的UDF – 只需在VBE中input一个MODULE即可:

 Function Grade(Marks) Dim Score As Integer Score = Marks * 1 Select Case Score Case 1 To 20 Grade = "N" Case 21 To 50 Grade = "C" Case 51 To 90 Grade = "B" Case 91 To 120 Grade = "A" End Select End Function 

然后像使用其他函数一样使用函数GRADE(),但input参数的地址 – 就像这个GRADE(B7)一样使用它

 =+IF(O3="Negative","Negative",IF(P3="Negative","Negative",IF(Q3="Negative","Negative",IF(R3="Negative","Negative",IF(O3="Refer","Refer",IF(P3="Refer","Refer",IF(Q3="Refer","Refer",IF(R3="Refer","Refer","Positive")))))))) 

我发现4个单元格中的最终状态有正面,负面,参考,待定或空白