数组随机生成_用Excel如何生成随机数字表

本文介绍了在Excel中生成随机数的方法。常用的随机函数有Rand和RandBetween,前者生成0到1之间随机数,后者生成指定范围随机数。还阐述了生成不重复随机数的两种方法,包括先生成种子再生成和用多个函数生成,并给出了具体操作步骤和公式说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

7edf60c4d86257da582ba7838e162819.gif“随机”是我们进行医学科研设计的基本原则之一,常用的随机方法有很多,其中随机数字表法就是最常用的随机方法,很多人不知道怎么生成随机数字表,其实Excel就可以完成。

在 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 保存,则每个单元格变为新生成的随机数;操作过程步骤,如下图所示:

ad1f7e4a15d9557e2f2df69f4868febd.gif

2、用 Rand() 生成指定范围的随机数

假如要生成 1 到 100 的随机数。选中 A1 单元格,把公式 =RAND()*(100 - 1) + 1 复制到 A1,按回车,则生成一个 1 到 100 之间的随机数;同样方法往下拖并保存生成其它随机数,操作过程步骤,如下图所示:

f04d651e9d9fc3c639f37358216becdb.gif

(二)用 RandBetween() 生成指定范围的随机数

假如要生成 50 到 100 之间的随机数。选中 A1 单元格,把公式 =RANDBETWEEN(50, 100) 复制到 A1,按回车,生一个 50 到 100 之间的随机数;同样用往下拖并保存的方法生成其它随机数,操作过程步骤,如下图所示:

d152f538ab2acdb93ca9bc76620e305e.gif

三、Excel生成不重复的随机数

(一)方法一:先生成种子再生成不重复的随机数

1、生成不重复的小数随机数。选中 A1 单元格,输入公式 =RAND(),按回车,则生成一个随机数,把鼠标移到 A1 的单元格填充柄上并往下拖,然后 Ctrl + S 保存,生成其它随机数;选中 B1 单元格,输入公式 =RAND()*A1,按回车,则生成一个不重复随机数,同样方法往下拖并保存,生成其它不重复随机数;操作过程步骤,如下图所示:

d8ec14029053698ef92bbf4842965d1e.gif

2、生成不重复的整数随机数

A、假如要生成 10 到 100 之间的不重复随机数。把公式 =RANDBETWEEN(10,100) 复制到 A1 单元格,按回车,生成一个随机数;用往拖并保存的方法生成其它随机数;把公式 =INT(RANDBETWEEN(10,100)*A1/100) 复制到 B1 单元格,按回车,生成一个不重复的随机数,同样用往下拖的方法,生成其它不重复的随机数;操作过程步骤,如下图所示:

aae8db60c1643a4f17921c54311db129.gif

B、公式说明:公式=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 之间的其它不重复随机数;操作过程步骤,如下图所示:

33c905488c60b035b7725fc3ac968278.gif

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}。

E、逆向解析公式执行过程

1)公式执行到最后一步变为 =SMALL({1;2;3;4;5;6;7;8;9;10},8},如下图所示:

39b6e34c555d1168f168cfe1fefb642b.png

2)公式=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},如下图所示:

312afc82c9fea66dc51c1367ab4f5d75.png

再看 A4 单元格中的同样步骤(选中 A4,打开“公式求值”窗口,点“求值”一直到与图9一样的步骤),第 1、3 个元素为 1,即 {1;0;1;0;0;0;0;0;0;0},为什么第 1、3 个元素为 1,其它元素为 0?,因为 1 和 3 已经生成了随机数,即 A2 和 A3 中的随机数,如下图所示:

36232d80f15a2c1c7ea44772effb2a46.png

继续往后执行,1 会变为 False,0 会变 True,如图11所示:

642b00fee02735b22023301f50ba8973.png

也就是为 False 的,就不会再从 ROW($1:$10)(即 {1;2;3;4;5;6;7;8;9;10})返回元素,如下图所示:

dfe7c7619d607b727d41e40a49417220.png

当用 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)),如下图所示:

bb795b57e98be239f09927a144396d56.png

按 Ctrl + Shift + 回车,则生成一个 10 到 100 之间的随机数,用往下拖的方法生成其它 10 到 100 之间的随机数,结果下图所示:

9c4b2e7177a3cec60ccb84c73c209477.png

注意:把公式复制到 A11 单元格和公式中修改的项,如$A$10:A10、ROW($10:$100) 和 90-ROW(10:10)。

   部分内容来源:百度经验

a5ebf09a05deec40ec9fcb5e5d1f7c7e.png

扫码关注

742dcf263285348d204dd022e054dc7f.png

逍遥君自习室

号主逍遥君:三甲医院医师,发表论文19篇,第一作者发表SCI论文8篇,主持国自然及各级别课题多项,丁香园、募格学术签约讲师,投资理财达人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值