Excel报表再处理(二):统计成绩表的总分与平均分

先按图示自行建立Excel成绩表格或者直接复制易点成绩统计软件演示文件夹的“2011年高三级第一学期期末考试成绩表.xls”,在打开的Excel表格按《Excel报表再处理(一)》文中所述的方法在VBA编辑器里选择BeforeDoubleClick事件(工作表双击事件之前触发)后输入如下代码:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim studentCount, subjectCount As Integer
    studentCount = 463
    subjectCount = 5
    Sheet1.Cells(2, 9) = "总分"
    Sheet1.Cells(2, 10) = "平均分"
    For i = 1 To studentCount
       Sheet1.Cells(i + 2, 9) = Sheet1.Cells(i + 2, 4) + Sheet1.Cells(i + 2, 5) + Sheet1.Cells(i + 2, 6) + Sheet1.Cells(i + 2, 7) + Sheet1.Cells(i + 2, 8)
       Sheet1.Cells(i + 2, 10) = Sheet1.Cells(i + 2, 9) / subjectCount
    Next
End Sub

分析一下代码,大家可以参考代码后的注释进行理解。

Dim studentCount, subjectCount As Integer    '显式定义2个变量为整形,你想偷懒的话也可以不定义直接赋值,作用范围只有函数内部
    studentCount = 463    '学生数
    subjectCount = 5        '学科数
    Sheet1.Cells(2, 9) = "总分"    '标题行在第2行,第9列的单元格赋值“总分”
    Sheet1.Cells(2, 10) = "平均分"    '标题行在第2行,第10列的单元格赋值“平均分”
    For i = 1 To studentCount    '把表格的所有学生做一个循环以计算他们的总分和平均分
       Sheet1.Cells(i + 2, 9) = Sheet1.Cells(i + 2, 4) + Sheet1.Cells(i + 2, 5) + Sheet1.Cells(i + 2, 6) + Sheet1.Cells(i + 2, 7) + Sheet1.Cells(i + 2, 8)    'i+2其中2是因为顶部有2行用于标题,后面是当前行的几个学科分值,学科多的话你也可以加个循环
       Sheet1.Cells(i + 2, 10) = Sheet1.Cells(i + 2, 9) / subjectCount    '算完总分再除以学科数就可以得到平均分了
    Next

就这几行代码,回来在工作表上双击后所有学生的总分和平均分就统计出来了,以后你就可以把带有宏的工作簿做样本文件进行数据录入,完成后在宏里面改下参数就可以重复相同的统计了。当然在软件设计里就没这么简单了,软件里会生成班级类、学生类等等,然后导入数据的时候会根据类创建一个个班级、学生等对象后再进行统计,这些就要复杂得多了当然只有这样才能灵活地解决各种复杂的需求。

L.Q.R  210403(待继)

(0)

相关推荐

  • VBA统计一个EXCEL工作薄内多张工作表内最大行数的方法

    VBA统计一个EXCEL工作薄内多张工作表内最大行数的方法

  • Excel案例(二)——用户表

    知识点: 1.数据验证:设置录入位数. 2.多函数应用:判断当前年份是否为闰年. 3.日期函数:年龄. 4. REPLACE函数:号码升级. 5. AND函数:多个条件判断. 6. RANK.EQ函数 ...

  • Excel报表再处理(一):宏

    成绩统计软件都是按固定的算法进行统计的,输出的数据报表肯定不会100%符合不同学校老师的需求.这时我们可以通过Excel的宏对输出的报表进行二次处理.其实,说白了掌握Excel的VBA你都可以自行还原 ...

  • Excel报表再处理(三):图表

    不同的学校有不同的统计需求在通用软件无法实现所需功能的时候,我们还可以对一键输出后的数据报表进行二次数据加工或图表生成.本文将介绍Excel图表的创建,在这之前我们先准备好图表的数据源.如图所示我们直 ...

  • 统计成绩常用Excel函数公式12例,工作早做完,告别加班

    [温馨提示]亲爱的朋友,阅读之前请您点击[关注],您的支持将是我最大的动力! 新学期马上开始了,是不是又要对学生分数统计分析了.今天阿钟老师分享几个统计成绩常用的Excel函数公式,让分数统计分析变得 ...

  • 利用EXCEL函数功能对学生成绩进行“中国式排名”(二)

    二.用FREQUENCY + COUNT函数来实现. 在L3单元格内输入数组公式"=COUNT(1/FREQUENCY(--$J$3:$J$122,IF($J$3:$J$122>=J3 ...

  • Excel应用大全 | 二维表转换一维表

    一本书教会你分分钟搞定数据分析! 常见的二维表是一种交叉表,有行.列两个方向的标题交叉定义数据的属性.二维表在工作和生活中应用十分广泛,如课程表.工资表.人员花名册.价格表等.一维表则是每一行都是完整 ...

  • Excel 2016让二维表快速转换为一维表

    Step1:准备原始数据,如图1. 图 1 Step2:单击数据区域任意表格,点击菜单数据→从表格,这样Excel就会自动将区域转换为"表",并且弹出"表1 查询编辑器& ...

  • Excel案例(二十四)——员工工资表

    一起来学office,提高办公技能 案例讲解 知识点 1.在sheet4中,使用条件格式,将A1:A20单元格区域中有重复值的单元格填充为红色. 2.在sheet4的B1单元格中输入公式,判断当前年份 ...

  • Excel案例(二十三)——各分厂员工信息表

    知识点: 1. 数据验证:设置不能输入重复值. 2. 单元格格式设置:输入分数. 3. IF函数:数据判断. 4. 数组公式+时间函数:批量计算年龄. 5. IF+MOD+YEAR+OR+AND函数: ...