新浪博客

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

  1. 3
    在B2单元格输入公式:=grade(A2),下拉填充即可。

    END
利用VBA自动填充的方法
  1. 按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

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

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

我的更多文章

下载客户端阅读体验更佳

APP专享