大家好!今天和大家分享,Excel中可以生成随机数的两个函数:rand函数、randbetween函数。
1
函数介绍

2、randbetween函数
randbetween函数用于返回指定数字之间的随机整数,其语法为randbetween(bottom,top)。

3、rand、randbetween函数比较
不同点:
(1)rand函数生成的随机数是小数,randbetween函数生成随机整数;
(2)rand函数没有参数,randbetween函数需要指定生成随机数的最小值和最大值;
(3)rand函数生成相同随机数的可能性非常小,randbetween函数有可能生成相同的随机数。
相同点:
rand和randbetween均为易失性函数。当重新打开工作簿、修改工作簿中的数据,或者按F9键,函数会产生新的随机数。如果不希望生成的随机数变化,可以将其选择性粘贴为“数值”。
2
函数应用
1、产生不重复随机数

如果我们使用randbetween函数,可能生成重复的随机数。如下图所示:

可以使用rand+rank函数组合使用生成不重复的随机数。

=RANK($B2,$B$2:$B$10)

另外可以注意到,两张图片中B2:B10中rand函数返回的数值不相同。这是因为rand函数是易失性函数,当编辑工作表时,会生成新的随机数。
2、不重复抽奖

如果直接在D2:D4单元格输入公式:

如果希望中奖人名字不重复,可以先在B2:B10区域使用rand函数生成随机数,然后在C2:C10区域使用rank函数生成排名的序号。

=INDEX($A$2:$A$10,C2)

3、随机分组

首先在B2:B10区域使用rand函数生成随机数,然后在C2:C10区域使用rank函数生成B2:B10中的数值的排名。
=INDEX($A$2:$A$10,INDIRECT("C"&(ROW()+1+(COLUMN()-5)*3)))

公式解析:

(2)如果希望将A2:A10中的名单随机分组,那么index函数的第二个参数就需要为随机数。在本例中,先使用rand+rank函数在C2:C10生成随机的排名。然后使用indirect函数引用C2:C10中的随机数,这样就可以实现随机分组。