我折腾到半夜,新同事只做了这两步,3分钟搞定5000名考生的座位分配!
编按:哈喽,大家好!春节已经结束了,不少公司在正式开工后,一般会对员工进行岗位技能考试。既然要考试,自然就会涉及到考生座位安排的问题,今天我们就一起来学习一下,如何在excel中快速地制作考生的座位分配表!
春节刚过,某部门马上组织员工进行岗位技能考试,本次考试有561人报名参考,部门安排了两个考场共18个考室,每个考室安排32座,需要对所有报名的考生随机安排座位。
下面是待分配座位考生的基本信息:
下面是考生考试座位分配表:
这里要求我们随机安排考生座位,最简单的方法就是先按顺序安排每位考生的座位,然后再对这些考生的记录进行随机排序。
步骤一:按顺序排列座位
① 在F3单元格输入文本“一考场”,然后向下填充文本至F291单元格,用于分配第一考场的所有考生。
② 按照同样的方法在F292单元格输入文本“二考场”,双击单元格右下角的自动填充,为其他考生分配考场。
③ 要按顺序安排座位,可以借助当前记录的行号来生成重复的序列。选择G4单元格,输入公式“=INT((ROW()-4)/32)+1&"考室"”分配第一个考生的考室号。向下填充公式至记录结尾,为所有报名的考生分配考室号。
函数ROW()用于获得当前考生数据的行号,由于数据区域的第1行位于工作表的第4行,因此需要将此行号减4。由于每个考室安排32座,所以需要除以32,再用INT函数取结果的整数部分后加1,得到1到18的整数。最后再用“&”符号连接“考室”文本,就能得到需要的结果。
其实,除了使用INT函数通过取整来获得考室号外,还有很多方法,如利用CEILING函数向上取行号最接近32的倍数,再除以32,也可以得到相同的结果,公式为“=CEILING((ROW()-4)+1,32)/32&"考室"”。
同样道理,使用向下取整的函数FLOOR也可以得到相同的结果,公式为“=FLOOR((ROW()-4),32)/32+1&"考室"”。
④ 选择H4单元格,输入公式“=MOD(ROW()-4,32)+1”,分配第一个考生的座位号。向下填充公式至考生数据结尾,为所有报名的考生分配座位号。
用MOD函数得到“ROW()-4”除以32的余数,并将得到的结果加1,从而取得1-32的整数序列。(小知识:一个数除以另一个数,要是比另一个数小的话,商为0,余数就是它自己。例如:1除以2,商数为0,余数为1。2除以3,商数为0,余数为2。)
步骤二:随机排序
当想要打乱一个有序的记录表的顺序时,可以使用EXCEL中的RAND函数生成一个随机数的辅助列,然后利用此列对原数据区域进行排序即可打乱数据的顺序。
① 选择I4单元格,输入公式“=RAND()”,按回车键生成一个随机数,向下填充公式至记录结尾即可。RAND函数的作用是生成一个0-1之间的随机数,它没有任何参数,在使用的时候,只要保证添加了函数标志“()”即可。
② 选择A3:I3单元格区域,按住Shift键并双击该区域的下边框,选中整个数据区域。
③ 在“数据”选项卡中单击“排序”按钮,在弹出的排序对话框中,将“主要关键字”栏设置为“列I”,“次序”设置为“升序”。
④ 单击“确定”按钮完成排序操作,然后删除I列数据,得到下面的考生考试座位分配表。
看到这里,大家可能会好奇,为什么按照随机数列进行升序排列后,考生原本的座位信息会发生变化。这是由于考生的考室号和座位号是根据行号来生成的,只要考生所在的位置发生变化,即考生所在的行号发生变化,实际的分配结果也将被打乱。由于RAND()生成随机数,所以每次应用RAND()函数对数据进行排序后,考生的座位号都会发生变化,真正实现座位号随机分配。
****部落窝教育-excel随机函数RAND****
原创:赋春风/部落窝教育(未经同意,请勿转载)