Excel用Rand和RandBetween函数生指定范围且不重复的随机数
2019-03-22 16:30:12
如何看待百家号小程序热议话题「Excel用Rand和RandBetween函数生指定范围且不重复的随机数」
在Excel中,生成随机数有两个函数,分别为Rand函数和RandBetween函数,前者用于生成0到1之间的随机数,后者用于生成指范围的随机数。它们生成的随机数中都会产生重复值,如果要生成不重复的随机数得用变通的方法,通常有两种方法,一种为先生成种子再生成不重复的随机数,另一种为用多个函数生成。以下就是Excel生不重复随机数和小数随机数的具体操作方法,实例中操作所用版本均为Excel2016。一、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用Rand和RandBetween函数生指定范围且不重复的随机数的讨论请扫码关注百家号小程序签约作者「电脑技术角」
在Excel中,生成随机数有两个函数,分别为Rand函数和RandBetween函数,前者用于生成0到1之间的随机数,后者用于生成指范围的随机数。它们生成的随机数中都会产生重复值,如果要生成不重复的随机数得用变通的方法,通常有两种方法,一种为先生成种子再生成不重复的随机数,另一种为用多个函数生成。以下就是Excel生不重复随机数和小数随机数的具体操作方法,实例中操作所用版本均为Excel2016。一、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用Rand和RandBetween函数生指定范围且不重复的随机数的讨论请扫码关注百家号小程序签约作者「电脑技术角」
标签:百家号,话题,讨论
「Excel用Rand和RandBetween函数生指定范围且不重复的随机数」热议话题订阅
方法1:微信扫描百家号Lite小程序码即可订阅热议话题「Excel用Rand和RandBetween函数生指定范围且不重复的随机数」
方法2:微信搜索百家号Lite小程序名称进入,即可订阅热议话题「Excel用Rand和RandBetween函数生指定范围且不重复的随机数」
方法3:微信网页访问即速商店,长按识别百家号Lite小程序码即可订阅热议话题「Excel用Rand和RandBetween函数生指定范围且不重复的随机数」
百家号Lite小程序热议话题「Excel用Rand和RandBetween函数生指定范围且不重复的随机数」由百家号Lite原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
百家号Lite热议话题「Excel用Rand和RandBetween函数生指定范围且不重复的随机数」由百家号Lite开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。
百家号Lite小程序
更新时间:2019-03-22 16:30:12
悲天悯人的境界就是,
>湘西土家吊脚楼的故事
>“4·20”芦山地震5周年:龙门古镇展新颜
>“512”汶川地震:十年生死两茫茫
>“85度C”要凉了?被多家外卖平台下架!网友:就是因为她!母公司竟然这么说……
>“90后”方汉奇:用66年把冷板凳坐热
>“Hold住姐”:我终于hold住了自己的婚姻!
>“N字鞋”江湖:十亿财富与背后的乡土
>“POS机刷卡套现”有陷阱,老板莫名其妙被骗走了3000元
>“XXOO”是啥意思?我猜你是不懂的嘿嘿嘿
>“一代枭雄”曹操最经典的八首诗
>“一分一段表”你真的能看懂吗?
>“一夜情”最容易发生的十个地方, 排在榜首必去!
>“一夫当关,万夫莫开”,这样的险关隘口中国也就只有这几个
>“一秒之内变格格”谢依霖无预警宣布婚讯
>