Table of contents
在这篇文章中,我们将讨论几个不同的公式,以在Excel中随机化而不重复的数字。 此外,我们将向你展示一个通用的随机生成器,可以产生一个没有重复的随机数字、日期和字符串的列表。
你可能知道,Microsoft Excel有几个生成随机数的函数,如RAND、RANDBETWEEN和RANDARRAY。 然而,不能保证任何函数的结果都是无重复的。
本教程解释了创建唯一随机数列表的几个公式。 请注意,有些公式只在最新版本的Excel 365和2021中工作,而其他公式可以在任何版本的Excel 2019、Excel 2016、Excel 2013和更早的版本中使用。
获取一个具有预定步骤的唯一随机数列表
只在支持动态数组的Excel 365和Excel 2021中工作。
如果你有最新的Excel版本,最简单的方法就是让你的 唯一的随机数列表 是结合3个新的动态数组函数:SORTBY、SEQUENCE和RANDARRAY。
sortby(sequence( n ), RANDARRAY( n ))在哪里? n 是你想得到的随机值的数量。
例如,要创建一个5个随机数的列表,用5表示 n :
=sortby(sequence(5), randarray(5))
在最上面的单元格中输入公式,按回车键,结果会自动溢出到指定数量的单元格中。
正如你在下面的截图中看到的,这个公式实际上是 将1至5的数字按随机顺序排序 如果你需要一个没有重复的经典随机数发生器,那么请查看下面的其他例子。
在上面的公式中,你只定义了要填充多少行。 所有其他参数都保留为默认值,这意味着列表将从1开始,并以1递增。 如果你想要一个不同的第一个数字和递增,那么为第3个参数设置你自己的值( 开始 )和第四届( 阶梯 )参数的SEQUENCE函数。
例如,要从100开始,以10为单位递增,使用这个公式。
=sortby(sequence(5, , 100, 10), randarray(5))
这个公式如何运作。
由内而外的工作,以下是该公式的作用。
- SEQUENCE函数根据指定的或默认的起始值和递增的步长,创建一个连续的数字数组。 这个序列进入到 阵列 SORTBY的说法。
- RANDARRAY函数创建了一个与序列大小相同的随机数数组(在我们的例子中是5行1列)。 最小值和最大值其实并不重要,所以我们可以把这些留作默认值。 这个数组会被送到 by_array SORTBY的说法。
- SORTBY函数使用由RANDARRAY产生的随机数数组对SEQUENCE产生的连续数进行排序。
请记住,这个简单的公式创建了一个不重复的随机数列表,其中有一个 预定的步骤 要绕过这一限制,请使用下面描述的公式的高级版本。
生成一个没有重复的随机数列表
只在支持动态数组的Excel 365和Excel 2021中工作。
要在Excel中生成没有重复的随机数,请使用下面的一个通用公式。
随机整数 :
index(unique(randarray( n ^2, 1, 闽 , 最大 , true)), sequence( n ))随机小数 :
index(unique(randarray( n ^2, 1, 闽 , 最大 , false)), sequence( n ))在哪里?
- N 是要生成的值的数量。
- 闵行区 是最小值。
- 最大 是最高值。
例如,要创建一个5人的列表 随机整数 从1到100,没有重复,使用这个公式。
=index(unique(randarray(5^2, 1, 1, 100, true)), sequence(5))
产生5个独特的随机 十进制数字 ,在RANDARRAY的最后一个参数中放入FALSE,或者省略这个参数。
=index(unique(randarray(5^2, 1, 1, 100)), sequence(5))
这个公式如何运作。
乍一看,这个公式可能有点棘手,但仔细一看,它的逻辑非常简单明了。
- RANDARRAY函数根据你指定的最小值和最大值创建一个随机数组。 为了确定生成多少个值,你将所需的唯一数提高到2的幂数。 因为生成的数组可能没有人知道有多少个重复的,你需要提供足够的值数组供UNIQUE选择。 在这个例子中,我们只需要5个唯一的但我们指示RANDARRAY产生25(5^2)个随机数。
- UNIQUE函数删除了所有的重复,并将一个没有重复的数组 "喂 "给INDEX。
- 从UNIQUE传递的数组中,INDEX函数提取了第一个 n 因为数值已经是随机的了,所以哪些数值存活并不重要。
注意:在非常大的数组上,这个公式可能有点慢。 例如,为了得到一个1000个唯一数字的列表作为最终结果,RANDARRAY将不得不在内部生成100万个随机数(1000^2)的数组。 在这种情况下,你可以将其乘以,而不是提高到幂数 n 请记住,传递给UNIQUE函数的数组越小(相对于所需的唯一随机值的数量而言越小),并非溢出区的所有单元格都会被填满结果的机会就越大。
在Excel中创建一个不重复的随机数范围
只在支持动态数组的Excel 365和Excel 2021中工作。
要生成一个没有重复的随机数范围,你可以使用这个公式。
index(unique(randarray( n ^2, 1, 闽 , 最大 )), SEQUENCE( 行数 , 专栏 ))在哪里?
- n 是要填充的单元格数量。 为了避免手工计算,你可以用(行数*列数)来提供。 例如,要填充10行5列,使用50^2或(10*5)^2。
- 行数 是要填充的行数。
- 专栏 是要填充的列数。
- 闵行区 是最低值。
- 最大 是最高值。
你可能会注意到,这个公式与前面的例子基本相同,唯一不同的是SEQUENCE函数,在本例中它同时定义了行和列的数量。
例如,要用1到100的唯一随机数填充一个10行3列的范围,使用这个公式。
=index(unique(randarray(30^2, 1, 1, 100)), sequence(10, 3))
并且会产生一个没有重复数字的随机小数数组。
如果你需要整数,那么将RANDARRAY的最后一个参数设为TRUE。
=index(unique(randarray(30^2, 1, 1, 100, true)), sequence(10,3))
如何在Excel 2019、2016和更早的版本中生成唯一的随机数
由于除Excel 365和2021之外的其他版本都不支持动态数组,因此上述解决方案在早期版本的Excel中都无法使用。 然而,这并不意味着完全没有解决方案,你只需要多执行几个步骤。
- 创建一个随机数列表。 根据你的需要,使用其中之一。
- RAND函数可以生成0到1之间的随机小数,或
- RANDBETWEEN函数在你指定的范围内产生随机整数。
请确保生成的数值比你实际需要的要多,因为有些会是重复的,你以后会删除它们。
在这个例子中,我们通过使用下面的公式创建一个1到20之间的10个随机整数的列表。
=介于(1,20)之间
要一次性在多个单元格中输入公式,请选择所有单元格(本例中为A2:A15),在公式栏中输入公式,然后按Ctrl + Enter 。 或者你可以像往常一样在第一个单元格中输入公式,然后根据需要向下拖动到多个单元格。
总之,结果会是这样的。
See_also: 如何在Excel中进行乘法运算:数字、单元格、整列你可能注意到,我们在14个单元格中输入了公式,尽管最终我们只需要10个独特的随机数字。
- 将公式改为数值。 由于RAND和RANDBETWEEN都会随着工作表上的每一个变化而重新计算,你的随机数列表会不断变化。 为了防止这种情况发生,可以使用 粘贴特殊> 价值 来将公式转换为数值,这在《如何阻止随机数的重新计算》中有所解释。
为了确保你做得对,选择任何一个数字,看一下公式栏。 现在它应该显示一个值,而不是一个公式。
- 要做到这一点,选择所有的数字,去到 数据 标签> 数据工具 组,并点击 删除重复的内容 在 删除重复的内容 详细步骤请参见《如何删除Excel中的重复数据》。
完成了!所有重复的数字都消失了,你现在可以删除多余的数字。
提示:你可以使用我们先进的Duplicate Remover for Excel,而不是Excel的内置工具。
如何阻止随机数变化
Excel中的所有随机化函数,包括RAND、RANDBETWEEN和RANDARRAY都是不稳定的,这意味着每次改变电子表格时,它们都会重新计算。 因此,每次改变都会产生新的随机值。 为了防止自动生成新的数字,可以使用粘贴特殊>值功能,用静态值代替公式。 具体方法如下。
- 选择所有带有随机公式的单元格,按Ctrl+C复制它们。
- 右键单击所选范围并单击 粘贴专用 > 价值观 或者,你可以按Shift + F10,然后按V,这是该选项的快捷键。
详细步骤请见《如何在Excel中把公式改为数值》。
用于Excel的无重复的随机数发生器
我们的终极套件的用户其实不需要上述任何解决方案,因为他们在Excel中已经有了一个通用的随机发生器。 这个工具可以很容易地产生一个不重复的整数,小数的数字,日期和唯一的密码列表。 下面是方法。
- 关于 Ablebits工具 标签,点击 随机化 > 随机生成器 .
- 选择要填充随机数的范围。
- 关于 随机生成器 窗格,执行以下操作。
- 选择所需的值类型:整数、实数、日期、布尔值、自定义列表或字符串(非常适合生成强大的唯一密码!)。
- 设置了 来自 和 拟 价值。
- 选择 独特的价值 复选框。
- 点击 生成 .
就这样!选定的范围一次就被非重复的随机数填满。
如果你想尝试这个工具,并探索我们的终极套件所包含的其他迷人的功能,欢迎你下载试用版。
这就是如何在Excel中实现无重复的随机数字。 感谢你的阅读,希望下周能在我们的博客上见到你!
供下载的实践工作手册
在Excel(.xlsx文件)中生成唯一的随机数