棒球棒什么牌子好 棒球大联盟寿也结婚 棒球运动员英文单词 球探棒球比分 棒球棍加工图纸 棒球帽品牌小鸟队 棒球帽搭配发型 棒球大联盟第五季 时尚棒球服 棒球棒算管制器具吗 棒球大联盟图片 棒球有几种球 9局职业棒球2013 棒球规则图解漫画 棒球比赛2011
 
 
当前位置:首页 > 养猪?#38469;?/a> > 综合养猪 > 正文

解读Excel中的RAND函数和RANDBETWEEN函数用法和差异

   转载 发布时间:2019-07-10 10:14:56   来源:我爱极客   举报
【导读】在我们日常工作我们都希望所有的事情都按我们的意愿有序执行,不过有时也需要事情按照无序,没有规律的生成数据,比如我们在计算机上考试时随机生成的试卷,网上商城抽奖活动,中奖的序列号码这些内里无一没有随机函数的身影,那么问题...

在我们日常工作我们都希望所有的事情都按我们的意愿有序执行,不过有时也需要事情按照无序,没有规律的生成数据,比如我们在计算机上考试时随机生成的试卷,网上商城抽奖活动,中奖的序列号码这些内里无一没有随机函数的身影,那么问题来了,Excel可以做抽奖程序吗?可以做随机点名器吗?答案是肯定的,Excel也有随机函数,好了准备小马扎,调整好小桌板,我们一起了解随机函数那点事吧!

RAND函数

说起RAND函数它在Excel中也是特别的存在,它是函数中为数不多的没有参数的函数之一,功能也比较简单,随机生成>=0且<1的数字,这里需要注意的是并不包括1,我们在使用它的时候需多加注意,虽然它的语法结构及其简单,不过我们还是准备了它的结构图,如下:

RAND函数的语法结构图

?用途:其实随机函数用途还算广泛,它在解决一系列从有序变无序的问题上有独特的优势,不过在应用的过程,更多的是用RAND函数生成随机的固定范围的整数,我们就从最简答的开始,看看如何生成>=1且<=10的整数?

思路:单独使用RAND函数实现是不太可能的,需要借助之前文章哼哈二将中的函数,两个函数两个思路,我们先用ROUNDDOWN函数吧!我们了解RAND函数生成>=0且小于1的数,如果我们直接乘以10就会得到>=0且<10,接着向下取整(ROUNDDOWN)得到范围>=0且<=9,然后整体加1,正好是>=1且<=10;

公式:=ROUNDDOWN(RAND()*10,0)+1

公式做出来的,不过乘数10是怎么来的,有没有统一的公式可以套用的啊?#30475;?#30528;这些问题继续看下面的例子:如何生成>=80且<=100的整数?

思路:有了上面的经验,我们就需要先生成1-20包括20的整数,如果直接rand()&*20,在加上ROUNDDOWN函数的谨慎?#24895;瘢?#26368;多也就生成>=0且<=19的数字,再80,只能生成>=80且<=99数字;索性我们就×(20+1),这样就完?#26469;?#21040;我们的需求了。

公式:=ROUNDDOWN(RAND()*21,0)+80

总结:回过头我们再看这两个例子,第1个生成的区间1到10而非0-10,若生成0-10则是11个数,她的公式应该是=ROUNDDOWN(RAND()*11,0),第2个例子中的生成80-100的数字,一共多少个数字呢?没错21个,然后再加上开始值就是我们刚才编写的公式啦!到这我们是不是就能总结出通用的公式了=rounddown(rand()*(生成数字个数=大数-小数+1),0)+小数,我整理一下完整公式如下:

生成>=N且<=M的随机整数的通用公式

如果以后遇到这种问题只需将M和N带入公式就可以了,说完rounddown的实现方法,我们一起再看roundup函数是如?#38382;?#29616;的?

说到roundup函数的功能向上取整,公式=roundup(rand(),num)则理论上生成范围是>=0且<=1,而事实?#35789;?#24403;公式=roundup(rand(),0)它的结果会一直是1,哪如何解决这个问题呢?哪我们根据上面的经验,公?#22870;?#20026;=roundup(rand()*2,0),它的范围变为1或2,原来差1,只需在最后结果-1就行了。那么其他的是不是也符合这个规律,我们测试了几组数据,效果如下:

测试roundup函数生成区间数字的数据

经过验证,我们也总结出通用公式如下图:

ROUNDUP函数实现生成要求范围的整数的通用公式

?在说后面的知识点之前,?#20154;?#19968;下为什么roundup(rand(),0)的结果一直会是1,其实这样的问题弱类型处理程序中的通病,在它们的世界里,就没有整数的概念,都是带有小数的部分,不过附加的数字特别特别小而已,当遇到roundup函数特性,不论附加多少小,在它眼里都是进位数,而上面的公式进位数是1,所以所有的结果都是1?#30149;?#21738;还有没有容易的方法生成整数随机数呢??#27604;?#26377;了,就是下面需要说的函数啦!

