excel随机数生成范围内小数 excel区间随机数保留两位

Excel中有3个关于随机数的基本函数 。
RAND,生成0~1之间的随机小数,不需要参数,直接输入函数即可;
RANDBETWEEN,生成指定区间内的随机整数,通过2个参数指定区间上限和下限;
RANDARRAY,生成一个随机数组,通过参数指定数组的行数和列数,指定随机数的区间以及数字类型(整数或小数) 。
用它们可以生成各式各样的随机数,但实际应用中经常需要一些并非真正随机的随机数,例如:1~10之间的10个不重复随机数 。
可以用RANDBETWEEN限定范围在1~10内,但它有极大可能重复,所以需要转换思路 。
RAND+RANK在A1输入以下公式并下拉填充至A10得到10个随机数:
=RAND()在B2单元格输入以下公式并填充至B10:
=RANK(A1,$A$1:$A$10,1)通过个A列中的各个数字排名获取1~10之间的随机数 。
【excel随机数生成范围内小数 excel区间随机数保留两位】按F9刷新A列数据,同时B列的排名也会相应刷新,实现随机效果 。

excel随机数生成范围内小数 excel区间随机数保留两位

文章插图
RAND+RANK
RANDBETWEEN+RANK+COUNTIF理论上RAND产生10个随机小数会有重复的风险,尽管概率很低 。加一个COUNTIF是有效的解决方案 。
为了体现这种效果,将A列的公式改为用RANDBETWEEN:
=RANDBETWEEN(1,10)极大概率会产生重复数字 。
B列的公式修改为:
=RANK(A1,$A$1:$A$10)+COUNTIF($A$1:A1,A1)-1COUNTIF-1的作用是统计当前值在此之前出现的次数 。
例如案例的8出现了两次,RANK得出的排名都是5,在第二个8出现的时候,COUNTIF统计到截至A7单元格它出现了2次,减去1就是在此之前出现过1次,所以在5的基础上加1,避免重复名次的出现 。
excel随机数生成范围内小数 excel区间随机数保留两位

文章插图
RANDBETWEEN+RANK+COUNTIF
SORTBY+SEQUENCE+RANDARRAY在高版本中则要简单很多,还可以省去辅助列:
=SORTBY(SEQUENCE(10),RANDARRAY(10),1)SEQUENCE产生数字队列1~10;
用SORTBY对其排序;
排序的依据则是一个由RANDARRAY产生的随机数字数组 。
excel随机数生成范围内小数 excel区间随机数保留两位

文章插图
SORTBY+SEQUENCE+RANDARRAY