randbetween函数生成随机数-随机函数randbetween生成数字不变

大家好!今天和大家分享,Excel中可以生成随机数的两个函数:rand函数、randbetween函数 。
本文主要包括两部分:
1、介绍rand、randbetween函数的基本用法;
2、介绍rand函数和rank函数组合使用,用于解决生成非重复随机数、非重复抽奖、随机分组等问题 。


1
函数介绍


1、rand函数
rand函数用于随机生成0~1之间的小数 , 其语法为RAND(),该函数没有参数 。
如下图所示,在C2:C6单元格输入公式:=RAND()

randbetween函数生成随机数-随机函数randbetween生成数字不变

虽然C2:C6单元格的公式相同,但生成的随机数并不相同 。


2、randbetween函数
randbetween函数用于返回指定数字之间的随机整数,其语法为randbetween(bottom,top) 。
如下图所示,在C2:C6单元格输入公式:=RANDBETWEEN(10,20)
该公式返回10~20之间的随机数 。
randbetween函数生成随机数-随机函数randbetween生成数字不变

randbetween函数可能会生成重复的随机数 。比如本例中,C2、C6单元格生成的随机数均为“14” 。


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


2
函数应用
【randbetween函数生成随机数-随机函数randbetween生成数字不变】



1、产生不重复随机数
如下图所示,要求在A2:A10单元格生成1~9之间的9个不重复随机整数 。
randbetween函数生成随机数-随机函数randbetween生成数字不变



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



可以使用rand rank函数组合使用生成不重复的随机数 。
首先在B2:B10区域输入公式:=RAND()
randbetween函数生成随机数-随机函数randbetween生成数字不变



然后在A2:A10单元格输入公式:=RANK($B2,$B$2:$B$10)
RANK函数是用于计算排名的函数,即B2单元格的数值在B2:B10中,按从大到小排序 , 排在第几位 。
randbetween函数生成随机数-随机函数randbetween生成数字不变

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


2、不重复抽奖
如下图所示,要求从A列的名单中随机抽取三位获奖者 。
randbetween函数生成随机数-随机函数randbetween生成数字不变





如果直接在D2:D4单元格输入公式:
=INDEX($A$2:$A$10,RANDBETWEEN(1,9))
中奖人名字可能会重复 。如下图所示,D2:D4中,“蓝精灵”的名字出现两次 。
randbetween函数生成随机数-随机函数randbetween生成数字不变





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



最后在D2:D4单元格输入公式:=INDEX($A$2:$A$10,C2)
randbetween函数生成随机数-随机函数randbetween生成数字不变



3、随机分组
如下图所示,将A2:A10区域的9个人随机分为三组 。
randbetween函数生成随机数-随机函数randbetween生成数字不变





首先在B2:B10区域使用rand函数生成随机数,然后在C2:C10区域使用rank函数生成B2:B10中的数值的排名 。
最后在E2:G3单元格输入公式:
=INDEX($A$2:$A$10,INDIRECT("C"&(ROW() 1 (COLUMN()-5)*3)))
randbetween函数生成随机数-随机函数randbetween生成数字不变



公式解析:
(1)如果在E1:G3单元格输入公式:
=INDEX($A$2:$A$10,ROW() (COLUMN()-5)*3)
可以将A2:A10中的名单按顺序分为三个组 。
randbetween函数生成随机数-随机函数randbetween生成数字不变



关于该公式的具体解析,阅读文章:




(2)如果希望将A2:A10中的名单随机分组 , 那么index函数的第二个参数就需要为随机数 。在本例中,先使用rand rank函数在C2:C10生成随机的排名 。然后使用indirect函数引用C2:C10中的随机数,这样就可以实现随机分组 。
关于indirect函数的使用方法,阅读文章:
indirect函数用法介绍—三个示例帮助你理解indirect函数

相关经验推荐