夜雨聆风学习资料网

ARTICLE · 1184898

学生成绩单怎么批量制作?Excel自动查询成绩,打印一人一张

学生成绩单怎么批量制作?Excel自动查询成绩,打印一人一张

每逢期中考试和期末考试,老师比较头疼的一项工作,就是给学生做个人成绩单。

一个班有50名学生,每个学生的姓名、学号,以及语文、数学、英语的分数都不一样。如果一份一份填写,再分别打印出来,不但需要花不少时间,还可能把学生的成绩填错。

其实这件事可以用Excel来完成。先做一张全班学生的成绩总表,再建立一张个人成绩单模板,就能够根据学号自动找到学生成绩。再使用一段简单的VBA代码,还可以一次打印全班的成绩单,每名学生一张,不用来回修改。

下面按照步骤来看一下怎么操作。

第一步:建立学生成绩总表

先打开Excel,新建一个工作簿,把第一个工作表的名称改为“成绩总表”。

从A列开始,按照顺序填写下面这些表头:

A列
B列
C列
D列
E列
F列
G列
H列
I列
学号
姓名
班级
语文
数学
英语
总分
平均分
排名

假设这个班有50名学生,相关数据填写在第2行到第51行。

其中,语文、数学、英语三门课的成绩由老师自己输入,另外几项成绩可以交给公式计算。

在G2单元格输入:

=SUM(D2:F2)

这个公式用来算出三门学科的总分。

在H2单元格输入:

=ROUND(AVERAGE(D2:F2),1)

这个公式用于计算平均分,结果保留一位小数。

在I2单元格输入:

=RANK.EQ(G2,$G$2:$G$51,0)

这个公式按照总分给学生排班级名次,总分最高的学生排在第一名。

选中G2至I2,再向下填充到第51行,全班学生的总分、平均分和排名就会一起计算出来。

需要注意,这个排名公式适用于总表只记录一个班级的情况。如果总表里有好几个班,就需要按班级分别计算排名。

第二步:制作个人成绩单模板

完成成绩总表以后,点击工作表下方的“+”,再新建一个工作表,把它命名为“个人成绩单”。

先选中A1到D1单元格,点击“合并后居中”,填写“学生个人成绩单”。

然后在A列按顺序写入:

  • A2:学号

  • A3:姓名

  • A4:班级

  • A5:语文

  • A6:数学

  • A7:英语

  • A8:总分

  • A9:平均分

  • A10:班级排名

旁边的B列,用来显示每个学生对应的信息。

这里的B2是填写学号的地方。以后只要换掉B2中的学号,下面显示的成绩就会跟着更新。

第三步:输入公式,自动查询学生成绩

接下来这一步,是整篇教程最需要注意的部分。

假设在B2里填写学生学号240101,现在要让Excel自己查出这名学生的姓名。

在B3输入下面的公式:

=XLOOKUP($B$2,成绩总表!$A$2:$A$51,成绩总表!$B$2:$B$51,"未找到")

按回车以后,Excel就会根据这个学号,到成绩总表里找到相应的学生姓名。

接着查询语文分数。

在B5输入:

=XLOOKUP($B$2,成绩总表!$A$2:$A$51,成绩总表!$D$2:$D$51,"未找到")

数学、英语和总分等内容,也可以照着这个办法查询,只需要把公式中返回数据的列分别换成E列、F列、G列等对应列。

比如,查总分就返回G列的数据;查排名就返回I列的数据。

这些公式都设置好以后,可以先试着检查一下。

把B2里的学号换成另一名学生的学号,看看姓名、班级和每门学科的成绩会不会自动改变。

如果都能正常显示,就说明自动查询这一步已经设置好了。

还有一点要留意,两张表里的学号格式需要保持一致,不能一张表使用文本格式,另一张表使用数字格式。

第四步:设置成绩单打印格式

现在个人成绩单已经可以自动查成绩了,接下来要把打印页面设置好。

打开“个人成绩单”工作表,选中A1到D14这一块区域。

点击“页面布局”,找到“打印区域”,然后选择“设置打印区域”。

接着按下面的要求进行设置:

  1. 纸张大小选A4。

  2. 页面方向选纵向。

  3. 缩放调整为宽1页、高1页。

  4. 根据页面情况调整行高、列宽和字号。

  5. 给表格添加边框,让成绩单内容更加清楚。

设置好后,按Ctrl+P打开打印预览,看看整张成绩单是不是完整地放在一页纸上。

这里还可以在成绩单下方留出教师评语和班主任签名的位置,方便以后使用。

第五步:全班成绩单自动批量打印

虽然前面已经可以自动查询成绩了,但如果全班有50名学生,还要一个个更换学号再打印,操作起来依然比较费事。

如果想把全班的成绩单一次打印出来,可以使用Excel里的VBA功能。

先把工作簿另存为“.xlsm”格式。

随后按Alt+F11,打开VBA编辑器。

点击“插入”里的“模块”,再把下面的代码复制进去:

Sub 批量打印成绩单()
Dim i As Long
Dim ws As Worksheet
Dim card As Worksheet

Set ws = Sheets("成绩总表")
Set card = Sheets("个人成绩单")

For i = 2 To ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    If ws.Cells(i, 1).Value <> "" Then
        card.Range("B2").Value = ws.Cells(i, 1).Value
        card.Calculate
        card.PrintOut Copies:=1
    End If
Next i

MsgBox "成绩单已发送到打印队列!"
End Sub

保存以后回到Excel,按Alt+F8,选中“批量打印成绩单”,再点击运行。

Excel会依次读取成绩总表里的学号,每读到一个学号,就切换到这名学生的个人成绩单,并发送一份打印任务。

如果名单里有50名学生,程序就会依次发送50份成绩单,不需要老师每次都手动换学号。

特别提醒: 运行之前,先检查打印区域是不是只有一张成绩单,同时确认默认打印机已经设置好。最好先用3名模拟学生的数据试打印,以免一次打印出错,浪费纸张。

这个功能需要在支持VBA的Excel桌面版中操作,Excel网页版无法直接运行上面这段代码。

第六步:以后考试还能重复使用

这份表格还有一个实用的地方,就是下一次考试不需要全部重新制作。

等到下次考试,只要复制这个工作簿,再把成绩总表里的考试分数更新一下,个人成绩单就会查询到新的成绩。

如果姓名、学号、班级这些信息没有变化,就可以继续使用原来的内容。

主要需要修改的,是每门学科的分数,还有考试名称和考试时间。

当然,正式打印以前,还要检查有没有缺考、成绩空白、学号重复等问题,避免成绩单出错。学生的真实成绩也是需要保护的信息,不建议随便公开分享带有姓名和分数的工作簿。

对于经常要做学生成绩单的班主任来说,先花一些时间把Excel模板建立好,后面每次考试都可以继续用。

从统计分数、查询个人成绩,再到批量打印,都可以使用同一份成绩数据来完成,能减少不少重复填写的工作。

相关学习资料