Excel中的随机函数常用于产生随机数。随机数可广泛用于各类抽奖抽查、分类分组等活动中。\
1、RANDBETWEEN函数
RANDBETWEEN函数语法:
RANDBETWEEN(最小整数, 最大整数)
返回位于两个指定数之间的一个随机整数。注意:每次计算工作表时都将返回一个新的随机整数。\
说明:RANDBETWEEN函数可能会产生相同的随机整数。
应用1:抽奖
比如在14名员工中抽奖,可使用RANDBETWEEN(1, 14)产生一个介于1~14之间的整数,再借助INDEX函数即可找到对应的员工姓名。\
提示: 按 F9 可重新计算,产生新的随机整数。
有关INDEX函数的使用方法请参阅《Excel:INDEX函数与MATCH函数》。
应用2:随机分配A、B卷
由于只有A、B卷两种情况,使用RANDBETWEEN(1,2)为每个学生随机分配试卷编号,再借助INDEX函数即可找到对应的试卷类型。公式:\
=INDEX($H$3:$H$4,RANDBETWEEN(1,2))
也可借助CHOOSE函数来实现,此方法的好处是不再需要依赖辅助表格。公式:
=CHOOSE(RANDBETWEEN(1,2),"A卷","B卷")
此方法同样适用于随机分组的案例。不过,还有一个问题需要解决,即,如何保证均等分配A、B卷或者分组呢?\
2、RAND函数
RAND函数语法:
RAND( )
返回一个大于等于 0 且小于 1 的平均分布的随机实数。每次计算工作表时都会返回一个新的随机实数。\
相对于RANDBETWEEN函数,RAND函数不存在相同随机数的问题。
说明:
(1)RAND()函数没有参数,直接使用;
(2)若要生成 a 与 b 之间的随机实数,请使用:
=RAND()*(b-a)+a
应用1:均等分组
首选插入一列作为乱数列,并使用RAND函数产生随机实数,\
(公式)
=RAND()
然后使用RANK函数对乱序列排位,
(公式)
=RANK(D3,$D$3:$D$16)
再将排位结果除了人数的一半,
(公式)
=RANK(D3,$D$3:$D$16)/(COUNT($D$3:$D$16)/2)
使用ROUNDUP函数使上式结果进位到最接近的整数。
(公式)
=ROUNDUP(RANK(D3,$D$3:$D$16)/(COUNT($D$3:$D$16)/2),0)
提示:
最后,使用CHOOSE函数显式显示分组。
(公式)
=CHOOSE(ROUNDUP(RANK(D3,$D$3:$D$16)/(COUNT($D$3:$D$16)/2),0),"A组","B组")
特别提示: 随机数产生之后,在所有的单元格处进行的任何编辑,都将导致重新产生随机数。
解决方法: 随机数产生后,框选并右击,选择“选择性粘贴”中的“值”,即用数值覆盖公式。这样就不会再重新产生随机数了。
应用2:同时抽奖多名(不重复)
首先对乱数列进行排位,\
(公式)
=RANK(D3,$D$3:$D$16)
然后使用INDEX函数找到对应姓名,
(公式)
=INDEX($C$3:$C$16,RANK(D3,$D$3:$D$16))
这样,就不会有重复的名字了。
附:
(1)CHOOSE函数
如同做选择题一样,根据给定的索引值,从参数串中选出相应值或操作。
语法:
CHOOSE(索引值,选项1,选项2,选项3,...)
CHOOSE函数的选项参数不仅可以为单个数值,也可以为区域引用,如:=SUM(CHOOSE(2,A1:A10,B1:B10,C1:C10))
相当于:
=SUM(B1:B10)
(2)ROUNDUP函数
向上舍入函数。
语法:
ROUNDUP(数值,位数)
位数为0时,则将数字向上舍入到最接近的整数。
位数为大于0的数时,比如1,则将数字向上舍入到指定的1位小数。
位数为小于0的数时,比如-1,则将数字向上舍入到十位数。