一天,湖北武汉的廖老师向求助,希望在EXCEL中随机安排监考人员。
源数据表很长,需要安排近300个会话:
图1:源数据。
只有50多名教师可供监考:
图2:监考人员表。
廖老师还提出了三个条件:
1-每个监考人员应尽可能均匀地安排;
2-老师不能当主监考;
3-同一考试时间段只能出现一次。
对于一个掌握这种技术的新手来说,边肖从来没有使用过先进的系统。他能在EXCEL中随机安排考试吗?
答案肯定是肯定的!
边肖根据自己的技术能力仔细分析,并计划按照以下步骤解决问题:
1-使用randbetween函数随机生成每个老师的监考次数字段;
2-使用查找功能生成所有监考人员的名单,即按照上一步生成名单;
3.用rand函数和rank函数对所有监考人员进行随机排名;
3.使用查找功能提取与考场序号一致的监考人员姓名;
4.用if函数验证重复考试安排和教师的规则。
这是以思维导图的形式描述的:
图3:解题示意图。
第一步:随机生成教师监考站点数量。
今天栗子有288场比赛,但只能监考53位老师。简单划分人均监考人数为5.5人。让我们使用randbetween函数随机生成它们,公式如下:
=Randbetween,6)
下拉列表生成后,检查下面的总数是否等于288,有选择地将值粘贴到辅助列中:
图4:随机生成监考人数。
提示:随机数可能不会准确生成考试总名额。粘贴后可以多刷几次或者手动干预。
建议将单据的公式计算方式改为手工计算,否则每次点击随机函数单元格都会重新计算。设置方法是在EXCEL中依次计算选项。
图5:设置公式计算模式的路径示意图。
第二步——随机生成监考人员名单。
接下来,我们将根据每个老师的监考人数生成监考人员列表。当转换成白话后,我们会根据指定的数据为教师姓名列反复生成新的数据列。
首先,让我们在A列输入公式“=D2 A1”并填写下来。在单元格E2中输入公式“=if error (vlookup(行(a1),a:b,2,0),E3)”,并向下填充,直到出现空白数据(实际获得288行数据):
图6:获取监考人员名单。
接下来,我们对每一位参与监考的老师进行随机编号,使用rand函数生成随机数后再进行排序。公式是分开写的。
=RAND()*100000
=RANK(G2,G $ 2: $ G $ 289)
图7:生成监考人员随机序列号。
第三步-提取监考老师的名字。
下一份工作很容易。让我们使用LOOK函数从监考表中提取出带有对应序号的老师姓名。公式如下:
=LOOKUP(1,0/(Sheet1!$H$2:$H$289=H33),Sheet1!2:澳元(289澳元)
图8:提取和验证。
第四步——验证重复考试落点和监考规则。
你刚才在截图中看到了verIFication过程。为了保证监考老师不参与监考,保证同一位老师同时只监考一个考场规则,我们使用if函数进行验证:
=IF(D33=G33,“老师不能监考”,“)。
=IF(AND(B33=B32,G33=G32),“监考老师太忙了”。
即使是随机排序,也很难保证会有翻车,此时需要人工干预:
图9:需要人工干预的数据。
最后,动图提示你如何利用这一系列功能实现监考人员的随机排列:
边肖亮点:根据经验,如果需要干预的数据太多,最好刷新重新生成随机序列号。最后看看我们随机监考的结果。是成就感吗?