一谈论到Excel函数的随机,大家肯定一开始就想到了Rand函数,该函数使用起来也非常简单。官方的帮助截图如下:
从官方帮助文档可以学习到两点:
① 若要生成a与b之间的随机实数,可以使用函数=RAND()*(b-a)+a;
② 保持单元格编辑状态,按F9键,可以将公式永久性的改为随机数(类似选中部分数组公式产生结果)。
其实如果希望产生1到100之间的随机整数,可以使用Excel提供的RANDBETWEEN函数来实现哦,具体方法如下:
当然今天为大家介绍的不是简单使用Rand或RandBetween函数,而是给定几个数,随机放到列的单元格中。
例如上图中的K列数据,如果希望其随机分布到J2:J7单元格,需要怎么去做呢?我们先来看一下实现的结果是什么,详细请见如下动态图:
每当按下键盘上的F9键,K列的数据,就会随机分布到J列上。为了解决这个问题,我们先想想能否随机生成1到6这几个数,然后随机分布到J列,最后在使用INDEX函数查找对应的数,这样也就实现了K列数值的随机分布了。
其实实现不重复的随机数字,可以不用辅助列和VBA,可以直接使用数组公式实现。实现的公式如下:
{=LARGE(ROW($1:$6)*(1-COUNTIF($I$1:I1,ROW($1:$6))),INT(RAND()*(7-ROW(A2))+1))}
因为该公式从I2单元格复制出来,所以COUNTIF函数中引用了I列。如果需要更换到其他列,请更换列号哦。
接下来为大家分析一下数组公式的含义,最外层的是LARGE函数,其实在前段时间为大家分享过一篇文章【20171215】- 有条件的排名案例分享(中国式排名和美式排名),已经介绍了这个函数,如果还不会使用的小伙伴可以点击观看哦。该函数一共两个参数,为了方便大家快速复习,我还是把官方帮助截取下来吧,如下图:
我们先来看第一个参数中的ROW($1:$6),用来产生一列包含1-6的垂直数组,如果需要更多的数值,可以修改6位所需要的数值哦。
(1-COUNTIF($I$1:I1,ROW($1:$6)))用COUNTIF函数判断已产生的数值,如果某个数字已在I列出现,则其对于的位置为0,否则为1。这两项相乘后得到一个包含“0”和未出现数字的数组。比如我们在I4单元格使用F9键查看一下第一个参数的值,如下图所示:
通过上图可以看到,在I2单元格显示4,I3单元格显示3,那么对应的数组{1;2;0;0;5;6}}第三位和第四位就为0,其他的位置显示对应的数值。
第二个参数为INT(RAND()*(7-ROW(A2))+1),其作用是产生一个随机整数,以I4单元格为例,由于已经出现了2个数字,还有4个数字为出现,故随机数最大的值为4,该项产生一个1-4之间的随机整数。
如果需要在行里显示随机整数列,可以使用数组公式:{=LARGE(COLUMN($A2:$F2)*(1-COUNTIF($M$2:M$2,COLUMN($A2:$F2))),INT(RAND()*(7-COLUMN(A2))+1))},详细演示如下动态图所示:
好了,今天
南京网站制作安优网络的随机数就介绍到这里了,大家在学习数组公式过程中遇到任何问题,欢迎给我们留言。
本文地址:
http://www.njanyou.cn/news/1293.html
Tag:
Excel
专业服务:
南京网站制作,
南京网站制作公司,
南京网站建设公司
联系电话:025-65016872
上一篇:
小数位数多少不一,设置小数点对齐,数值大小一目了然
下一篇:
小程序再添新入口,QQ浏览器网页版可以打开小程序!