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进行二进制搜索以查找值(只要数据已排序)正是您希望它执行的操作.
一个简单的解决方案是将公式简单地分成两个单元格
=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)
归档时间: |
|
查看次数: |
13723 次 |
最近记录: |