Excel中的嵌套IF语句[超过7个允许的限制]

Alk*_*lks 9 excel vba if-statement nested worksheet-function

我正在尝试创建一个电子表格,根据他们的分数自动为学生提供成绩.

我显然已经达到Excel的嵌套IF语句限制,即7.

这是我的if语句:

=IF(O5>0.895,"A+",IF(O5>0.845,"A",IF(O5>0.795,"A-",IF(O5>0.745,"B+",IF(O5>0.695,"B",IF(O5>0.645,"B-",IF(O5>0.595,"C+",IF(O5>0.545,"C","D"))))))))
Run Code Online (Sandbox Code Playgroud)

我在网上看到我可以创建一个VBA脚本然后分配它,但我对VBA一无所知....所以如果有人可以帮我写一个VBA,那就太棒了.

它仍然缺少C级和任何低级应该被授予D标记.

这是我试图创建的评分方案......:

A + 89.500 - 100.000通过优异

84.500 - 89.490优异传球

A- 79.500 - 84.490优异成绩

B + 74.500 - 79.490优异通行证

B 69.500 - 74.490优异成绩

B- 64.500 - 69.490优异成绩

C + 59.500 - 64.490通过

C 54.500 - 59.490通行证

C- 49.500 - 54.490通过

D 0.000 - 49.490指定失败

我不介意去VBA路线,但是我对VB语言的理解绝对是最小的(不喜欢它)...如果这太繁琐了,我想创建一个小的php/mysql应用程序.

SLa*_*aks 21

VLOOKUP通过将单独的表映射下限到字母,您可以使用公式更优雅地完成此操作.映射表必须按等级编号升序排序.

例如:

A     B
0     D
49.5  C-
54    C
59.5  C+
...   ...

式:

=VLOOKUP(SomeCell, $A$1:$B$9, 2, TRUE)
Run Code Online (Sandbox Code Playgroud)

$A$1:$B$9等级表的范围在哪里.($如果复制公式,标志告诉Excel不要移动参考).作为最后一个参数
传递TRUE将导致Excel进行二进制搜索以查找值(只要数据已排序)正是您希望它执行的操作.

  • 然后你应该通过点击空心支票来接受这个答案. (4认同)

Cod*_*ezy 0

一个简单的解决方案是将公式简单地分成两个单元格

=IF(O5>0.895,"A+",IF(O5>0.845,"A",IF(O5>0.795,"A-",<Other cell ref here>)))
Run Code Online (Sandbox Code Playgroud)

其他细胞:

=IF(O5>0.745,"B+",IF(O5>0.695,"B",IF(O5>0.645,"B-",IF(O5>0.595,"C+",IF(O5>0.545,"C","D")))))
Run Code Online (Sandbox Code Playgroud)