excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel生成10个不重复随机数 纯函数

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之间的随机数。

按F9刷新A列数据,同时B列的排名也会相应刷新,实现随机效果。

RANDBETWEEN+RANK+COUNTIF

理论上RAND产生10个随机小数会有重复的风险,尽管概率很低。加一个COUNTIF可以有效规避这种风险。为了体现这种效果,将A列的公式改为用RANDBETWEEN:


=RANDBETWEEN(1,10)

极大概率会产生重复数字。

B列的公式修改为:


=RANK(A1,$A$1:$A$10)+COUNTIF($A$1:A1,A1)-1

COUNTIF-1的作用是统计当前值在此之前出现的次数。

例如案例的8出现了两次,RANK得出的排名都是5,在第二个8出现的时候,COUNTIF统计到截至A7单元格它出现了2次,减去1就是在此之前出现过1次,所以在5的基础上加1,避免重复名次的出现。

SORTBY+SEQUENCE+RANDARRAY

在高版本中则要简单很多,还可以省去辅助列:


=SORTBY(SEQUENCE(10),RANDARRAY(10),1)

SEQUENCE产生数字队列1~10;

用SORTBY对其排序;

排序的依据则是一个由RANDARRAY产生的随机数字数组。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接