RAND函数可以随机生成0到1之间(不包含1)的无限不循环小数,几乎不可能出现重复。其语法为:RAND(),没有参数。在每次编辑数据、改变数据结构时,RAND函数都会重新计算,生成新的数据并实时刷新。
下面我们来学习一个运用RAND函数随机抽选人员的案例。
应用场景
我们要从下图表格A列的人员中随机抽取3人,抽取结果返回至F2:F4单元格。
思路分析
要实现目标效果,我们可以先在B列用RAND函数生成随机小数,在C列对随机小数进行排名,排名结果为前3名的人员即我们要随机抽选的对象。
操作步骤
第1步:选中B2单元格,输入公式:=RAND(),将公式向下填充,即可在B列生成一串随机小数。
第2步:选中C2单元格,输入公式:=RANK(B2,$B$2:$B$9,0),将公式向下填充,即可返回B列中的随机小数在所有小数中的排名。该排名也就是A列中每个人的随机排名。
公式说明:
- 公式RANK(B2,$B$2:$B$9,0)用于在B2:B9单元格(参数2)查找B2单元格值(参数1),并返回B2单元格值在B2:B9单元格所有小数中的大小排名;
- RANK函数中第3个参数“ 0 ” 意为排名按降序排列,小数数值最高的排名为1;
- 第2个参数$B$2:$B$9中的符号“ $ ”意为对B2:B9单元格区域进行绝对引用,锁定固定的查找范围。
第3步:将E列中的抽取序号1、2、3与C列的随机排名进行匹配。选中F2单元格,输入公式:=INDEX($A$2:$C$9,MATCH(E2,$C$2:$C$9,0),1),再将公式填充至F4单元格,即可返回随机排名与抽取序号对应的人员姓名。
公式说明:
- MATCH(E2,$C$2:$C$9,0)意为在C2:C9单元格中查找E2单元格值"1",返回"1"在C2:C9中的精确位置;
- INDEX($A$2:$C$9,MATCH(E2,$C$2:$C$9,0),1)意为在A2:C9单元格中的相应行、列查找结果值。公式第一个参数$A$2:$C$9为查找范围,第二个参数MATCH(E2,$C$2:$C$9,0)返回的位置为查找结果所在行,第三个参数1意为在A2:C9单元格区域的第1列查找。
- 公式中的符号"$"意为对相应单元格区域进行绝对引用,锁定固定的查找范围。