多语言展示
当前在线:1343今日阅读:86今日分享:14

EXCEL中RAND函数的实用技巧

在使用EXCEL中制作表格时,有时为了公平性,需要随机取样,或者为了方便,需要随机生成数据,就可以使用随机函数,EXCEL中有两个随机函数RAND和RANDBETWEEN,前者适用于所有版本,后者适用于较高级的版本,本篇主要介绍下前者的使用方法和技巧。
工具/原料
1

电脑

2

EXCEL软件

方法/步骤
1

RAND函数,是无参数函数,返回0~1之间的小数,包含0,但不包含1。

2

输入公式:=RAND(),即会返回一串小数,正常显示的是11位长度,也就是小数点后面显示9位数,但这并不是其实际值,用其它函数,比如:=RIGHT(B2,30),就可知道后面还有许多位。但在实际使用时用不了这么多位,所以也没必要知道其实际值。

3

知道了此函数的基本用法,就可以根据实际情况来返回随机数,比如返回0~1之间的三位随机小数,用:=ROUND(RAND(),3)。

4

如果不仅仅是返回纯小数,而是要返回混小数,此时可以按照要求乘以放大倍数,比如返回0~100之间的两位小数,用:=ROUND(RAND()*100,2)。

5

而要返回0~100之间的整数,用:=INT(RAND()*100)或者:=ROUND(RAND(),2)*100。

6

当然现在的版本,要返回整数可以直接用RANDBETWEEN函数,如与前面公式同等效果的公式为:=RANDBETWEEN(0,99),比较下区别,RAND函数是含0不含1,而RANDBETWEEN函数是包含两端点的。

7

如果要返回某个区间的随机数,则用随机函数乘以区间差值,再加上起点值,如返回10~80之间的两位小数,则公式为:=ROUND(RAND()*(80-10)+10,2)。

8

而要返回间断区间,则要配合其它函数进行判断,比如返回-0.8~0.8之间的一位小数,但不包含0,如果直接用上面的方法给出的公式:=ROUND(RAND()*1.6-0.8,1),生成的随机数据是有可能包含0的。

9

此时,可以先用上面的方法生成正区间:=ROUND(RAND()*0.7+0.1,1),然后再随机加上正负号:=IF(RAND()>0.5,1,-1)*ROUND(RAND()*0.7+0.1,1),或者:=(-1)^RIGHT(RAND())*ROUND(RAND()*0.7+0.1,1),不过相比而言,后者没有前者公平,因为对于常规数值而言,最后的非零数字后的零都是不显示的,用RIGHT函数取值时,就会向前取,不是绝对的均等机会。

10

如果是两个不同的区间,比如10~30,80~180之间的两位小数,前面的跨度是20,后面的跨度是100,可以用相应的占比来保证公平性:=ROUND(IF(RAND()<20/120,RAND()*70+10,RAND()*100+80),2)。

11

比如当我们设计成绩示意表时,一个个的输入分数是比较麻烦的,可以先用随机函数生成分数,再用复制选择性粘贴的方法去公式化,但分数是在一个范围内,如想生成40~100分之间的随机分数,分数生成公式:=INT(RAND()*61+40)。

12

但观察数据,会发现随机生成的分数中不及格的分数太多了,不太实际,此时就可以用分段的方法来完善公式。比如将不及格率控制在8%以内,用:=IF(RAND()<0.08,INT(RAND()*21+40),INT(RAND()*41+60))。

13

需要注意的是,随机函数是变化的,上面所有图中,每种类型都是使用的相同的公式,但其生成的数据是不同的,另外,数据生成后,只要向表中增加、删除、修改数据,或者按F9刷新,随机数据都会重新生成。必要时可以在数据生成后复制粘贴去掉公式仅保留数据。

推荐信息