论文部分内容阅读
分班是教务处的一项常规工作。传统方法用“轮回法”:假定按成绩分4个班,第一轮,把1、2、3、4名分别分到1、2、3、4班;第二轮,把5、6、7、8名分别分到4、3、2、1班,依此类推。这样1班和4班每两轮有最好的和最差的,但是2班和3班却总是分到中间的学生。以1班为例,分到1、8、9、16、17、24等名次,相邻两名次之间的差距两次中就有一次为7,太大了;另外一次为1,太小了。
改进方法为“错位法”:假定按成绩分4个班,第一轮,把1、2、3、4名分别分到1、2、3、4班;第二轮,把5、6、7、8名分别分到2、3、4、1班;第三轮,把9、10、11、12名分别分到3、4、1、2班;第四轮,把13、14、15、16名分别分到4、1、2、3班,依此类推。由于下一轮最好的名次分到下一班,这样就保证了每个班在四轮中都能分到最好、最差和中间的学生。以1班为例,分到1、8、11、14、17、24等名次,相邻两名次之间差距四次中只有一次为7,其余三次为3,太小的差距也消除了。分别绘制应用两种方法分班后班级名次与年级名次的关系折线图,图1为“轮回法”,锯齿明显;图2为“错位法”,波动很小,接近直线。可见“错位法”更能使各班的名次分布均匀。随着分班数的增多,“错位法”的优势会更加明显。
(1)
(2)
下面用实例介绍“错位法”的实施步骤。所给Excel工作簿包含3个工作表(见图3):学生信息、自动统计、同班重名。学生信息表标题列A1到H1分别为班级、座号、姓名、性别、总分、科类、学籍、编号。要求按性别、学籍、总分进行文理分班,理科分8个班,文科分4个班。
第一步按分班指标科类、性别、学籍、总分这4关键字排序。Excel最多可直接按3个关键字排序。超过3个关键字,可用“二次排序”:第一次,单击“数据→排序”,在弹出的“排序”对话框中,选择主要关键字为“性别”,升序(先男生后女生,若男、女生第一名分到同一班,降序);次要关键字为“学籍”,降序(先正取后借读);第三关键字为“总分”,降序,单击“确定”排序。第二次,在“排序”对话框中,选择主要关键字为“科类”,升序(先理科后文科);次要关键字和第三关键字为“无”,单击“确定”排序。
第二步在H2、H3单元格分别输入0、1,选中H2到H3单元格,松开鼠标左键,移动鼠标到H3单元格的右下角,等出现填充柄时,双击可快速填充H4及以下各单元格为序列2、3、4……。单击A2单元格,输入“错位法”分8个班的分班公式“=MOD(INT(H2/8)+MOD (H2,8),8)+1”,双击填充柄即可按“错位法”序列快速填充以下各单元格。拖动垂直滚动条,检查结果正确与否,看到文科班第一个学生时停止拖动,假定该生在第486行,单击A486单元格,输入分4个班的公式“=MOD(INT(H2/4)+MOD(H2,4),4)+1+8”(因文科班从9班开始,所以再加8),填充以下单元格并检查结果正确与否,电脑自动分班结束。可见“错位法”比“轮回法”更加简单、快捷、高效。
第三步巧妙利用Excel函数、公式可以自动统计分班结果,为手动调整并使各项指标平衡提供依据。选择“自动统计”工作表,在A1到G1单元格分别输入班级、学生数、男生数、女生数、总分平均分、正取数、借读数,用序列1~12填充A2~A13单元格;单击B2单元格,输入公式“=COUNTIF(学生信息!$A:$A,自动统计!$A2)”;在C2单元格中输入公式“=SUM((学生信息!$A$2:$A$2000=自动统计!$A2)*(学生信息!$D$2:$D$2000= "男"))”后按“Ctrl+Shift+Enter”组合键变为数组公式,公式被放在“{}”中了,对多重条件计数均可仿照此公式;在D2、F2、G2单元格中输入与C2类似的公式;在E2单元格中输入公式“=SUMIF(学生信息!$A:$A,自动统计!$A2,学生信息!$E:$E)/COUNTIF(学生信息!$A:$A,自动统计!$A2)”。填充以下单元格。
分班及调整过程中可能导致同班有重名学生,可设计命令按钮随时检查。选择“同班重名”工作表,单击“工具→宏→录制新宏”,确定,将下列操作过程录制成宏:
①全选工作表,按Delete键删除数据。
②在A1、B1、C1单元格中分别输入标题“姓”、“班级名字”、“重名标记”,在A2单元格中输入公式“=IF(LEN(学生信息!$C2)>2,LEFT(学生信息!$C2,1),"")”,在B2单元格中输入公式“=学生信息!$A2&RIGHT(学生信息!$C2,2)”。
③选定A2至B2单元格,填充A2至B2000单元格。
④按班级名字降序排列A1至C2000单元格。
⑤在C2单元格中输入公式“=IF($B2="","",IF(OR($B2=$B1,$B2=$B3),"▲",""))”, 填充C2至C2000单元格。
⑥按重名标记降序排列C1至C2000单元格。
点击“停止录制”按钮,单击“工具→宏→宏”编辑刚才录制的宏,剪切掉多余的代码后,全选复制,然后关闭。单击“视图→工具栏”,勾选“控件工具箱”,在控件工具箱中单击“命令”按钮,在该表适当位置单击,可插入一个命令按钮,右击该命令按钮,在弹出菜单中选择“属性”,出现“属性”对话框,把“Cation”属性的值从“CommandButton1”改为“重新检查”,关闭该对话框。双击插入的“命令”按钮,打开VB编辑器,在“End Sub”之前粘贴刚才复制的代码,保存、关闭。
“学生信息”表还可进一步完善,把一些常用的功能做成命令按钮。比如按班级、总分排序以便排座号及打印输出,按姓名排序以便快速查找学生,按性别、总分排序是最常见的分班指标,班级间插入分页符也是很实用的功能。大家可以去自己试试:)
改进方法为“错位法”:假定按成绩分4个班,第一轮,把1、2、3、4名分别分到1、2、3、4班;第二轮,把5、6、7、8名分别分到2、3、4、1班;第三轮,把9、10、11、12名分别分到3、4、1、2班;第四轮,把13、14、15、16名分别分到4、1、2、3班,依此类推。由于下一轮最好的名次分到下一班,这样就保证了每个班在四轮中都能分到最好、最差和中间的学生。以1班为例,分到1、8、11、14、17、24等名次,相邻两名次之间差距四次中只有一次为7,其余三次为3,太小的差距也消除了。分别绘制应用两种方法分班后班级名次与年级名次的关系折线图,图1为“轮回法”,锯齿明显;图2为“错位法”,波动很小,接近直线。可见“错位法”更能使各班的名次分布均匀。随着分班数的增多,“错位法”的优势会更加明显。
(1)
(2)
下面用实例介绍“错位法”的实施步骤。所给Excel工作簿包含3个工作表(见图3):学生信息、自动统计、同班重名。学生信息表标题列A1到H1分别为班级、座号、姓名、性别、总分、科类、学籍、编号。要求按性别、学籍、总分进行文理分班,理科分8个班,文科分4个班。
第一步按分班指标科类、性别、学籍、总分这4关键字排序。Excel最多可直接按3个关键字排序。超过3个关键字,可用“二次排序”:第一次,单击“数据→排序”,在弹出的“排序”对话框中,选择主要关键字为“性别”,升序(先男生后女生,若男、女生第一名分到同一班,降序);次要关键字为“学籍”,降序(先正取后借读);第三关键字为“总分”,降序,单击“确定”排序。第二次,在“排序”对话框中,选择主要关键字为“科类”,升序(先理科后文科);次要关键字和第三关键字为“无”,单击“确定”排序。
第二步在H2、H3单元格分别输入0、1,选中H2到H3单元格,松开鼠标左键,移动鼠标到H3单元格的右下角,等出现填充柄时,双击可快速填充H4及以下各单元格为序列2、3、4……。单击A2单元格,输入“错位法”分8个班的分班公式“=MOD(INT(H2/8)+MOD (H2,8),8)+1”,双击填充柄即可按“错位法”序列快速填充以下各单元格。拖动垂直滚动条,检查结果正确与否,看到文科班第一个学生时停止拖动,假定该生在第486行,单击A486单元格,输入分4个班的公式“=MOD(INT(H2/4)+MOD(H2,4),4)+1+8”(因文科班从9班开始,所以再加8),填充以下单元格并检查结果正确与否,电脑自动分班结束。可见“错位法”比“轮回法”更加简单、快捷、高效。
第三步巧妙利用Excel函数、公式可以自动统计分班结果,为手动调整并使各项指标平衡提供依据。选择“自动统计”工作表,在A1到G1单元格分别输入班级、学生数、男生数、女生数、总分平均分、正取数、借读数,用序列1~12填充A2~A13单元格;单击B2单元格,输入公式“=COUNTIF(学生信息!$A:$A,自动统计!$A2)”;在C2单元格中输入公式“=SUM((学生信息!$A$2:$A$2000=自动统计!$A2)*(学生信息!$D$2:$D$2000= "男"))”后按“Ctrl+Shift+Enter”组合键变为数组公式,公式被放在“{}”中了,对多重条件计数均可仿照此公式;在D2、F2、G2单元格中输入与C2类似的公式;在E2单元格中输入公式“=SUMIF(学生信息!$A:$A,自动统计!$A2,学生信息!$E:$E)/COUNTIF(学生信息!$A:$A,自动统计!$A2)”。填充以下单元格。
分班及调整过程中可能导致同班有重名学生,可设计命令按钮随时检查。选择“同班重名”工作表,单击“工具→宏→录制新宏”,确定,将下列操作过程录制成宏:
①全选工作表,按Delete键删除数据。
②在A1、B1、C1单元格中分别输入标题“姓”、“班级名字”、“重名标记”,在A2单元格中输入公式“=IF(LEN(学生信息!$C2)>2,LEFT(学生信息!$C2,1),"")”,在B2单元格中输入公式“=学生信息!$A2&RIGHT(学生信息!$C2,2)”。
③选定A2至B2单元格,填充A2至B2000单元格。
④按班级名字降序排列A1至C2000单元格。
⑤在C2单元格中输入公式“=IF($B2="","",IF(OR($B2=$B1,$B2=$B3),"▲",""))”, 填充C2至C2000单元格。
⑥按重名标记降序排列C1至C2000单元格。
点击“停止录制”按钮,单击“工具→宏→宏”编辑刚才录制的宏,剪切掉多余的代码后,全选复制,然后关闭。单击“视图→工具栏”,勾选“控件工具箱”,在控件工具箱中单击“命令”按钮,在该表适当位置单击,可插入一个命令按钮,右击该命令按钮,在弹出菜单中选择“属性”,出现“属性”对话框,把“Cation”属性的值从“CommandButton1”改为“重新检查”,关闭该对话框。双击插入的“命令”按钮,打开VB编辑器,在“End Sub”之前粘贴刚才复制的代码,保存、关闭。
“学生信息”表还可进一步完善,把一些常用的功能做成命令按钮。比如按班级、总分排序以便排座号及打印输出,按姓名排序以便快速查找学生,按性别、总分排序是最常见的分班指标,班级间插入分页符也是很实用的功能。大家可以去自己试试:)