俞木发
老师们都知道,每次开家长会的时候都要制作每个学生的成绩条,这样需要在原来的成绩统计数据加上表头(即各个科目行)。如果成绩数据很多,这一工作便显得有些繁琐。笔者今天就教大家几个高效完成成绩通知条制作的方法。
无中生有 使用辅助列添加
成绩通知条的主要操作就是在原来的每行统计数据前添加一个表头数据,因此我们可以通过添加辅助列的方法实现。具体原理就是先复制原来的表头内容(具体行数和原来的学生姓名人数一致),最后再通过排序将表头内容依次和姓名列组合即可。这里以下图作为示例(图1)。
先选中原来的编号序列A2:A4,然后将其复制到A5:A7,继续选中B1:I1的标题内容复制,然后将其粘贴到B5:I7,使得这些单元格填满表头内容(图2)。
按住Ctrl+A全选数据,接着点击“数据→排序”,主要关键字是“序号”,次序选择“升序”,这样Excel会按照序号进行升序排列,因为添加辅助列序号和原来的一致,所以可以将每个学生姓名行和复制的表头行排列在一起。为了美观,最后可以将A列删除(图3)。
巧用函数 引用标题行
在Excel中很多高效的操作都是借助函数来完成,同样上述添加表头也可以借助Vlookup函数。因为成绩单的要求实际上是引用表头的内容和学生行的内容,表头内容是一样的,学生行则是根据序号进行引用。因此我们可以先复制表头内容,接着使用Vlookup引用学生成绩即可。
首先在A8:I8行复制上述表头的内容,接着在A9输入序号“1”,在B9输入公式“=VLOOKUP($A9,$A$ 2:$I$4,COLUMN(),0)”,向右填充完成学生成绩的提取。
为了方便后续裁剪,这里还可以再引用一个空行,填充完成绩后继续选中A8:I10的内容,其中A10为空行,然后该区域作为填充模块(图4)。
按住鼠标下拉进行填充,这样表头、学生行、空行的内容会被自动引用。如果后续需要增加学生的成绩引用,只要按照上述格式在后续的单元格进行添加,接着操作同上,下拉填充列表即可快速完成所需的成绩单(图5)。
多表数据 VBA快速添加
上述方法仅仅是对一张工作表的数据进行表头的操作,如果数据保存在不同的工作表中,比如需要将保存在不同工作表的各个班级的数据进行各自表头的添加,此时借助VBA脚本即可快速插入表头。假设一班和二班的数据分别保存在各自对应的工作表“一班数据”和“二班数据”中,现在需要在一班数据工作表中将两个班级的数据全部完成表头的添加。
按下Alt+F11打开VB编辑窗口,点击“插入→模块”,按提示插入下列的代码(图6):
Sub 插入表头()
Dim i As Long ,定义一个变量
For i = 1 To 3 ,从第一行直到第三行间隔插入表头,具体插入数量与学生数对应
ActiveCell.Rows("1:1"). EntireRow.Select
Selection.Copy
ActiveCell.Offset(2, 0).Rows("1:1").EntireRow.Select
S e l e c t i o n . I n s e r t Shift:=xlDown
ActiveCell.Select
Next
End Sub
完成代码的编辑后返回Excel窗口,点击“开发工具→宏”,可以看到新增一个名为“插入表头”的宏,点击“选项”,将该宏运行的快捷键设置为Ctrl+R(图7)。
这样将鼠标定位在A1,然后按下Ctrl+R即可完成表头文件的添加。操作同上,在打开的每个工作表中依次定位到A1,重复上述操作即可完成所有成绩单表头的制作(图8)。