随机函数rand用处大

今天说一个随机函数,虽然这个函数是挺简单的,但是它的用处还是挺大的。这个函数就是rand函数,它返回一个大于等于0且小于1的平均分布的随机实数。简单来说就是返回一个大于等于0且小于1的随机数,而且每次重新计算时都会返回一个新的随机数。
-01-
函数说明
这个函数很特殊,它没有参数,直接在函数名后面加个括号就可以了rand(),和now()函数有点类似。
-02-
示例解释
1.生成大于等于0且小于1的随机数
如下图所示,直接在单元格中输入公式=rand(),结果就出来了。可以看到它返回大于等于0且小于1的随机数。而且当按F9时它会变化,会重新返回新的随机数。
2.生成大于等于5且小于10的随机数
如果要生成a与b之间的随机数,可以用=RAND()*(b-a)+a这个公式。生成5到10之间的随机数,就是=RAND()*(10-5)+5。当我按F9时,它会变化,但不管怎么变,它都不会等于10。
你可能会问这个函数只能生成随机数,那在工作中有什么用呢?其实它的作用还是挺大的,看下面的应用。
-03-
具体应用

1.将下面的姓名随机排序
如下图所示,要快速的将A列的姓名顺序打乱,就可以用到rand函数。添加一个辅助列,输入=rand(),然后点排序,就将姓名的顺序打乱,如果你对结果不满意,可以继续点排序,直到满意为止。前面加个序号列,是为了恢复原来的排序,可以和A列的对比一下。
2.生成随机不重复整数
现在有个题目是这样的,从1到20中随机取出5个数字,但是不能有重复的。该怎么办?用rand函数可以解决这个问题。如下图所示。
第一步,先用rand函数生成20个随机数。
第二步,在F列的5个单元格中,设置条件格式,如果有重复的会变红。可以看到,当我输入两个1时就变红了。
第三步,用一个排名函数rank。=RANK(A28,A$28:D$32)这个公式的意思就是A28在A$28:D$32这个区域中的排名,也就是A28这个随机数在这20个随机数中的排名。
其实这里有个关键的地方在于rand函数生成的随机数基本上没有重复的。所以它的排名也是没有重复的。在这20个随机数中,由于没有重复的,所以它们的各自排名只能是1-20之间的某一个数字。比如一个随机数排第2名,那么其他的随机数就不可能是第2名。所以无论怎么变化,都不会有重复的。
你可以想一下从50到100中随机取5个不重复的数字,该怎么办?还有一个问题是随机不重复小数怎么生成,虽然rand可以生成随机不重复小数,但是它的小数位数很长。假如在1.5到2.5中随机生成5个不重复的小数,且小数位数最多只有2位,又该怎么办?
3.设置抽奖名单
奖品的名额只有3个,在下面的名单中随机抽取3个作为中奖人。其实这也是个随机且不重复的问题。
第一步,像上面一样设置条件格式,是为了验证是否会有重复的。
第二步,在名单旁添加辅助列,用rand函数生成随机数。
第三步,用rank求随机数的排名。
第四步,用index返回名单。
制作抽奖名单,除了用rank函数,还可以用large,small等。
链接:
https://pan.baidu.com/s/1TMhCyYQtGIkLDByWD3dFtg
提取码:9yr9
(0)

相关推荐