图7.38所示的表格中,10个新学员需要随机分配班级名称,不过只能每个学生在一班、二班、三班中选一个,有何快捷方法一次性分配完成?

Excel 能否对新学员随机分配班级名称?-Excel22

图7.38 待分配班级的学员表

解题步骤

Excel 的功能区中没有与随机分配相关的菜单工具,只提供了两个随机函数 Rand 和Randbetween,本例宜用Index函数搭配Randbetween函数来解题,具体步骤如下:

1.选择B2:B11区域。

2 .输入公式“=INDEX({"一班","二班","三班"},RANDBETWEEN(1,3))”,然后按组合键<Ctrl+Enter>结束,公式运算结果如图7.39所示。

Excel 能否对新学员随机分配班级名称?-Excel22

图7.39 随机分配班级

3.如果需要重新生成一组班级名称,按下F9键即可。

知识扩展

1.RANDBETWEEN函数用于生成指定范围的随机整数,每按一次F9键会刷新一次计算结果。其语法如下:

Excel 能否对新学员随机分配班级名称?-Excel22

其中bottom代表下限,top代表上限,上限不能小于下限。

RANDBETWEEN(1,50)表示随机生成1到50之间的整数,RANDBETWEEN(-20,10)表示随机生成-20到10之间的整数。本例中RANDBETWEEN用于生成1到3之间的整数。

2.INDEX函数用于从区域或数组中提取指定位置的值,本例是提取数组中的值,其语法如下:

Excel 能否对新学员随机分配班级名称?-Excel22

第一参数代表数组,本例中“{"一班","二班","三班"}”即为数组;第二参数用于指定提取数组中哪一行的值,参数的取值范围在大于等于1、小于等于数组的总行数之间;第三参数用于指定提取数组中哪一列的值,它是可选参数,其默认值是1。

本例公式“=INDEX({"一班","二班","三班"},RANDBETWEEN(1,3))”中当随机数是1时,公式的结果就是“一班”,随机数是2时公式的结果就是“二班”,由于RANDBETWEEN的结果是随机生成的,每按一次F9就会变化,因此整个公式的计算结果也是随机的。

3.本例公式仅随机地生成班级名称,并没有控制每个班级名称的数量,有可能出现8个一班、3 个二班,0 个三班。假设要求将 4 人分到一班、3 人分到二班、3 人分到三班,那么应在A2:A11区域输入4个一班、3个二班和3个三班,在B2:B11区域输入10个学生姓名,然后选择C2:C11区域,输入公式“=RAND()”后按组合键<Ctrl+Enter>结束,最后选择C2:B11区域,单击功能区的“开始”→“排序和筛选”→“升级”,排序后,姓名会随机打乱(见图7.40),效果如图7.41所示。

Excel 能否对新学员随机分配班级名称?-Excel22

图7.40 生成随机数

Excel 能否对新学员随机分配班级名称?-Excel22

图7.41 以随机数为标准排序

以随机数为条件执行排序,其实就是将随机数以外的值随机打乱顺序,而且每按一次F9键打乱一次,每次打乱的结果都不同。