如何使用excel打印学生成绩单
在创建空的成绩单之前,请解释一下制作过程。为了说明问题,这里使用的Excel样表命名为“学生成绩报告单”,在“用Access制作学生成绩报告单”的基础上做了一些小改动:第1行是项目名称,具体学生信息从第2行开始,学号、姓名、各科内容都改为对应的项目名称加编号,如图1所示。准备好原始数据后,制作每个学生的报告单的工作,说到底就是把“学生报告单”工作表的每一行转换成一个单独的表格,每行一个项目。具体操作过程如下:在工作簿中插入一张空白工作表,后续工作在这张工作表中进行。该工作表的名称可以自定义,并且不会影响结果。这里用Excel的名字“Sheet1”吧。第一步,合并两个单元格,A1和B1,填入表头。这里要填的是汉字“学生成绩单”,也可以根据实际需要更改。然后在单元格A2中填入第一个项目的名称。为了保证通用性和方便性,不直接填写汉字“学号”,而是填写公式“=OFFSET(学生报告单!$ A $1,0,mod (row(),11)-2)”,让Excel获取“学生报告单”中单元格A1的内容。解释一下这里用到的三个函数:ROW()返回当前单元格的行号,MOD函数返回两个参数相除后的余数,OFFSET函数用于以指定的引用为参考帧得到新的引用。这里“学生报告单”工作表中的单元格A1是固定的参照系,所以绝对地址写成“$A$1”。因为项目名称都在1行,所以相对于单元格A1的行偏移量为0,列偏移量取决于位置。如图2所示,每个学生的成绩单内容为***10,相邻两表之间加一个空行,* * 11。填A2单元格再填公式“=偏移(学生报告单!$A$1,INT(ROW()/11)+1,MOD(ROW(),11)-2)”。该公式与单元格A2中的公式非常相似。解释一下区别:INT的作用在很多计算机编程语言中都是一样的,它的作用是将数值向下舍入到最接近的整数。使用“ROW()/11”的原因是如上所述每个学生占用11行,根据行号取相应的内容。因为1线,复制粘贴学生成绩是唯一剩下的工作。这里用Excel的填充柄更方便。因为有些用户不知道Excel中神奇的填充柄功能,这里有一个介绍:“填充柄”是一个位于所选区域右下角的黑色小方块。当鼠标指向“填充柄”时,鼠标指针变为黑色十字。这时候按住鼠标左键,拖动鼠标通过需要填充数据的单元格区域,然后松开鼠标左键就可以快速完成复制,比经典的复制粘贴操作更方便。如果找不到填充柄,请单击“工具”菜单上的“选项”,并检查是否在“编辑”选项卡中选中了“单元格拖放功能”复选框。如果没有,请单击选择它。在复制之前,选择单元格A2和B2,并使用格式工具栏中的边框来选择单元格的边框,以便它们可以与单元格的边框格式一起复制,然后使用填充柄将它们拖到10行,以便填充单元格A2到B10。在前面的公式中,数字11多次出现,行11作为空行,所以内容不填。用“填充柄”复制时注意不要复制到这一行。现在,单元格A1和B11之间的区域是第一个学生成绩单的内容。选中这个区域,注意不要错过11线,然后用“填充柄”向下拖动。副本以每个学生11为单位制作。打印报告单报告单打完了,接下来的问题就是打印了。为了节约纸张,往往需要在一张纸上并排打印多个栏目,然后再进行裁剪。一个偷懒的办法就是在Word中选择、复制、粘贴上面得到的工作表的有效内容,通过Word的格式菜单的列功能设置需要的列数,然后调整页边距等值,保证报告单的内容不被打断,这样就可以在一页打印多列。这种方法的缺点是用两种软件有点繁琐,而且Word的列印是先竖后横的,不符合我们的习惯,所以暂时不推荐。我们用Excel来解决吧。理解上面的公式,无非是做一些改变。以在每张纸上打印4列抄本为例,如图3所示。无论每张纸上打印多少列报告单,在“学生报告单”的第一行,项目名称总是一样的,所以单元格A1的公式也是一样的。注意,单元格B2的公式发生了变化,新公式为“=OFFSET(学生报告单!$ A $1,INT(ROW()/11)* 4+INT(COLUMN()/3)+1,mod (row(),11)-2)除以3因为报告单有2列,加上中间一个空列,就是3。乘以4相当于在每张纸上打印4列成绩单。如果要打印8列成绩单,那就改为乘以8,以此类推。当复制整行或整列时,Excel会在行或列的开头显示“填充柄”。要在一张纸上打印4列成绩单,需要将A到C列的内容复制到l列,方法是选中A到C列,用“填充柄”向右拖动。在完成整个复印工作时,复印顺序的两个方向没有先后,只要复印足够多,不遗漏即可。现在,我得到了如图3所示的成绩单。您可以通过调整页边距等打印参数进行打印。写公式是关键。本文介绍的方法的关键是公式的书写。了解了公式之后,就可以修改公式,以适应需求的变化。单元格A2的公式永远是“=偏移(学生成绩单!$ A $ 1,0,mod (row(),11)-2)”,我们来看看B2单元格中的公式:每张纸上打印1列成绩单的公式(以下简称“公式1”)为“=OFFSET(。$ A $1,int(row()/11)+1,mod (row(),11)-2)”,以及每张纸上打印四列成绩单的公式(以下简称”。$ A $1,int(row()/11)* 4+int(column()/3)+1,mod (row(),11)-2)可以看出,公式1是公式2的特例。可以实现引用功能的Excel函数除了OFFSET之外还有INDEX和INDIRECT。比如等式2可以改成“=INDEX(学生报告单!$1: $65536,int(row()/11)* 4+int(column()/3)+2,mod (row(),11)-65438。R " & amp& ampINT(ROW()/11)* 4+INT(COLUMN()/3)+2 & amp;& amp" C "和。& ampMod (row(),11)-1,false)”,请注意,由于offset函数使用OFFSET,而INDEX和INDIRECT函数使用指定的行和列,因此调整和减法的值之差为1,建议使用OFFSET函数。在上述方法中,无论每张纸打印多少列成绩单,都将带有学生成绩单的两个工作表“学生报告单”和“Sheet1”保存在同一个Excel工作簿文件中,便于查找、使用、保存和管理。这种方法的另一个好处是,如果需要修改“学生报告单”工作表的内容,无论其表名、项目名或数据,相应的修改都会立即在学生报告单的工作表中自动完成,不需要手动同步两个工作表之间的修改(使用间接函数时更改“学生报告单”工作表的表名这种特殊情况除外, 当然了),这是Excel导入数据到Word、Access等软件的方法无法比拟的。 因此,在复制并打开上学期制作的Excel文件后,只需在“学生报告单”工作表中填写本学期的数据即可打印出学生报告单。