前两天在论坛上看到一个求助贴:[求助]成绩分数转等级详细需求:
说明:大于等于“优秀”分数的,赋值“优秀”
大于等于“良好”分数且小于“优秀”分数的,赋值“良好”
大于等于“合格”分数且小于“良好”分数的,赋值“合格”
小于“合格”分数的,赋值“待合格“
具体数据表格:
1、原始成绩:
2、参数设置:等级划分标准
3、成绩等级(结果):格式与原始成绩类似,少了一列“考号”。
这种划分等级的需求,用LookUp函数应该也可以处理,不过,他这个每个科目的等级分标准并不完全相同,处理起来还是有点麻烦,我们就不去费这个脑筋了,我们还是来看看用VBA如何来处理吧:
基本思路:
1、我们准备设计一个自定义函数,根据科目、分数,可以出得等级;2、我们设置一个类模块SubjectGrade,定义三个变量:Public SubjectName As String '//科目名称Public GradeName As String '//等级名称Public MinimumScore As Single '//等级分下限
3、我们定义一个过程,把各科目、各等级的下限分数按从高到低的顺序添加到集合;4、我们定义一个自定义函数GetGrade,根据科目、分数,到集合中查找以应的等级;5、我们在成绩等级(结果)表中,使用getGrade函数,根据原始成绩表中的科目、分数,得出相应等级。