Excel函数按身高数据快速安排学生座位
2010-09-28 12:29:24 来源:WEB开发网本文主要介绍如何用Excel按数据借助ROW和IF等函数进行特殊排序,以快速完成各种座次表、企业职工工作安排等数据排序工作。
开学差不多一个月了,此时很多学校都会根据身高等因素给学生重新安排座位。通常要求把高个排在后面、矮个排在前面。以往的做法是让学生按高低排队再顺次排座位,结果排队时身高差不多的学生经常争执。今年不妨换个做法,先按学生身高随机编出座位图,再让大家按图就座,这样就没什么可争了。不过手工排座位工作量也挺大,还是让Excel与函数帮忙搞定吧。
1.制作学生记录表
打开Excel2007,把sheet1工作表重命名为“学生记录”,按需设置好表格(图1)。在C:E列输入学号、姓名、身高,或者从已有的表格中复制过来。在H、I列输入身高与系数对照表,在此H2固定为1,下面的157、168则可自由修改。也可多增加几条身高和系数,但身高要升序排列、系数降序。个别严重近视的学生可以在F列输入视力系数1或2让他排前一点。
在A2单元格输入公式=ROW()-1自动生成序号,在B2输入公式=IF(C2,VLOOKUP(E2,H:I,2)+F2+RAND(),)。公式中用VLOOKUP提取身高系数+视力系数+RAND()生成一个有身高视力差异的随机数。选中A2:B2拖动其右下角的黑色方块(填充柄)向下填充到B97,通常一班不会超过96人吧?现在选中B2,单击“开始”选项卡的“排序”选择“降序”,就会按157以下排前面、157-168中间、168以上排后面的前提随机排序,视力系数每增加1则可使其在这3档中排前1档。
2.编制座位图
以把学生分成6组(列)为例,我们得先建一个“座位表”工作表,在A3、A4分别输入1、7,并对B3、B4设置粗边框。在B3输入公式=VLOOKUP(A3,学生记录!$A:$F,4,FALSE),双击填充柄把公式复制到B4。选中A3:C4鼠标指向其填充柄,按住右键拖动到Q4,松开右键在弹出菜单中选择“填充序列”,即可填充出前两排的序号和学生名。再选中A3:Q4向下拖动填充柄到Q18,填充出96个座位和序号,学生自动按序号出现在座位图中。最后适当调整好行高列宽,画一个矩形代表讲台桌即可(图2)。
注:分组数不同,只需开始时改一下A4的数字,例:分8组就改成9,其他操作都一样。若用的是双人桌,只要在全部设置好后直接删除两组间的空列使两组合并在一起即可。
3.修饰座位图
座位图中没学生的单元格会显示错误值#N/A和边框,得让它自动消失。选中A:Q列,单击“开始”选项卡的“条件格式”选择“新建规则”,在“新建格式规则”窗口中选择规格类型为“只为包含以下内容的单元格设置格式”,并在“单元格值”下拉列表中选择“错误”(图3)。再单击“格式”按钮,在弹出窗口中设置字体颜色为白色,在“边框”选项卡中设置边框为无。一路确定完成设置后,没有学生的边框和错误值都会自动消失。
座位左边的序号不需要打印出来,得先隐藏起来。选中A列,单击“数据”选项卡的“组合”图标进行组合。同样分别选中D、G、J、M、P列进行组合。组合后在左上角会显示1、2的按钮,点击1即可隐藏所有序号列(图4),点击2则恢复显示序号。
4.自动排座位
通常一学期需要多次重排座位,若学生没变,你只要在“学生记录”工作表选中B2单击“开始”选项卡的“排序”选择“降序”,即可随机生成一张新座位图。即使学生变了或需要为其他班级排座位,也只要在“学生记录”工作表中输入新班级学生的学号、姓名、身高,对个别高度近视的再输入一下近视系数,再选中B2降序排序一下,即可在“座位表”工作表中看到随机排好的座位图。
若需要对个别学生座位进行调整,可通过修改座位图的序号实现。本例中身高174的李丽丽因视力系数被分配到前排正中,这会影响后面学生的视线,得把她调整到左边。你只要在“座位表”工作表中单击“2”按钮显示序号列,把序号7改成10、10改成7,即可让她与序号7的蔡小森对调座位。修改后记得再隐藏序号列。
现在可以把座位图打印出来贴到讲台上,让学生按图入座了。虽然操作有点啰嗦,但一旦设置完成,以后就只要重复第4步即可排好座位图,应用起来还是挺简单的。
更多精彩
赞助商链接