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

Excel中有3个关于随机数的基本函数。RAND,生成0~1之间的随机小数,不需要参数,直接输入函数即可;RANDBETWEEN,生成指定区间内的随机整数,通过2个参数指定区间上限和下限;RANDAR

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列的排名也会相应刷新,实现随机效果。

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)-1

COUNTIF-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


喊话微软:考虑考虑给RANDARRAY添加个第6参数一步到位吧。

TRUE表示不重复;

FALSE表示可重复。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 97552693@qq.com 举报,一经查实,本站将立刻删除。本文链接:https://teaffka.com/n/4451.html

(0)
新劵的头像新劵
上一篇 2023年 9月 18日
下一篇 2023年 9月 18日

相关推荐

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:97552693@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息