RANDBETWEEN函数

它相对RAND函数的语法结构就复杂多了,它有两个必填参数,且第2个参数必须>=第1个参数,否则返回#NUM!的结果,一起看一下它的语法结构图如下:

RANDBETWEEN函数的语法结构图

?函数生成的整数的数字区间为>=小数字且<=大数字,如果你想生成0-10的随机数?#31181;?#25509;输入公式=randbetween(0,10)就可以可以啦,是不是很?#22870;?#21834;!如果遇到大小数?#25191;?#26377;小数部分,它遵循的规则为,整数部分相同,则取离它最近的最小整数,即randbetween(0.2,0.59)=randbetween(1,1)=1;如果整数部分不想相等,则大数字往小的取值,小数字往大的取?#23548;磖andbetween(1.23,2.999)=randbetween(2,2)=2;我们?#19981;?#36935;到两个参数为负数的情况同理:比如randbetween(-0.8.-0.1)=randbetween(0,0)=0,整数部分不同的情况为=randbetween(-6.3,-1.2)=randbetween(-6,-2),至于验证的部分就留给你做练习吧!

应避免的误区

函数的部分说完了,最后我把我再工作中遇到问题或错误总结了一下,这里分享给屏幕前的你:

1.当我们使用rand()函数获取随机整数的时候,不管用的是我提到的函数还是用INT或TRUNC函数来取整操作,一定注意生成的范围边界问题,比如要生成20到50的随机整数,公式=int(rand()*30)+20,表面没有问题,其实这个公?#25509;?#36828;都无法生成50这个随机数,如果你把这个随机的范围应用提取某个范围单元格的值的话,始终会有一部分的单元格的值是不会被读取到的。

2.就是负数的问题,我们在做取整的操作的时候,使用的函数不同,需要注意他们之间的细微差别,比如INT(-5.67)返回的结果为-6,而rounddown(-5.67,0)和TRUNC(-5.67,0)返回结果都为-5,如果想规避这些不同函数的正负差异,我们可以生成正整数随机数,再取反或乘-1就能一定程度避免这些没有必要的麻烦。

3.不要以为有randbetween函数,rand函数就没有什么用了,rand函数处理起来数据更加的灵活,在生成小数随机数上它有特有的优势,具体还是要看你的使用场景了,举一个VBA上可以用的场景,比如让我们快速打乱一个名单该如何操作呢,我的思路是用rand函数生成随机数,比0.5大的,就交换相邻的人名位置,比0.5小就不交换位置,这样是不是比生成一个不重复的序列要简单多了。

文章的最后我想说的就是,随机函数的用途确实有很多,单唯独没有在软件序列号的中使用,因为软件序列号是通过严格的数学公式计算出来的字母字符序列,而生成序列号并不允许随机的,验证序列号需要将序列号代入固定的算法中得出固定的值才可以的,这也是为什么我们可以使用序列号生成器来生成序列号,这里的关键需要破击序列号的验证算法,至于怎么破解就不在文章的范围之内了。

你学会了Excel的随机函数,有一个?#20040;Γ?#23601;是不用发愁给小孩出小学算术题了,只要编写相应的规则,只要拖拽鼠标就能完成了,好了今天的文章就到这,希望你能通过阅读有所收获,如果你在工作中遇到关于Excel什么问题,欢迎留?#24895;?#35785;我,我会第一时间尽我最大的努力帮助你,又?#30340;?#35805;啦:你工作学习的路上并不孤单,我们一起结伴而行!

免责申明:本栏目所发资料信息部分来自网络,仅供大家学?#21834;?#20132;流。我们尊重原创作者和单位,支持正版。若本?#37027;?#29359;了您的权益,请直接点击提交联系我们,立刻删除!
 
相关推荐
 
图文热点
 

 

栏目推荐

说给双创教育者:要么自己去创业要么帮学生创业,但别和学生争利

这个Excel函数你都不会用,怪不得你写那么长的公式领导很嫌弃

解读Excel中的RAND函数和RANDBETWEEN函数用法和差异

保定市涞水县山南村依托红色旅游带动百姓致富

大棚葡萄成为致富“金疙瘩”

为什么淘宝只卖几块钱的物品还包邮?商家到底能赚钱吗?真相现实

 
穿越棒球大联盟之吾郎
棒球棒什么牌子好 棒球大联盟寿也结婚 棒球运动员英文单词 球探棒球比分 棒球棍加工图纸 棒球帽品牌小鸟队 棒球帽搭配发型 棒球大联盟第五季 时尚棒球服 棒球棒算管制器具吗 棒球大联盟图片 棒球有几种球 9局职业棒球2013 棒球规则图解漫画 棒球比赛2011
幸运28走势图分析法 北京赛车pk10开奖视频好用吗 河北麻将单机版 百慕大三角位置 中国体彩31选7开奖 西班牙人VS阿拉维斯直播 龙珠激斗2.1无敌版 伊蒂哈德恒大 凯萨帝国返水