图4.264中第一周的值班表已经安排好,现在要求将第二周的姓名随机打乱,不再按第一周的顺序安排值日。尽管数据不多,可以手工打乱姓名,但现在期望获得一个通用的方法,不管有数据多少都可以用相同的步骤、相同的时间随机打乱这些姓名。
图4.264 值班表
解题步骤
随机打乱一列数据主要依靠两个小功能的组合,其一是在该列数据右方产生一列随机数,其二是对这两列数组排序,以随机数作为排序依据,具体操作步骤如下。
1.选择E2:E7,然后输入公式“=RAND()”,并按组合键<Ctrl+Enter>结束,此时E2:E7将会产生图4.265所示的随机数。
图4.265 在辅助列录入随机数
随机数是不确定的,因此读者在使用以上公式时产生的值并不会和图4.265中的值一致,而且修改其他单元格时随机数还会马上变化,按下F9键时随机数也会变化。
2.选择E2:D7区域,单击功能区的“数据”→“升序”(图标为),排序结果如图4.266所示。
图4.266 排序结果
3.再次单击“升序”按钮,D列的姓名会重新打乱,每次排序的结果都不同,因为E列的随机数在变化,那么排序的结果也会相应地变化。
4.删除E列的辅助数据。
知识扩展
1.函数RAND的功能是生成随机数,其值在大于0、小于1这个范围之内。RAND函数是易失性函数,因此修改工作表中任意单元格时,函数的值都会变化一次。
2.一个区域排序时是以活动单元格所有列为排序条件的,本例中要对D2:E7区域排序,以E列的值为排序条件,因此应该先选中E2,然后向左下角拖动鼠标,直到选中D7时松开,称之为选中E2:D7,此时E2处于活动状态。假设按平常的操作,选择D2:E7,那么D2单元格处于活动状态,排序后无法达到随机效果,而是D列的姓名按拼音顺序升序排列。
3.由于E列的值是随机数,因此升序排列还是降序排列并不影响最终的排序结果。