Excel 中随机类函数常用于产生随机数。随机数可广泛用于各类抽奖、抽查及分类分组等活动中。

  • RANDBETWEEN 函数


RANDBETWEEN(最小整数, 最大整数)

返回位于两个指定数之间的一个随机整数。

注意:每次计算工作表时都将返回一个新的随机整数。

提示:RANDBETWEEN 函数可能会产生相同的随机整数。

应用 1:抽奖。

比如在 14 名员工中抽奖,可使用 RANDBETWEEN(1, 14) 产生一个介于 1 ~ 14 之间的整数,再借助 INDEX 函数即可找到对应的员工姓名。


=INDEX(C3:C16,RADNBETWEEN(1,14))

RAND_bytes randbytes函数_rand()函数


提示:按 F9 可重新计算工作表,产生新的随机整数。 有关 INDEX 函数的使用方法请参阅《Excel:INDEX与MATCH函数 》。 应用 2:随机分配A、B卷。

RAND_bytes randbytes函数_随机数_02


由于只有 A、B 卷两种情况,使用RANDBETWEEN(1,2) 为每个学生随机分配试卷编号,再借助 INDEX 函数即可找到对应的试卷类型。公式: =INDEX($H$3:$H$4,RANDBETWEEN(1,2)) 也可借助 CHOOSE 函数来实现,此方法的好处是不再需要依赖辅助表格。公式: =CHOOSE(RANDBETWEEN(1,2),"A卷","B卷")

RAND_bytes randbytes函数_rand()函数_03


此方法同样适用于随机分组的案例。不过,还有一个问题需要解决,即,如何保证均等分配A、B卷或者平均分组呢?

  • RAND函数


RAND( ) 返回一个大于等于 0 且小于 1 的随机实数。每次计算工作表时都会返回一个新的随机实数。 相对于 RANDBETWEEN 函数,RAND函数不存在相同随机数的问题。 说明: 1、RAND()函数没有参数,直接使用。 2、若要生成 a 与 b 之间的随机实数,请參考下列公式: =RAND()*(b-a)+a 应用 1:均等分组

RAND_bytes randbytes函数_大整数_04


处理思路: 首选插入一列作为乱数列,并使用 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:同时抽奖多名(不重复)

RAND_bytes randbytes函数_大整数_05


首先对乱数列进行排位, =RANK(D3,$D$3:$D$16) 然后使用 INDEX 函数找到对应姓名。 =INDEX($C$3:$C$16,RANK(D3,$D$3:$D$16)) 这样,就不会有重复的名字了。

  • CHOOSE 函数 


CHOOSE(索引值,选项1,选项2,选项3,...) 如同做选择题一样,根据给定的索引值,从参数串中选出相应值或操作。

CHOOSE 函数的参数不仅可以是单个数值,也可以是区域引用,如:


=SUM(CHOOSE(2,A1:A10,B1:B10,C1:C10)) 相当于: =SUM(B1:B10)

  • ROUNDUP 函数


ROUNDUP(数值,位数) 向上舍入函数。将对应位数的数值向上舍入到最接近的数值。

RAND_bytes randbytes函数_RAND_bytes_06


比如,位数为 0 时,则在个位数上进行向上舍入: =ROUNDUP(3.14159,0)

结果为 4。


位数为大于 0 的数时,则在对应的小数位上进行向上舍入: =ROUNDUP(3.14159,3)

结果为 3.142。


位数为小于 0 的数时,则在对应的整数位上进行向上舍入: =ROUNDUP(314.159,-2)

结果为 400。