概述
在EXCEL的众多函数中有两个专门用于产生随机数的函数,一个是RAND()函数,返回的随机数是大于等于 0 及小于 1 的均匀分布随机实数。另一个是RANDBETWEEN(最小数,最大值)函数,返回大于等于指定的最小值,小于等于指定最大值之间的一个随机整数,重点是整数。
两个函数的特点鲜明,RAND生成的随机数是小于1的小数,不能满足本题的要求,即使放大10倍再四舍五入为整数后,仍然不能保证不重复的要求。RANDBETWEEN函数虽然可以直接生成整数,但是不能保证不重复,尤其是需要生成更多的随机数,例如1至100、1000之间的不重复随机整数,RANDBETWEEN函数更是无法实现。
解决此问题的办法是利用多个函数组合、分步实现。如图01所示:
1、在A2:A11单元格输入公式=RAND(),负责生成10个大于0小于1的随机小数,随机小数不会出现重复值。输入公式的效果如图02所示:
2、在B2单元格输入公式=RANK(A2,A$2:A$11),之后拖拽B2单元格填充柄向下复制。其作用是返回A列当前行即A2单元格的值在A$2:A$11区域中的名次(排名结果),由于A$2:A$11的值不重复,RANK的排名结果也不会出现重复,而且排名的结果肯定是整数。输入的公式如图03所示:
3、输入公式后按F9键可以在B2:B11区域中反复生成1至10的不重复随机整数,如图04所示:
拓展应用:
生成随机数的需求非常广泛,有需求包含小数的、有不需要小数的、有需要指定范围的整数、有需要指定范围的小数。下面简单介绍几种不同需求的解决方法:
案例一:生成1至100的随机整数,=RANDBETWEEN(1,100),缺点是不能避免重复值。
案例二:生成1至100的随机数,=RANDBETWEEN(1,100)+RAND(),不会出现重复值。
案例三,生成保留两位小数的1至100的随机数,=ROUND(RANDBETWEEN(1,100)+RAND(),2),可能有重复值,但是概率很低。
案例四:生成0.025至0.048之间的随机数,=RANDBETWEEN(25,48)/1000。
案例五:生成13±0.25之间的数,这个问题乍一看有点懵,仔细看看与上面的情况是一样的。最小值13-0.25=12.75,最大值13+0.25=13.25,生成13±0.25之间的数就是生成12.75至13.25之间的随机数。公式=RANDBETWEEN(1275,1325)/100。
总结:函数的规则是死的,但是人的大脑是活的,科学、合理、灵活地运用各个函数,把函数的特点有机地整合在一起就能满足各种不同的需求。例如生成负0.5和正0.5之间的小数,这个问题是不是没有现成的解决方法?如果换个问法你可能就会做了,生成0至1之间的随机数你会做吗?RAND()就能完成,在此基础上略作调整=0.5- RAND(),有没有恍然大悟的感觉!
最后
以上就是会撒娇哑铃为你收集整理的excel随机数_如何返回1至10之间的不重复随机数的全部内容,希望文章能够帮你解决excel随机数_如何返回1至10之间的不重复随机数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复