excel判断成绩等级及格、优秀等的方法总结
2017-01-09 11:41阅读:
利用excel判断成绩等级,假设当平均成绩小于60时为不及格,大于等于60并且小于70时为及格,大于等于70并且小于90时为一般,大于等于90时为优秀的方法汇总。
工具/原料
- excel
- VBA
利用函数的方法
-
利用函数if的方法:在B2单元格输入公式:=IF(A2<60,'不及格',IF(A2>=90,'优秀',IF(AND(A2>=60,A2<70),'及格','一般'))),下拉填充即可。

-
利用函数lookup的方法:在B2单元格输入公式:=LOOKUP(A2,{0,60,70,90;'不及格','及格','一般','优秀'}),下拉填充即可。
-
利用函数index结合函数match的方法:在B2单元格输入公式:=INDEX({'不及格';'及格';'一般';'优秀'},MATCH(A2,{0;60;70;90})),下拉填充即可。

-
利用函数text的方法:在B2单元格输入公式:=TEXT(0&A2-60,'[<10]及格;[<30]一般;优秀;不及格'),下拉填充即可。
简要介绍下TEXT函数的用法:TEXT函数的条件格式公式样式为:text(数据源,'[条件1]显示格式;[条件2]显示格式;否则显示格式;文本显示格式'),本例中的0&的意思为:当>=0时返回本身,负数返回文本。

-
利用函数choose结合函数sum的方法:在B2单元格输入公式:=CHOOSE(SUM(1*(A2>={0,60,70,90})),'不及格','及格','一般','优秀'),下拉填充即可。

END
利用VBA自定义函数的方法
按ALT+F11打开VBE编辑器,在工程窗口下的Microsoft Excel对象右键-插入-模块,新建一个模块1。

自定义函数grade,粘贴如下代码:
Option Explicit
Function grade(r As Range)
If r < 60 Then
grade = '不及格'
ElseIf r >= 60 And r < 70 Then
grade = '及格'
ElseIf r >= 70 And r < 90 Then
grade = '一般'
Else
grade = '优秀'
End If
End Function
- 3
在B2单元格输入公式:=grade(A2),下拉填充即可。

END
利用VBA自动填充的方法
-
按ALT+F11打开VBE编辑器,双击工程窗口下的sheet1(sheet1)项(本示例存在于sheet1表,请根据实际情况双击粘贴代码),在右边的代码窗口粘贴如下代码:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As
Range)
If Target.Column = 1 And Target.Row > 1 Then
'限定仅当A列第二个单元格即A2开始的单元格内容变化时触发,此处请根据实际需要更改
If IsNumeric(Target.Value) Then
If Target.Value < 60 Then
Target.Offset(0, 1) = '不及格'
ElseIf Target.Value >= 60 And Target.Value < 70
Then
Target.Offset(0, 1) = '及格'
ElseIf Target.Value >= 70 And Target.Value < 90
Then
Target.Offset(0, 1) = '一般'
Else
Target.Offset(0, 1) = '优秀'
End If
Else
MsgBox '输入类型不合法,请输入数字!'
Target.ClearContents
Target.Offset(0, 1).ClearContents
End If
End If
End Sub

-
当在A列A2开始的单元格区域输入内容变化时,会自动在相邻单元格填入平均成绩向对应的成绩等级;当输入的内容为非数字时,会弹出提示框。如图示:

END
注意事项
- VBA自动填充的方法仅限手动填充输入,不支持复制粘贴,特此注意。