- ?
Excel快速生成不重复的1-N区间的随机数
莫水风
展开
Excel中产生随机数的函数有两个,Rand函数和Randbetween函数
Rand函数使用
Rand()不带任何参数,表示生成一个0-1的随机实数,其后面小数点可以具体到15位,如下所示:
Randbetween函数使用
在单元格中输入=randbetween(1,20),产生的是1-20区间的随机整数
如果我们现在想要生成一串数字,它是某个区间不重复的数据
例1、生成1-10区间的不重复数据。
如果想抽取其中的几个,例如5个,则在A列中输入函数=rand(),生成的是1-10区间的,有10个数,所以从A1填充至A10,总共10个随机数,然后在B列输入=rank(a1,a:a),需要几个就向下填充几个即可,得到的就是不重复的5个数据
如果想得到10个不重复的随机数, 那只需要将B列填充10个即可,如下所示:
例2,生成30-39区间的不重复随机数
【30-39】区间共有10个数,所以在A列生成10个rand()函数,然后在B列输入公式
=29+RANK(A1,A:A)即可
例3,生成2000-3000能除以100的整数的随机不重复整数
【2000-3000】中有11个,所以在A列填充11个rand()函数,然后在B列输入公式:=(19+RANK(A1,A:A))*100即可
其他情况也都是举一反三的,本节完
你学会了吗?为自己持续学习的态度点个赞呗!
---------------------
欢迎留言,转发,关注,更多精彩内容持续更新中...
- ?
Excel函数公式:RAND、INDEX、MATCH、SMALL函数的另类应用技巧
杭卿
展开
滚动抽奖,已经是不能再普通的话题了,常见的操作就是用一个箱子来完成……随着现代化的发展,现在的抽奖都用电脑控制来完成抽奖。如果我们想在Excel中制作一个建议的抽奖器,该如何去实现呢?
一、效果演示。
从演示中我们可以看出,中奖名单是随机的,没有规律性的,那么该如何去实现了?
二、实现步骤。
(一)、准备数据库。
方法:
1、将所有参与抽奖人的姓名录入Excel表格中。
2、添加辅助列,并在辅助列输入公式:=RAND()。
(二)、构建抽奖界面并进行抽奖。
方法:
1、在中奖名单单元格中输入公式:=INDEX(A:A,MATCH(SMALL(B:B,D3),B:B,0))。
2、按F9键进行刷新,中奖名单就会不断变化,当需要时松开F9键即可。
解读:
1、滚动抽奖界面可以根据自己的实际情况去设定。完全根据自己的意愿。
2、如果为一等奖,中奖人员为1名,暨一个单元格;二等奖2人,暨为2个单元格……也可以根据自己的实际情况来决定。
3、公式=INDEX(A:A,MATCH(SMALL(B:B,D3),B:B,0))中,首先用SMALL函数读取D3单元格位置上的值,然后用MATCH函数对齐进行定位,然后用INDEX读取。因为RAND函数的主要功能是生成随机数,所以每次用SMALL函数读取的数不一样,用INDEX读取的名单也就不一样。
- ?
随机数函数Rand、Randbetween实战技巧—自动化分配监考员等技巧
Shao
展开
在前期讲解随机数的函数之后,好多同学留言询问,随机数到底怎么使用?有没有具体的应用案例等……今天小编结合实际情况,对随机数的具体应用做一下具体讲解。
一、随机数函数解读。
1、生成0-1之间的随机数。
方法:
1、在目标单元格中输入公式:=RAND()。
2、如果要快速再次生成随机数,只需按F9键即可。
解读:
Rand函数没有参数,可以生成0-1之间的随机数,其小数位数可以精确到小数点后15位。
2、1-N,N-N之间的随机数。
方法:
1、在目标单元格中输入公式:=RANDBETWEEN(1,40)、=RANDBETWEEN(50,150)。
2、如果要快速再次生成随机数,只需按F9即可。
二、生成指定范围内的不重复随机数。
1、1-10不重复随机数。
方法:
1、添加辅助列(辅助列1,辅助列2,1-10之间不重复随机数)。
2、在辅助列1中输入公式:=RAND(),并复制生成的随机数。
3、将辅助列1中的随机值以【值】的形式粘贴到辅助列2中。
4、在1-10之间不重复随机数列输入公式:=RANK(D3,D$3:D$12)。
5、以【1-10之间的不重复随机数】列为主要关键字进行升序排序。
解读:
1、将辅助列1的随机值以【值】的形式粘贴到辅助列2中的目的在于固定其值的变化,毕竟生成随机值的目的在于应用,如果一直处于变化状态,就是去了其目的和意义。当然,如果感觉辅助列1中的随机值不够“随机”,可以多按F9刷新几次即可哦!
2、Rank函数的主要作用在于:返回某一个值在某一指定范围中的排序,如果多个值排名相同,则返回平均值排名。其语法结构为:=Rank(排序的值,排序值所在的范围)。
3、如果万一生成的随机数有重复值,我们该如何去发现并有效解决了?其实方法比较简单哦,首先我们使用Countif函数判断当前值在当前范围中出现的次数,如果都为1,则表示不重复,如果有大于1的情况,说明有重复值,只需重复方法中的1、2、3步,直到Countif函数的所有返回值为1即可。本示例中Countif函数的具体公式为:=COUNTIF(D3,D$3:D$12)。
2、1-N不重复随机数。
方法:
1、添加辅助列(本示例中已添加)。
2、在辅助列1中输入公式:=RAND(),并生成的随机值以【值】的形式粘贴到辅助列2中。
3、在辅助列3中输入公式:=COUNTIF(D3,D:D),判断生成的随机值是否有相同的情况,如果返回值大于1,则为重复,否则为不重复。重复的情况需要继续步骤2,直到所有的返回值为1即可哦!
4、在辅助列1-N之间不重复随机数列输入公式:=RANK(D3,D:D)。
5、以【1-N之间不重复随机数】为主要关键字进行【升序】排序。
解读:
1、数字N可以根据实际情况来决定,如果有N条件数据,所有的辅助列的值即为N行即可。
2、由于系统对图片大小的限制,对演示动图进行了压缩处理,如果有不清晰的地方请结合操作步骤学习,或者在留言区留言讨论哦!
3、50-100之间不重复随机数。
方法:
1、辅助列1、2、3的操作步骤相信大家已经掌握了,如果有掌握的请查阅前文中的相关解读。
2、在1-N之间生成的不重复随机数列输入公式=RANK(D3,D:D)+49,并进行升序排序。
解读:
1、我们已经知道利用公式=Rank(D3,D:D)排序的结果值最小的值为1,而我们要生成50-100之间的值,所以只需在公式的末尾加50-1=49。暨范围中最小值减去1即可。
三、应用示例。
(一)、给考场分配监考员。
步骤:
1、准备监考员信息表并添加辅助列。
2、生成不重复随机序号。
方法:
1、在辅助列1中输入公式:=RAND(),并将随机生成的值复制,以【值】的形式粘贴的辅助列2。
2、在查重列输入公式:=COUNTIF(G3,G:G),如果得到的值全部为1,则说明没有重复值,如果得到的值有大于1的情况,重复步骤1。
解读:
此操作中用到了很多实用技巧,如果双击填充柄快速填充其他数据单元格,快捷键Ctrl+Shift+向下箭头快速选定表格内容等,大家在实际的操作中要主要掌握,如果数据量庞大,将非常的实用哦!
3、生成考场号。
方法:
1、在不重复序号列输入公式:=RANK(G3,G:G)。
2、以【不重复序号列】为主要关键字进行【升序】排序。
3、在考场号列输入公式:=ROUND(I3/2,0)。
解读:
1、升序排序的目的在于形成新的序列,暨第二次随机将人组合在一起。
2、示例中以两个人为一个考场进行人员分配。
(二)、随机分配考场或分班。
1、准备考生信息表会学生信息表并添加辅助列。
2、生成不重复随机序号。
方法:
1、在辅助列1中输入公式:=RAND(),并将随机生成的值复制,以【值】的形式粘贴的辅助列2。
2、在查重列输入公式:=COUNTIF(G3,G:G),如果得到的值全部为1,则说明没有重复值,如果得到的值有大于1的情况,重复步骤1。
3、生成考场号或班级号。
方法:
1、以不重复序列号为主要关键字进行升序排序。
2、在考场号列输入公式:=IF(I3<=25,1,IF(I3<=50,2,IF(I3<=75,3)))。
3、在班级列输入公式:=IF(I3<=40,1,IF(I3<=80,2,IF(I3<=120,3)))。
解读:
1、其实分考场和分班公式的道理是相同的,考场一般情况下有25人,如果随机生成的不重复序号小于等于25,则为1考场,否则进行判断,如果小于等于50,则为2考场,以此类推,只是班级的人数稍多一点而已,40人。如果随机生成的不重复序号小于等于40,则为1班,否则进行判断,如果小于等于80,则为2班,以此类推……
结束语:
本文主要讲解了随机数的生成以及结合具体示例的应用,从随机数的原理到实际应用,阐述了随机数的应用价值,希望对各位亲的工作有所帮助和提高,学习过程中如果遇到任何问题,欢迎大家在留言区留言讨论哦!
- ?
Excel随机取值,给你三种解决方案
友灵
展开
所谓随机取值,顾名思义,就是从一堆数里,随机抽取几个或几组数;常用于抽奖、抽查、数据随机分组等。
举个栗子,如下图所示,A2:A21是EH培训学院的20名……男女。现在需要从中随机抽取3人,授予38红旗手的称号,并奖励老祝香吻一枚。
解法1:辅助列法
使用辅助列,解决此类问题,应是最简单较快捷的一种解法,基本上老少咸宜,稍有函数公式基础就可以掌握了。
首先将C列作为辅助列,C2输入以下公式,并复制填充至C2:C21区域。
=RAND()
RAND函数生成大于等于0、小于1的随机数。
其次,在E2单元格输入以下公式,复制填充至F2:F4区域即可得到抽奖结果了。
=INDEX(A:A,MATCH(LARGE(C:C,ROW(A1)),C:C,))
LARGE(C:C,ROW(A1)),随着公式向下填充,依次从C列里提取第1、2、3最大的数值;再使用INDEX+MATCH的查询套路得出结果。
结果可能如下:
耸肩,摊手:现在问题来了——请问老祝如何亲吻老祝呢?
想想都太有挑战性了。哈哈哈
。
解法2:一条公式
好伐,打个响指,那能不能只用一条函数公式得出最终结果?
当然也可以,只是稍显复杂。
选取E2:E4单元格区域,使用数组三键(同时按下Ctrl+Shift+Enter)输入以下公式,即可得出结果。
=INDEX(A:A,RIGHT(SMALL(RANDBETWEEN(1^ROW(2:21),99)/1%+ROW(2:21),ROW(1:3)),2))
RANDBETWEEN(1^ROW(2:21),99),随机取得>=1且<99的20个整数,生成一维纵向内存数组,例如:
{3;17;11;40;64;65;75;83;19;37;88;74;76;17;46;39;43;80;38;92}
之后除以1%,将随机值放大百倍,再加上人名所在行的行号(+ROW(2:21)),使用SMALL函数依次从小到大取值,使用RIGHT函数重新取出行号,最后使用INDEX函数得出抽奖结果。
敲黑板!注意这是一条区域数组公式。
公式的计算原理其实是酱紫;
我们把20位男女所在的行号,看成是座位号。我们对座位号随机加上不同的权重,然后重新进行排队(升序用small,降序用large),得到一个打乱了的座号排列结果,最后依次将人名取出即可。
公式计算结果可能如下:
——挑眉!震惊!震惊!!老祝居然如何自恋!自吻3×2次。天啦噜~哈哈哈
。
解法3:洗牌吧
VBA的解法也有多种,最不用动脑的是字典法,但效率偏差,此处略过不提。
嗯,分享下最有效率也最有扩展性的洗牌法。
先讲个故事,憋走开……
假设有一名班花,有一天早晨想斗地主,目前的情况很明显是一缺三,于是打算从全班20位同学里随机抽3人。班花把他们喊出教室,排成一字纵队。
第一步,从20人里随机抽取1人。假设抽到的是排在第15位的“随风小妞”。把她揪出来,拖到第1位去,然后把原本排在第1位的某童鞋安排到第15位去。这样,就成功抽取了一名……牌友。现在是2缺2。
第二步,从排在第2位和第20位之间的童鞋里再随机抽取一人——为什么不是从第1位开始抽呢?
“随风小妞”举手回答说她已经被抽过了,不能被抽第二次(意思就是她不欠抽了)。
假设这次抽到了排在第6位的“空空”,把她请出来,送到第2位去,再把原本排在第2位的某同学安排到第6位。现在是3缺1了。
第3步,从第3位到第20位之间的童鞋再随机抽取1人,排到第3位去。这样,队伍里的前3名就是今天的牌友了。恩,加上班花,4人刚好,散队,打牌去。
是的,现在,只要我们把上面的故事翻译成VBA代码,之前的示例问题也就解决了。
代码如下:
Sub ehkjxg()
Dim r, i&, t, x&
Randomize '随机种子初始化
r = [a2:a21] '将学生喊出教室,装入数组r
For i = 1 To 3 '抽3个人
x = Int(Rnd() * (UBound(r) - i + 1)) + i
'依次从第1~2……位置起随机抽取学生
t = r(x, 1) '被抽中的学生出列
r(x, 1) = r(i, 1) '前列的学生去被抽中学生的位置
r(i, 1) = t '被抽中的学生站到前排去
Next
[e2].Resize(3, 1) = r’将队伍的前3名学生(抽取结果)放入抽奖区
End Sub
或许有人问,为什么一定要把抽出来的牌友放到队伍前面去?放到队伍后面行不行?另起一队行不行?其实都可以。
这不是问题的关键。问题的关键在于,每抽出一位牌友,他原来的位置务必不能留空,可以由队前或队尾的人补进来。这样,随机取值的范围渐渐收窄,不白抽,亦不抽错。
- ?
Excel函数公式:含金量超高的随机数、不重复随机数生成技巧解读
幼旋
展开
随机数,在我们的日常中的应用也是非常广泛的,那么,如何生成随机数,如何生成不重复的随机数,你真的了解吗?
一、生成0-1之间的随机数。
方法:
1、在目标单元格中输入公式:=RAND()。
2、如果要重新生成,按F9刷新即可。
解读:
Rand函数没有参数,可以生成0-1之间的随机数,小数位数可以具体到15位。
二、1—N、N—N+N之间的随机数。
方法:
1、在目标单元格中输入公式:=RANDBETWEEN(1,20)、=RANDBETWEEN(50,100)。
2、如果要重新生成,按F9刷新即可。
解读:
1、RANDBETWEEN函数具有两个参数,分别为随机数范围的起始值和终止值,包括起始值和终止值。
2、从上述的两个示例中我们可以看出,随机数的生成技巧,但是,生成的随机数中有重复值,如果我们不需要重复值,该如何去操作呢?
三、1-10不重复数。
方法:
1、在辅助列1中输入公式:=RAND()。
2、将辅助列1中的随机值以【值】的行驶粘贴到辅助列2中。
3、在不重复列中输入公式:=RANK(D3,D$3:D$12)。
4、对不重复列【排序】。
四、1-N不重复随机数。
方法:
1、在辅助列1中输入公式:=RAND()。
2、将辅助列1中的随机值以【值】的行驶粘贴到辅助列2中。
3、在不重复列中输入公式:=RANK(D3,D:D)。
4、对不重复列【排序】。
解读:
数字N可以根据实际需要来决定,如果有多行,辅助列1和辅助列2的值也需要N行即可。
五、20-40之间的不重复随机数。
方法:
1、在辅助列1中输入公式:=RAND()。
2、将辅助列1中的随机值以【值】的行驶粘贴到辅助列2中。
3、在不重复列中输入公式:=RANK(D3,D:D)+19。
4、对不重复列【排序】。
解读:
1、生成20-40之间的随机数,相对于生成1-N之间的随机数唯一不同之处在于公式:=RANK(D3,D:D)+19中加了19,所以大家要注意哦。
2、生成N-N+X之间的数,辅助值的确定方法为N-1,例如生成20-40之间的数,加的值为20-1=19。
六、200-400之间的不重复随机数。
方法:
1、在辅助列1中输入公式:=RAND()。
2、将辅助列1中的随机值以【值】的行驶粘贴到辅助列2中。
3、在不重复列中输入公式:=RANK(D3,D:D)+199。
4、对不重复列【排序】。
结束语:
通过上述示例的学习,相信大家对于各类随机数的生成已经有所掌握了,学习过程中,如果有新的意见或观点,欢迎大家在留言区留言讨论哦!
- ?
Excel 随机数函数RAND和排名函数RANK教程
漂浮
展开
Excel的随机整数函数RANDBETWEEN可以制作抽奖器大家都知道,当然有个缺点大家也都清楚,就是生成的数据经常出现重复的,关键时刻,一人中奖好几次,是多么尴尬的事情,所以,今天小编要分享一个新技能—制作不重复的随机抽奖器。更多Excel学习和问题请加群:289393114、570064677
案例数据表格如图中所示,如何从A列的员工列中随机抽出三名幸运员工,要一次搞定,不要出现一个员工出现多次的情况。
StepA如果不考虑重复的问题,一个公式”=INDEX($A$2:$A$7,RANDBETWEEN(1,3))”就可以轻松搞定,可问题偏偏就出在了这里。
StepB所以我们接下来要做的就是如何生成不重复的随机整数了。Excel中除了RANDBETWEEN函数可以生成随机数外,还有一个RAND函数可以生成随机数,不过是小数,所以重复的概率微乎其微,几乎可以说是没有重复的。所以我们首先要做的就是利用RAND函数生成一列随机数。在E2输入公式“=RAND()”,下拉填充至E7,为每位员工生成一个随机幸运数字。
StepC小伙伴们都知道,INDEX函数行列参数只能为整数,所以我们需要将小数转换为整数,强烈推荐使用RANK排名函数来实现,因为每个数据是随机的,所以排名结果当然也是随机的,在F2输入公式“=RANK(E2,$E$2:$E$7)”,获取各位员工的随机排名整数。
StepD最后一步,INDEX返回具体姓名。修改C2的公式为“=INDEX($A$2:$A$7,F2)”,由于每个人对应产生的整数都是随机的,所以公平性杠杠的!
- ?
EXCEL批量随机生成指定起止日期内的日期 随机数函数实例
房小萱
展开
本图文案例教程 由本人所录制视频转制而成,喜欢看视频的同学请移步到头条号Excel880观看地址如下
关键字:
案例文件可到EXCEL880网站下载
详细步骤图文演示如下
1.案例情况
2.效果如下
3.取A,B之间的随机数
通用公式 = rand()*(g$3-f$3)+f$3
在Rand函数帮助里有讲rand()*(a-b)+b就可以求出a,b之间,把A,b换成自己的单元格即可,注意相对引用.
4日期随机范围
=randbetween(f$8,g$8)
因为日期就是整数,我们只要用randbetween直接处理就好啦…换成你自己的单元格哦…
- ?
Excel中如何随机获得1到10之间整数?用这个公式轻松实现
冰箱
展开
Excel中随机函数是rand,可以随机得到0-1之间的小数,即得到大于0但小于1的小数,而且该函数每次结果不一样。
1、例如我们在单元格输入 =rand()
2、得到结果
3、当我们再次输入 =rand()时
4、此时得到随机值是
5、利用rand随机数的特性,我们可以利用公式 =INT(RAND()*9+1) 得到1-10之间的整数。 此处的int函数是取整的意思
6、此时得到1到10之间的随机整数是
同样的公式 =INT(RAND()*9+1) 每次得到的结果也是不一样,数值是1到10之间。快去试试吧。
- ?
Excel用Rand和RandBetween函数生指定范围且不重复的随机数
痰盂
展开
在 Excel 中,生成随机数有两个函数,分别为Rand函数和RandBetween函数,前者用于生成 0 到 1 之间的随机数,后者用于生成指范围的随机数。它们生成的随机数中都会产生重复值,如果要生成不重复的随机数得用变通的方法,通常有两种方法,一种为先生成种子再生成不重复的随机数,另一种为用多个函数生成。以下就是Excel生不重复随机数和小数随机数的具体操作方法,实例中操作所用版本均为 Excel 2016。
一、Excel随机数生成函数
(一)Rand函数
1、表达式:RAND()
2、说明:RAND() 用于生成 0 到 1 之间均匀分布的随机数。如果要生成指定范围的随机数,表达式可以这样写:RAND()*(b-a) + a。
(二)RandBetween函数
1、表达式:RANDBETWEEN(bottom, top)
2、说明:RandBetween 用于生成指定范围的随机数,bottom 为生成随机数的开始值,top 为生成随机数的最大值。例如:要生成 10 到 100 的随机数,可以这样写:RANDBETWEEN(10, 100)。
二、Excel随机数生成的方法举例
(一)用 RAND() 生成小数随机数
1、选中 A1 单元格,输入公式 =RAND(),按回车,则生成一个小数随机数;再次选中 A1,把鼠标移到 A1 右下角的单元格填充柄上,按住左键,往下拖,则所经过单元格都用 A1 的值填充,按 Ctrl + S 保存,则每个单元格变为新生成的随机数;操作过程步骤,如图1所示:
图12、用 Rand() 生成指定范围的随机数
假如要生成 1 到 100 的随机数。选中 A1 单元格,把公式 =RAND()*(100 - 1) + 1 复制到 A1,按回车,则生成一个 1 到 100 之间的随机数;同样方法往下拖并保存生成其它随机数,操作过程步骤,如图2所示:
图2(二)用 RandBetween() 生成指定范围的随机数
假如要生成 50 到 100 之间的随机数。选中 A1 单元格,把公式 =RANDBETWEEN(50, 100) 复制到 A1,按回车,生一个 50 到 100 之间的随机数;同样用往下拖并保存的方法生成其它随机数,操作过程步骤,如图3所示:
图3三、Excel生成不重复的随机数
(一)方法一:先生成种子再生成不重复的随机数
1、生成不重复的小数随机数。选中 A1 单元格,输入公式 =RAND(),按回车,则生成一个随机数,把鼠标移到 A1 的单元格填充柄上并往下拖,然后 Ctrl + S 保存,生成其它随机数;选中 B1 单元格,输入公式 =RAND()*A1,按回车,则生成一个不重复随机数,同样方法往下拖并保存,生成其它不重复随机数;操作过程步骤,如图4所示:
2、生成不重复的整数随机数
A、假如要生成 10 到 100 之间的不重复随机数。把公式 =RANDBETWEEN(10,100) 复制到 A1 单元格,按回车,生成一个随机数;用往拖并保存的方法生成其它随机数;把公式 =INT(RANDBETWEEN(10,100)*A1/100) 复制到 B1 单元格,按回车,生成一个不重复的随机数,同样用往下拖的方法,生成其它不重复的随机数;操作过程步骤,如图5所示:
图5B、公式说明:公式 =INT(RANDBETWEEN(10,100)*A1/100) 先用 RANDBETWEEN 求出 10 到 100 之间的随机数,然后乘 A1 中的随机数,再除以 100 以确保所求随机数在 10 至 100 之间,最后用 Int 函数取整。
提示:这个方法不能确保绝对不生成重复的随机数,当每次生成的随机数有两组完全相同时,同样会生成重复的随机数。例如,A2 和 B2 生成的随机数与 A5 和 B5 生成的随机数相同,那么 B2 = A2 × RAND() 等于 B5 = A5 × RAND(),则在 B2 与 B5 生成的随机数相同。
(二)方法二:用公式生成准确不重复随机数
1、假如要生成 1 到 10 之间的不重复随机数。把公式 =SMALL(IF(COUNTIF($A$1:A1,ROW($1:$10))=0,ROW($1:$10)),INT(RAND()*(10-ROW(1:1))+1)) 复制到 A2 单元格,按 Ctrl + Shift + 回车,则生成一个 1 到 10 之间的不重复随机数;把鼠标移到 A2 的单元格填充柄上并往下拖,然后保存,则生成 1 到 10 之间的其它不重复随机数;操作过程步骤,如图6所示:
2、公式说明
A、$A$1:A1 中的 $A$1 表示绝对引用,A1 表示相对引用,即往下拖时,$A$1 始终不变,A1 则会变为 A2、A3 等。
B、ROW($1:$10) 是对一组单元格的引用,返回一个 1 到 10 的数组,即 {1;2;3;4;5;6;7;8;9;10}。
C、ROW(1:1)是对一个单元格的引用,返回一个一行一列的数组,往下拖时会变为 ROW(2:2)、ROW(3:3) 等。
D、用公式求值查看公式执行过程
选中 A2 单元格,选择“数据”选项卡,单击“公式求值”,打开“公式求值”窗口,单击一次“求值”,则计算一步。第一次单击“求值”,把公式中的 ROW($1:$10) 变为 {1;2;3;4;5;6;7;8;9;10},下面的求值步骤请看演示,如图7所示:
E、逆向解析公式执行过程
1)公式执行到最后一步变为 =SMALL({1;2;3;4;5;6;7;8;9;10},8},如图8所示:
图82)公式 =SMALL({1;2;3;4;5;6;7;8;9;10},8} 的意思是:从数组 {1;2;3;4;5;6;7;8;9;10} 中找出第8小的数,即为 8;也就是说前面步骤所要做的工作就要生成数组 {1;2;3;4;5;6;7;8;9;10} 和生成序号 8。
3)IF(COUNTIF($A$1:A1,ROW($1:$10))=0,ROW($1:$10)) 负责生成数组 {1;2;3;4;5;6;7;8;9;10},INT(RAND()*(10-ROW(1:1))+1) 负责生成序号 8。
4)COUNTIF($A$1:A1,ROW($1:$10) 是统计数组 {1;2;3;4;5;6;7;8;9;10} 每个元素在 A1 中出现的个数,A1 单元格为空,因此,统计结果全为 0,即{0;0;0;0;0;0;0;0;0;0},如图9所示:
图9再看 A4 单元格中的同样步骤(选中 A4,打开“公式求值”窗口,点“求值”一直到与图9一样的步骤),第 1、3 个元素为 1,即 {1;0;1;0;0;0;0;0;0;0},为什么第 1、3 个元素为 1,其它元素为 0?,因为 1 和 3 已经生成了随机数,即 A2 和 A3 中的随机数,如图10所示:
图10继续往后执行,1 会变为 False,0 会变 True,如图11所示:
图11也就是为 False 的,就不会再从 ROW($1:$10)(即 {1;2;3;4;5;6;7;8;9;10})返回元素,如图12所示:
图12当用 Small 从{False;2;False;3;4;5;6;7;8;9;10} 返回元素时,只从数字中返回,False 将被忽略。
5)RAND()*(10-ROW(1:1))+1 表示生成 1 到 10 之间的随机,可参照 Rand() 生成指定范围(a 到 b)的随机数公式 RAND()*(b-a) + a;最后用 Int函数取整。
3、如果要生成 10 到 100 之间的不重复随机数,公式可以这样写:
=SMALL(IF(COUNTIF($A$10:A10,ROW($10:$100))=0,ROW($10:$100)),INT(RAND()*(90-ROW(10:10))+1)),如图13所示:
图13按 Ctrl + Shift + 回车,则生成一个 10 到 100 之间的随机数,用往下拖的方法生成其它 10 到 100 之间的随机数,结果如图14所示:
图14注意:把公式复制到 A11 单元格和公式中修改的项,如 $A$10:A10、ROW($10:$100) 和 90-ROW(10:10)。
- ?
Excel函数公式:Excel生成随机数,你会吗
纠结
展开
随机数,在我们的工作中也是非常的常见,但是在Excel中如何生成随机数,得到我们需要的随机数呢?
一、生成0至1之间的随机数。
方法:
在目标单元格中输入公式:=RAND()。
二、生成1至10之间的随机数。
方法:
在目标单元格中输入公式:=RANDBETWEEN(1,10) 。
三、生成10至100之间的随机数。
方法:
在目标单元格中输入公式:=RANDBETWEEN(10,100)。
通过上面的三个示例,相信大家对RAND函数已经有了一定的了解,在我们的工作总只要加以灵活用于即可。
excel随机数函数
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并