excel如何用RAND在任意两个数字之间生成随机数

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

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

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

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

    EXCEL中RAND函数的实用技巧
  5. 而要返回0~100之间的整数,用:=INT(RAND()*100)或者:=ROUND(RAND(),2)*100。

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

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

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

    EXCEL中RAND函数的实用技巧
  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函数取值时,就会向前取,不是绝对的均等机会。

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

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

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

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