如何生成随机数(随机数表法如何取数的)
Excel 中的随机数并非是每个用户都需要的功能 ,大多数人的数据都会使用固定数字和公式,可能不需要在他们的报告中出现随机数。
财务模型可以使用依赖于概率的随机模拟,有些数据模型可能需要运行数千次,但随机数生成器会提供每次模拟的参数。
无论您需要怎么样的随机数,Excel 都有多种生成它们的方法。
在这篇文章中,我将向您展示可用于将随机数插入到工作簿中的各种方法。1/ 使用 RAND 函数生成随机数
我将向您展示的第一种方法是在 Excel 中生成随机值的最简单方法。
Excel中有一个非常简单的RAND函数,它不需要参数,会生成一个 0 到 1 之间的随机数。
RAND 函数示例:= RAND ( )
此函数没有必需或可选的参数。该函数始终以一组空括号输入。此函数将生成一个介于 0 和 1 之间的随机小数,但不包括 0 或 1
有可能会存在重复值,但是概率会比较低,因为在0和1之间的小数是太多了。返回的值将遵循均匀分布。这意味着 0 和 1 之间的任何数字都有可能被返回。使用RAND()在任意两个数字之间生成随机数:
可以使用RAND()函数的简单公式在任意两个数字之间生成随机数。= RAND ( ) * ( Y - X ) X
这样就可以在 X 和 Y 之间创建一系列随机数。
在任意两个数字之间生成随机整数:
有时,我们遇到的需求是在两个给定数字之间生成随机整数。这也可以使用一个简单的公式来完成。= ROUND ( RAND ( ) * ( Y - X ) X, 0 )
即使用 ROUND 函数对RAND函数的结果进行四舍五入到零小数位
可以将这个公式复制到电子表格的列中,如果您一直按 F9 重新计算,您将看到从 1 到 10 的各种数字组合
但是由于整数数字是离散的,生成的随机数很可能在列表中重复,这取决于生成随机范围的最小值和最大值。= ROUND ( RAND ( ) * ( 4 - -3 ) -3, 0 )
这也适用于产生负数。假设需要生成-3到4之间的随机整数,那么上面的公式就是你所需要的
将 RAND 函数乘以 7 将产生 0 到 7 之间的随机数。将 -3 添加到结果并四舍五入到零小数位,这将给出 -3 到 4 的随机整数范围。2/ 使用 RANDBETWEEN 函数生成随机数
这个函数相对比使用 RAND 函数更容易使用,因为它包含额外的运算符来达到需要的特定随机数范围。
RANDBETWEEN 函数的语法:= RANDBETWEEN ( bottom, top ) bottom 是返回值的下限top 返回值的上限 函数将在下限值和上限值之间生成随机整数
RANDBETWEEN 函数示例:= RANDBETWEEN ( -3, 4 )
请注意,RANDBETWEEN 函数只能生成整数。没有办法让函数产生小数。然而,它比 RAND 函数来实现相同的结果要简单得多。3/ 使用 RANDARRAY 函数生成随机数
部分情况下,可能不仅需要单个随机值,还需要一组随机值。RANDARRAY 函数是对此的完美解决方案。它将用一组随机数填充一系列单元格,不过此功能仅适用于 Microsoft 365 版本的 Excel
RANDARRAY 函数的语法:= RANDARRAY ( [rows], [columns], [min], [max], [whole_number] ) rows是要返回的行数columns 是要返回的列数min 是随机数的最小值max是随机数的最大值whole_Number为 TRUE 返回整数,FALSE 返回小数
此函数的所有参数都是可选的。如果不包含任何参数,将获得一个带随机小数,与 RAND 函数的结果相同
RANDARRAY 函数示例:= RANDARRAY ( 4, 3, 6, 14, TRUE )
要生成 4 行 3 列的 6 到 14 之间的整数随机数数组,您可以使用上述公式。这将产生一个数组。注意到数字周围的蓝色边框了吗?这些都是由1个公式产生的
请注意,数组的左上角始终锚定在公式所在的单元格上。按 F9 重新计算电子表格将更改数组中的所有数字如果没有输入最小值或最大值,则将使用默认值 0 到 1。最小值必须小于最大值,否则会出现#VALUE!错误。如果更改了RANDARRAY公式中的行或列参数,数组将自动调整大小。这就是它们被称为动态数组公式的原因
注意:如果输入的输出范围内的一个单元格中已经有了数据,将收到#SPILL!错误,同时不会覆盖任何已有数据4/ 使用分析工具插件生成随机数
还有另一种方法可用于在不使用公式的情况下插入随机数。可以使用加载项来创建随机数。Excel 附带一个分析工具库加载项,但您需要先安装它才能使用它
1/ 单击功能区中的 文件 选项卡
2/ 在窗口的左下方窗格中,向下滚动并单击 选项
3/ 在弹出窗口的左侧窗格中,单击加载项
4/ 勾选 分析工具库,单击确定
5/ Excel 功能区的"数据"选项卡上,现在有一个名为"分析"的组,就可以看到到"数据分析"的选项
使用分析工具包生成随机数:
可以在其中输入参数以生成随机数变量数:这是输出表中所需的随机数列数。如果留空,则所有列都将填充在您指定的输出范围内随机数:这是要生成的随机数的行数。如果留空,指定的输出范围将被填充分布:可以从下拉列表中选择多种分布方法,例如均匀分布或正态分布。根据在此处的选择,参数部分将提供不同的选项参数:输入值以表征选定的分布随机种子:这是可选的,将是算法产生随机数的起点。如果再次使用相同的种子,它将产生相同的随机数。如果留空,它将从计时器事件中获取种子值输出区域:输入要在电子表格中构建表格的位置的左上角单元格。如果您将变量参数留空,则需要指定整个区域。请注意,该区域内的现有数据将被覆盖新建工作表:此选项将在工作簿中插入一个新工作表并将结果粘贴到单元格 A1单元格,在相邻的框中输入工作表名称,否则将使用默认名称新建工作簿:这将创建一个新工作簿并将结果粘贴到第一张工作表的单元格 A1 单元格中
5/ 用 VBA 生成随机数
VBA(Visual Basic for Applications)是位于 Excel 前端的编程语言,也可用于生成随机数。但是,它比简单地在 Excel 中的单元格中输入公式要复杂,而且需要一些编程知识才能使用它
要打开 VBA 编辑器,请使用Alt F11键盘快捷键
在窗口(项目资源管理器)的左侧窗格中,将看到打开的工作簿(包括加载项)和可用的工作表
在窗口顶部的菜单上,单击"插入",然后单击"模块"。这将向当前电子表格添加一个模块窗口。将以下代码粘贴或添加到模块中Sub RandomNumber() MsgBox Rnd() End Sub
按F5运行它,Excel 中将出现一条消息弹出窗口,并显示一个随机数。点击确定,您将返回代码窗口。
再次运行代码,将显示不同的随机数。随机数将介于 0 和 1 之间,但不包括 0 或 1 的值。
还可以为Rnd函数提供一个参数,该参数是用于生成随机数的算法起点的种子。如果种子值设置为负数或零,则每次将显示相同的随机数。
例如,如果您想生成 3 到 10 之间的完整随机数,则可以使用以下代码。此代码将随机数乘以 7,然后将其加 3,然后四舍五入到小数点零位。假设您想在单元格中显示您的随机数。您可以使用以下代码执行此操作Sub RandomNumberSheet() Dim M As Integer For M = 1 To 5 ActiveSheet.Cells(M, 1) = Round((Rnd(10) * 7) 3, 0) Next M End Sub
还有一个名为Randomize的 VBA 函数。可以在Rnd函数之前使用它来将种子值重置为计时器事件或任何给定的参数Sub RandomNumberV2() Randomize (10) MsgBox Round((Rnd() * 7) 3) End Sub 6/ 生成不重复的随机数
可能会遇到这样一种情况:想生成一系列随机数,但又不想看到任何重复值出现。
可能希望从 1 到 10 的数字之间选择 3 个随机数,但其中 3 个所选数字中的每一个都是唯一的。
有几种可能的解决方案:RANK.EQ 和 COUNTIF 函数的解决方案:
先使用RANDBETWEEN创建随机数,然后使用下一列中的公式对它们进行排名,从而从 1 到 10 的随机排序序列= RANDBETWEEN ( 1, 10 )
然后,可以使用RANK.EQ函数对它们进行排名,以创建一个从 1 到 10 的序列,该序列是随机排序的= RANK.EQ ( B2, $B$2:$B$11 ) COUNTIF ( $B$2:B2, B2 ) - 1
注意,公式使用了绝对引用($符号),以便在向下复制公式时公式引用保持固定用 VBA 解决:
还可以使用 VBA 生成一串从 1 到 10 的无重复随机数Sub RandomNumberNoDuplicates() Dim M As Integer, Temp As String, RandN As Integer For M = 1 To 5 Repeat: RandN = Round((Rnd(10) * 9) 1, 0) If InStr(Temp, RandN) Then GoTo Repeat ActiveSheet.Cells(M, 1) = RandN Temp = Temp
腰肌劳损什么原因(腰肌劳损要吃什么药)提到腰肌劳损这一疾病,大家并不陌生,此病也是生活中很常见的一种中老年疾病,此病发生后给患者带来的伤痛是很大的,而且此病也会随着年龄的增长而加重,所以大家一定要掌握此病的护理方法,才
腰肌劳损症状有哪些(腰肌劳损疼痛区域图片)据调查显示,我国已经有两亿人腰椎出现了问题。也就是说,十三个人里面就有两个人腰不好,细思极恐有没有。随着90后00后逐步参加工作,越来越多的年轻人出现腰痛腰酸不能负重的状况。腰肌劳
腰疼看什么科(月经腰疼挂什么科)很多人对于生病了挂哪个科都有不同的看法。如果感觉到腰痛,有些人会去挂骨科,而有些人会挂妇科。这导致有些人对腰痛应该挂哪个科有疑问。那么,女性感觉到腰痛的时候,应该挂哪个科呢?很多女
孕妇羊水破了多久生(开十指羊水破了还有多久生)文福林妈咪要说强悍的孕妇,我觉得国外有好多。之前有看过国外的美妆博主,等待开指的时候还在作美妆直播,下播之后带着妆容分娩。后来我搜集一些类似的强悍孕妇的资料的时候,看到了一条以前的
公猫绝育多少钱(公猫绝育就不发腮了吗)我以为我第一次去宠物医院不会踩坑,尽量避坑,没想到,第一次居然踩坑了。网上只用36,这个医院要90,还是太年轻了,当时交了智商税了。我养了九只猫两只狗。我的猫之前在宠物医院绝育了三
猫咪为什么要绝育(母猫绝育太贵了很多人不绝育)现在很多人都喜欢饲养可爱呆萌的猫咪,在饲养过程中,随着猫咪逐渐发育长大,主人就要面对是否给自家猫咪做绝育的选择问题了。那你知道为什么大部分人都会选择带自己的猫咪去做绝育手术吗?因为
普拉提是什么(普拉提图片)生活态度有态度重塑理想生活以优雅与他人相待以精致与当下相邀以深情与生活相拥关于理想的生活每一个女生都有属于自己的不同态度用心对待生活中的每一天精心挑选自己喜爱的衣服鞋子用特别的小创
腰伤多久恢复(跑步扭到要多久才能恢复)腰扭了伤怎么办,腰扭伤了最快恢复方法在日常生活中,腰部很容易受伤。常常需要进行重力运动的人们,常常会出现腰扭了的状况。那么腰扭了怎么才能最快恢复?腰扭伤了多久才能恢复?下面小编将为
哪里的普洱茶(普洱茶主产区)文丨沈沐图丨沈沐普洱茶界向来有一山一味的说法,指的是不同山头或村寨出产的普洱茶风味各有特点。普洱茶产区主要有云南省西双版纳临沧普洱等地区,细分下去有多个山头,比如易武茶山倚邦茶山勐
烩面是哪里的(河南烩面正宗是哪个城市)大河网讯(记者生俊东通讯员王柑楠董振万)眼下,方城烩面入选国泰民安国庆面一书,为倡导国庆新民俗,10月3日,方城县启动同吃家乡烩面共祝祖国繁荣国庆爱国周主题活动,该县先模环卫工,人
香椿哪里有(中国香椿主产区)中新网达州3月18日电(记者张浪)18日,在四川省达州市大竹县石河镇210国道两旁,挤满了来自各地的客商,只为抢购到清晨成色最佳的大竹香椿。与此同时,当地农民用背篓将采摘的新鲜香椿