Excel 随机数据:在 Excel 中生成随机数字、文本、日期和时间
通常来说,随机数据是一系列用于统计抽样、数据加密、抽奖、测试或培训等需要不可预测结果的场景中的数字、文本字符串或其他符号。本文将介绍在普通 Excel 和 Excel 365 中生成随机数字、文本字符串、日期和时间的多种方法。
在 Excel 中生成随机数字、文本、日期和时间
本节将为您介绍在 Excel 工作表中生成数字、文本字符串、日期和时间的多种实用方案。
1.1 在 Excel 中生成随机数字
要在工作表中快速生成或插入多个随机数字,常规的 RAND 或 RANDBETWEEN 函数就能为您提供强大支持。除了这些公式,还有其他实用代码和便捷工具可助您一臂之力。
使用 RAND 函数生成随机数
在两个数字之间生成随机小数
RAND 函数可用于生成随机小数,范围可设为 0 到 1 之间、0 到任意其他数字之间,或两个指定数字之间。
| 公式 | 说明 |
| =RAND() | 生成一个介于 0 和 1 之间的随机小数。 |
| =RAND()*N | 生成一个介于 0 和 N 之间的随机小数。 |
| =RAND()*(B-A)+A | 生成您指定的任意两个数字之间的随机小数。(A 为下限值,B 为上限值。) |
请复制上述所需公式,并将其应用到任意数量的单元格中,即可获得如下图所示的结果:
| =RAND() | =RAND()*50 | =RAND()*(100-50)+50 |
![]() | ![]() | ![]() |
在两个数字之间生成随机整数
要生成一些随机整数,您应将 RAND 和 INT 函数组合使用,如下表所示:
| 公式 | 说明 |
| =INT(RAND()*N) | 生成一个介于 0 到 N 之间的随机整数。 |
| =INT(RAND()*(B-A)+A) | 生成您指定的任意两个数字之间的随机整数。(A 为下限值,B 为上限值。) |
请应用上述所需公式,然后根据需要将公式拖动并复制到其他单元格中,即可获得如下图所示的结果:
| =INT(RAND()*100) | =INT(RAND()*(500-200)+200) |
![]() | ![]() |
使用 RANDBETWEEN 函数生成随机数
在 Excel 中,还有一个 RANDBETWEEN 函数,可助您快速轻松地生成随机数字。
在两个数字之间生成随机整数
- top、bottom:您希望获取的随机数范围的最大值和最小值。
例如,如果您想在 100 和 200 之间生成随机整数,请在空白单元格中输入以下公式,然后根据需要将公式拖动并复制到其他单元格中,参见截图:

提示:RANDBETWEEN 函数还可生成正数和负数。若要在 -100 到 100 之间插入随机数字,只需将下限值改为 ——100,参见以下公式:

在两个数字之间生成具有指定小数位数的随机数字
要创建具有指定小数位数的随机数字,您需要将 RANDBETWEEN 公式修改如下:
- 带一位小数位数的随机数:=RANDBETWEEN(bottom*10, top*10)/10
- 带两位小数位数的随机数:=RANDBETWEEN(bottom*100, top*100)/100
- 带三位小数位数的随机数:=RANDBETWEEN(bottom*1000, top*1000)/1000
- 。。。
此处,我希望获得一个介于 10 和 50 之间、保留两位小数位数的随机数字列表,请应用以下公式,然后根据需要将公式拖动并复制到其他单元格中,参见截图:

使用自定义函数在两个值之间生成随机数
以下用户自定义函数还可助您在工作表范围内生成随机整数,或生成具有指定小数位数的数字。请按以下步骤操作:
1. 按住 ALT + F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。
2. 单击插入> 模块,并将以下代码粘贴到模块窗口中。
VBA 代码:生成随机数字
Public Function RandomNumbers(Num1 As Long, Num2 As Long, Optional Decimals As Integer)
'Updateby Extendoffice
Application.Volatile
Randomize
If IsMissing(Decimals) Or Decimals = 0 Then
RandomNumbers = Int((Num2 + 1 - Num1) * Rnd + Num1)
Else
RandomNumbers = Round((Num2 - Num1) * Rnd + Num1, Decimals)
End If
End Function
3. 然后关闭代码窗口并返回工作表,在空白单元格中输入公式 =RandomNumbers(X,Y,Z)。
注意:在上述公式中,X 表示数字的下限,Y 表示数字的上限,Z 则指定随机数的小数位数,请根据实际需求替换为相应数值。
1。)要在 50 到 200 之间生成随机整数,请使用以下公式:
2。)若要在 50 到 200 之间插入保留两位小数的随机数字,请使用以下公式:
4. 最后,根据需要将公式拖动并复制到其他单元格,即可获得如下图所示的结果:
![]() | ![]() |
一项便捷功能,可在两个数字之间生成随机数
如果您厌倦了记忆和输入公式,这里推荐一个实用功能——Kutools for Excel 的插入随机数据工具。借助此功能,您无需任何公式即可轻松生成随机整数或小数。
Kutools for Excel——包含 300 多个 Excel 必备工具,并永久免费畅享 AI 功能!立即下载!
1. 选择要生成随机数字的单元格区域,然后点击 Kutools > 插入 > 插入随机数据,参见截图:

2. 在插入随机数据对话框中:
1。)生成随机整数:
在整数选项卡中,在从和到框中输入要生成随机整数的数值范围,然后单击确定或应用按钮,即可获得如下图所示的随机整数:

2。)生成指定小数位数的随机数字:
在 Decimal 选项卡中,分别在 From 和 To 框中指定两个数字,即可生成介于其间的随机小数;随后在“小数位数”文本框中选择所需位数,并单击 Ok 或 Apply 按钮,立即生成随机小数。参见截图:

提示:若要生成无重复的随机小数,请勾选 Unique values 选项。
1.2 生成无重复的随机数(唯一随机数)
使用公式或代码生成随机数时,可能会产生重复数字。如果您希望创建一个无重复的随机数列表,本节将为您演示几种方法。
使用数组公式生成无重复的随机数
例如,我想生成介于 100 到 200 之间且无重复的随机数,以下是一个复杂的数组公式可帮助您实现,请按以下步骤操作:
1. 在两个单元格中分别指定下限值和上限值。本例中,我将在单元格 B2 和 B3 中分别输入 100 和 200,参见截图:

2. 然后,将以下公式复制到一个空白单元格中(例如 D3,不要将公式放在第一行的单元格中),再同时按下 Ctrl+ Shift + Enter 键以获取第一个数字,参见截图:
注意:在上述公式中,B1 是下限值,B2 是您希望生成随机数的上限值,而 D2 是公式所在单元格上方的单元格。

3. 然后,根据需要将此公式向下拖动并复制到其他单元格,以生成介于 100 和 200 之间的随机数:

使用 VBA 代码生成无重复的随机数
如果上述公式对您而言较难理解,可以使用以下 VBA 代码,请按如下操作:
1. 按住 ALT + F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。
2. 单击插入> 模块,并将以下代码粘贴到模块窗口中。
VBA 代码:生成无重复的随机数
Sub Range_RandomNumber()
'Updateby Extendoffice
Dim xStrRange As String
Dim xRg, xCell, xRg1 As Range
Dim xArs As Areas
Dim xNum_Lowerbound As Integer
Dim xNum_Upperbound As Integer
Dim xI, xJ, xS, xR As Integer
xStrRange = "A1:B20"
xNum_Lowerbound = 100
xNum_Upperbound = 200
Set xRg = Range(xStrRange)
Set xArs = xRg.Areas
xRgCount = 0
For xI = 1 To xArs.Count
Set xCell = xArs.Item(xI)
xRgCount = xCell.Count + xRgCount
Next xI
xS = (xNum_Upperbound - xNum_Lowerbound + 1)
If xRgCount > xS Then
MsgBox ("Number of cells greater than the number of unique random numbers!")
Exit Sub
End If
xRg.Clear
For xI = 1 To xArs.Count
Set xCell = xArs.Item(xI)
For xJ = 1 To xCell.Count
Set xRg1 = xCell.Item(xJ)
xR = Int(xS * Rnd + xNum_Lowerbound)
Do While Application.WorksheetFunction.CountIf(xRg, xR) >= 1
xR = Int(xS * Rnd + xNum_Lowerbound)
Loop
xRg1.Value = xR
Next
Next
End Sub
注意:在上述代码中,xStrRange = "A1:B20" 表示您希望在 A1:B20 范围内生成随机数;xNum_Lowerbound =100 和 xNum_Upperbound =200 分别表示生成随机数的下限和上限,即数值介于 100 到 200 之间。请根据实际需求灵活调整。
3. 然后按下 F5 键运行此代码,唯一随机数将自动插入到限定区域中。
使用强大功能生成无重复的随机数
若要快速生成多个唯一随机数,Kutools for Excel 的插入随机数据功能提供了一个智能选项——Unique values。只需勾选此选项,即可轻松完成任务。
1. 选择要生成随机数的单元格区域。
2. 然后单击 Kutools >Insert > 插入随机数据。在弹出的对话框中,请执行以下操作:
- 在整数选项卡的起始值和结束值框中,输入要生成随机数的数值范围;
- 勾选唯一值选项;
- 然后单击确定或应用按钮,即可获得如下图所示的唯一随机数。

1.3 在 Excel 中生成随机偶数或奇数
如果要在单元格范围内生成一些随机偶数或奇数,只需将 RANDBETWEEN 函数嵌套在 EVEN 或 ODD 函数内即可,通用语法如下:
| 公式 | 说明 |
| =EVEN(RANDBETWEEN(bottom,top)) | 在两个指定数字之间生成一个随机偶数。 |
| =ODD(RANDBETWEEN(bottom,top)) | 在两个给定数字之间生成一个随机奇数。 |
例如,要生成介于 10 到 100 之间的随机偶数或奇数,请使用以下公式:
=ODD(RANDBETWEEN(10,100)) (Generate random odd numbers)
然后,通过拖动填充柄将公式复制到其他所需单元格,即可获得如下截图所示的结果:
![]() | ![]() |
1.4 生成总和为指定值的随机数
有时,您可能需要生成一组总和为指定值的随机数。例如,我希望生成 5 个(或 n 个)介于 10 到 50 之间的随机数,使其总和恰好为 100,如下图所示。为在 Excel 中实现这一目标,我将为您介绍两种实用方法。

使用公式生成总和为特定值的随机数
以下公式可助您轻松实现目标。请务必按照说明逐步操作,因为这些公式略显复杂:
1. 首先,应创建所需数据:预设总和值、开始数字、结束数字以及要生成的随机数数量,如下图所示:

2. 然后,将以下公式复制到要生成数字的空白单元格中。本例中,我将公式输入到单元格 A4,并按 Enter 键即可获取第一个随机数,参见截图:
注意:在上述公式中,A2 为给定的总和值;B2 和 C2 分别为生成随机数的下限和上限;D2 表示要生成的随机数个数;A4 为输入此公式的单元格。

3. 继续将以下公式复制到单元格 A5,并按 Enter 键以获取第二个随机数,参见截图:
注意:在上述公式中:A2 为给定的总和值;B2 和 C2 分别为生成随机数的下限和上限;D2 表示要生成的随机数个数;A4 是输入第一个公式的单元格,A5 是输入第二个公式的单元格。

4. 然后,选中第二个生成的数字,向下拖动以将公式复制到下方三个单元格中。现在,您将获得 5 个随机数,如下图所示:

5. 为验证结果,您可以对这些数字求和,确认总和是否为 100. 按 F9 即可动态刷新随机数,其总和始终为 100.

使用强大功能生成总和为特定值的随机数组合
我们可以使用上述公式生成符合需求的随机数。然而,如果您希望列出由您指定数字组成、且总和为特定值的所有可能组合,我推荐一款高效工具——Kutools for Excel。借助其凑数功能,即可轻松获取所有总和等于目标值的数字组合。
1. 首先,列出您指定的数字。此处,我们列出了介于 10 到 50 之间的所有数字,如下图所示:

2. 然后,单击 Kutools>Content> 凑数,参见截图:

3. 在弹出的凑数对话框中,请执行以下操作:
- 在源区域框中,选择要查找哪些数字相加等于 100 的数字列表;
- 在选项下的“总和”文本框中输入目标值,例如 100;
- 如果希望将结果列在新工作表中,请勾选保存在新表中选项;
- 单击确定按钮。参见截图:

4. 处理完成后,您将看到所有由 10 到 50 之间的数值组成、总和为 100 的随机数集合,如下所示。

提示:您可以选择是否指定每组组合的结果数量及随机数个数。例如,若要生成 10 组组合,每组包含 5 个随机数,可在高级设置对话框中按以下方式操作:

您将获得如下所示的结果:

1.5 使用公式生成随机字母和文本字符串
本节将为您演示如何在 Excel 中生成随机字母,包括 A 到 Z 的大写字母、a 到 z 的小写字母,以及特定的特殊字符(! “ # $ % & ‘ ( ) * + , - 。 /)。
使用公式生成随机字母和文本字符串
在 Excel 中,您可以结合使用 CHAR 和 RANDBETWEEN 函数以及一些 ANSI 字符代码来创建公式,如下所示:
| 公式 | 说明 |
| =CHAR(RANDBETWEEN(65, 90)) | 生成一个介于 A 到 Z 之间的随机大写字母。 |
| =CHAR(RANDBETWEEN(97, 122)) | 生成 a 到 z 之间的随机小写字母。 |
| =CHAR(RANDBETWEEN(33, 47)) | 生成随机特殊字符,例如:! “ # $ % & ‘ ( ) * + , - 。 / |
请根据需要应用上述任一公式,并将公式复制到所需数量的单元格中,即可获得如下图所示的结果:
| =CHAR(RANDBETWEEN(65, 90)) | =CHAR(RANDBETWEEN(97, 122)) | =CHAR(RANDBETWEEN(33, 47)) |
![]() | ![]() | ![]() |
提示:如需生成包含多个字母的随机文本字符串,只需按需用 & 符号连接字母即可。
1。)若要生成包含四个大写字母的随机字符串,请使用以下公式:

2。)若要生成包含四个小写字母的随机字符串,请使用以下公式:
3。)若要生成前两个字符为大写字母、后两个字符为小写字母的随机字符串,请使用以下公式:
您可以使用简单的公式和“&”符号,轻松创建各种符合您需求的组合。
使用便捷功能生成随机字母和文本字符串
如果您已安装 Kutools for Excel,无需记忆任何公式,即可轻松快速生成随机字母和字符串。
1. 选择要插入字母或字符串的单元格区域。
2. 然后单击 Kutools > 插入 > 插入随机数据,在弹出的对话框中,请执行以下操作:
- 单击字符串选项卡;
- 勾选 a-z 或 A-Z 或两者,以插入所需字符;
- 然后,在根据字符串长度筛选文本框中指定要生成的字符串长度;
- 最后,单击确定或应用,即可插入如下图所示的字符串。

1.6 在 Excel 中使用字母数字字符生成随机密码
创建密码时,密码应至少包含 8 个字符,并混合包含大写字母、小写字母、数字以及某些特殊字符。本节将介绍一些在 Excel 中生成随机密码的技巧。
使用公式生成包含字母数字字符的随机密码
例如,此处我将创建长度为 8 个字符的随机密码。您只需组合使用公式生成随机字母和文本字符串部分中提供的三个公式即可。
请将以下公式复制到空白单元格中:
注意:在上述公式中,第一个 CHAR 与 RANDBETWEEN 函数用于生成一个随机大写字母,第二、第三个表达式生成两个小写字母,第四个表达式生成一个大写字母,第五个表达式生成一个介于 100 到 999 之间的三位数,最后一个表达式则用于生成一个特殊字符。您可以根据需要自由调整或修改它们的顺序。

使用自定义函数生成包含字母数字字符的随机密码
要在 Excel 中插入随机密码,以下用户自定义函数也能为您提供帮助,请按如下操作:
1. 按住 ALT + F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。
2. 单击插入> 模块,并将以下宏粘贴到模块窗口中。
VBA 代码:在 Excel 中生成随机密码
Function RandomizeF(Num1 As Integer, Num2 As Integer)
'Updateby Extendoffice
Dim Rand As String
Application.Volatile
getLen = Int((Num2 + 1 - Num1) * Rnd + Num1)
Do
i = i + 1
Randomize
Rand = Rand & Chr(Int((85) * Rnd + 38))
Loop Until i = getLen
RandomizeF = Rand
End Function
3. 然后关闭代码窗口并返回工作表,在单元格中输入公式 =RandomizeF(8,10),即可生成长度介于 8 到 10 个字符之间的随机文本字符串。
4. 然后根据需要将该公式向下拖动并复制到其他单元格,系统即可生成长度介于 8 至 10 位、包含字母、数字及特定字符的随机字符串。请参见下图:

使用简易功能生成包含字母数字字符的随机密码
在 Excel 中是否有快速简便的方法生成多个随机密码?Kutools for Excel 的插入随机数据工具提供了出色的功能——只需几次单击,即可轻松插入随机密码!
1. 选择要插入密码的单元格区域。
2. 然后单击 Kutools > 插入 > 插入随机数据。在弹出的对话框中,请执行以下操作:
- 单击字符串选项卡;
- 根据需要勾选字符类型;
- 然后,在根据字符串长度筛选文本框中指定所需密码的长度;
- 最后,单击确定或应用,即可生成如下图所示的密码。

1.7 在 Excel 中生成随机特定文本
您是否尝试过在 Excel 中随机显示或列出某些特定文本值?例如,在单元格列表中随机列出一些给定文本(item 1、item 2、item 3、item 4、item 5),以下两种技巧可帮助您完成此任务。
使用公式生成随机指定文本
在 Excel 中,您可以基于 CHOOSE 和 RANDBETWEEN 函数创建公式,以随机列出特定文本,其通用语法如下:
- Value_1, Value_2, Value_3, Value_n:表示您希望随机列出的文本值;
- n:表示您希望使用的文本值数量。
请将以下公式应用于空白单元格,然后向下拖动填充柄,将公式填充至需要随机列出特定值的单元格中,请参见下图:

使用快速方法生成随机指定文本
如果您已安装 Kutools for Excel,即可使用其插入随机数据功能,在单元格区域中随机插入自定义文本值。
1. 选择要插入特定文本的单元格区域。
2. 然后单击 Kutools> 插入> 插入随机数据,在弹出的对话框中,请执行以下操作:
- 单击自定义列表选项卡;
- 然后,单击
按钮,即可打开另一个 Kutools for Excel 提示框,输入或选择您希望随机列出的自定义文本值。(手动输入时,请用逗号分隔各条目。)

3. 然后单击确定,返回到插入随机数据对话框,您自定义的文本列表已显示在列表框中。现在,请选择新建的列表项,单击确定或应用按钮,即可将值随机插入所选单元格中。

提示:若要随机列出指定文本且不重复,请勾选唯一值选项。
1.8 在 Excel 中从列表生成或选择随机值
假设您有一个很长的名称列表,需要从中随机抽取一些姓名作为幸运姓名或研究对象(如下图所示)。您该如何在 Excel 中解决此问题?

使用 INDEX、RANDBETWEEN 和 ROWS 函数从列表中生成随机值
在 Excel 中,虽然无法直接从列表中提取随机值,但您可以结合使用 INDEX、RANDBETWEEN 和 ROWS 函数,轻松创建一个公式来高效提取随机值。
1. 请将以下公式复制到用于放置提取值的空白单元格中:
注意:在上述公式中,A2:A12 是您要从中抽取随机值的列表。
2. 然后,向下拖动填充柄至多个单元格以生成随机值,即可获得如下图所示的结果:

使用 INDEX 和 RANK.EQ 函数从列表中生成无重复的随机值
使用上述公式时,会显示一些重复值。要跳过重复值,您应先创建一个辅助列,然后应用基于 INDEX 和 RANK.EQ 函数的公式。请按以下步骤操作:
1. 在空白单元格中输入以下公式,即可生成随机数列表,参见截图:

2. 然后,在另一列中需要提取随机值的单元格内输入下方公式,并向下拖动填充,即可显示多个不重复的随机值,参见截图:
注意:在上述公式中,A2:A12 是您希望从中生成随机值的数据列表,B2 是辅助列的首个单元格,B2:B12 是您在步骤 1 中创建的辅助公式区域。

单元格、行、列,通过一项强大功能从区域中提取
在此,我推荐 Kutools for Excel 的随机排序或选择功能——借助它,您可以按需轻松选择若干随机单元格、行或列。
1. 请选择您希望从中选取随机值的单元格列表。
2. 然后,单击 Kutools > 选择 > 随机排序或选择,参见截图:

3. 在随机排序或选择对话框中,请执行以下操作:
- 单击选择选项卡;
- 然后,在单元格数量要选择的框中输入要随机选择的单元格数量;
- 在选中类型部分,选择一项所需操作。本例中,我将选择单元格选项。
- 然后,单击确定或应用按钮,即可一次性随机选择五个单元格,参见截图:

4. 选中单元格后,即可根据需要将其复制粘贴到其他单元格。
1.9 在 Excel 中将数据随机分配到各组
假设您有一个名称列表,现在希望将姓名随机分为三组(A 组、B 组、C 组),如下图所示。本节将介绍一些在 Excel 中完成此任务的公式。

使用公式将数据随机分配到组中
要将人员随机分配到指定组,可结合使用 CHOOSE 函数与 RANDBETWEEN 函数。
1. 请将以下公式复制或输入到需要生成分组的单元格中:
注意:在上述公式中,Group A、Group B 和 Group C 表示您要分配的分组名称,数字 3 表示您要划分的组数。
2. 然后,拖动填充柄将公式填充至其他单元格,姓名即可分为三组,如下图所示:

使用公式将数据随机且平均地分配到各组中
如果您希望所有组包含相同数量的姓名,上述公式将无法正确满足您的需求。此时,您可以使用 RAND 函数创建一个包含随机值的辅助列,然后应用基于 INDEX、RANK 和 ROUNDUP 函数的公式。
例如,我在单元格 F2:F4 中列出了您希望作为分配依据的分组名称(A 组、B 组、C 组)。若要将人员平均分配至各组,每组包含 4 名成员,请按以下步骤操作:
1. 在空白单元格中输入公式:=RAND(),即可生成随机数列表,参见截图:

2. 然后,在下一列(例如单元格 D2)中复制或输入以下公式:
注意:在上述公式中,C2 是辅助列的首个单元格,C2:C13 是您在步骤 1 中创建的辅助公式区域,数字 4 表示每组应包含的姓名数量,F2:F4 是包含您希望用于数据分组的名称区域。
3. 向下拖动填充柄,即可为数据列表生成随机分组,姓名将被平均分配到各组,参见截图:

1.10 在 Excel 中生成随机日期
要生成两个指定日期之间的任意日期,我将为您介绍几种方法。
使用公式在两个给定日期之间生成随机日期
例如,我希望在 2021 年 5 月 1 日至 2021 年 10 月 15 日之间随机生成一些日期。通常,在 Excel 中,您可以通过结合使用 RANDBETWEEN 和 DATE 函数轻松实现这一目标,请按以下步骤操作:
1. 选择要插入随机日期的单元格,然后输入以下公式:
注意:在此公式中,2021、5、1 为开始日期,2021、10、15 为结束日期,您可根据需要随时替换。
2. 然后,将此公式拖动并复制到其他需要填充的单元格中,即可显示五位数,如下图所示:

3. 然后,请将这些数字格式化为日期格式:选中这些公式单元格,右键单击,从上下文菜单中选择设置单元格格式。
4. 在设置单元格格式对话框中,单击数字选项卡,从类别窗格中选择日期,然后从类型下拉列表中选择您所需的日期格式。参见截图:

5. 单击确定关闭对话框,这些数字现已转换为常规日期。参见截图:

提示:如果您希望生成排除周末的随机工作日,以下公式可能会对您有所帮助:
使用惊艳功能在两个给定日期之间生成随机日期
Kutools for Excel 的插入随机数据工具也提供了一个选项,可帮助您在两个指定日期之间生成随机日期、工作日或周末。
1. 选择要插入随机日期的单元格区域。
2. 然后单击 Kutools> 插入> 插入随机数据,在弹出的对话框中,请执行以下操作:
- 单击日期选项卡;
- 然后,指定日期范围。本例中,我将选择从 2021 年 5 月 1 日 到 2021 年 10 月 15 日。
- 然后,根据需要选择日期类型——工作日日期、周末日期,或两者同时选择。
- 最后,单击确定或应用,即可随机生成如下图所示的日期。

提示:要生成多个不重复的随机日期,请勾选唯一值选项。
1.11 在 Excel 中生成随机时间
在插入随机数字、文本字符串和日期之后,本节将介绍一些在 Excel 中生成随机时间的技巧。
使用公式生成随机时间
使用公式生成随机时间
要在单元格区域中生成随机时间,可借助结合 TEXT 和 RAND 函数的公式轻松实现。
请在空白单元格中输入以下公式,然后将其拖动并复制到其他需要获取时间的单元格,参见截图:

使用公式在两个指定时间之间生成随机时间
如果您需要在两个特定时间之间随机插入一些时间,例如从 10 点到 18 点之间的时间,请使用以下公式:
注意:在上述公式中,数字 18 表示结束时间,10 表示开始时间,您可根据需要随时修改。
然后,将公式拖动并复制到其他需要生成两个指定时间范围之间随机时间的单元格中,参见截图:

使用公式以特定间隔生成随机时间
例如,如果您希望在 Excel 中生成以特定间隔(如每 15 分钟)分布的随机时间,可以结合使用 RAND 函数与 FLOOR 函数,并将其嵌套在 TEXT 函数中来实现。
将以下公式复制或输入到空白单元格中,然后将该公式拖动并复制到需要获取随机时间的单元格中,参见截图:
注意:公式中的数字 15 代表时间间隔;若需以 30 分钟为间隔生成随机时间,只需将 15 替换为 30 即可。

使用便捷功能在两个给定时间之间生成随机时间
如果您已安装 Kutools for Excel,其插入随机数据功能还能帮您在工作表中轻松生成指定时间段内的随机时间。
1. 选择要生成时间的单元格区域。
2. 然后单击 Kutools > 插入 > 插入随机数据,在弹出的对话框中,请执行以下操作:
- 单击时间选项卡;
- 然后,指定时间范围。本例中,我将选择从 9:00 AM 到 4:30 PM。
- 最后,单击确定或应用,即可随机生成如下图所示的时间。

使用公式在两个日期时间之间生成随机日期和时间
如果您希望同时生成随机日期和时间,以下公式可以帮您实现。
1. 在目标单元格中输入或复制以下公式,即可生成随机日期时间:
注意:在此公式中,2021-10-15 12:00:00 为结束日期和时间,2021-1-1 9:00:00 为开始日期和时间,您可根据需要随时修改。
2. 然后,将此公式拖动并复制到其他需要显示随机日期时间的单元格中,参见截图:

在 Excel 365 / 2021 及更新版本中生成随机数字、文本和日期
本节将介绍如何在 Excel 365、Excel 2021 及未来版本中,使用新的动态数组函数 RANDARRAY 来生成随机数字和日期,并实现随机选择及随机分组数据。
RANDARRAY 函数可返回您指定范围内任意两个数字之间的随机数数组。
RANDARRAY 函数的语法如下:
- rows(可选):要返回的随机数行数;(若省略,默认值 =1)
- columns(可选):要返回的随机数列数;(若省略,默认值 =1)
- min(可选):要返回的最小数值;(若省略,默认值 =0)
- max(可选):要返回的最大数值;(若省略,默认值 =1)
- 整数(可选):指定返回整数还是小数值。TRUE 表示返回整数,FALSE 表示返回小数。(若省略,默认值为 FALSE)
- 1。RANDARRAY 函数包含五个参数,全部为可选参数;如果未指定任何参数,RANDARRAY 将返回一个介于 0 和 1 之间的十进制数值。
- 2. 如果行数或列数参数为小数,将截断为小数点前的整数部分(例如,3.9 将被视为 3)。
- 3. 最小值必须小于最大值,否则将返回 #VALUE! 错误。
- 4. 此 RANDARRAY 函数返回一个数组;当 RANDARRAY 在工作表中生成多个结果时,这些结果会自动溢出至相邻单元格。
2.1 在 Excel 365 / 2021 及更新版本中生成随机数字
在 Excel 365、Excel 2021 及后续版本中,您可使用全新的 RANDARRAY 函数轻松生成随机整数或小数。
使用公式在两个数字之间生成随机数
若要在特定范围内创建随机数字列表,请应用以下公式:
请根据需要输入以下任一公式,然后按 Enter 键获取结果,参见截图:
=RANDARRAY(6, 4, 50, 200, FALSE) (Generate random decimals between 50 and 200)
- 6:表示返回 6 行随机数;
- 4:表示返回 4 列随机数;
- 50,200:您希望生成数字范围的最小值和最大值;
- TRUE:表示返回整数;
- FALSE:表示返回十进制数。
![]() | ![]() |
使用公式生成无重复的随机数
使用常规 RANDARRAY 函数生成随机数字时,可能会出现重复数字。为避免重复,本文将介绍一些解决此问题的公式。
生成不重复的随机数字列表
若要随机生成一列或一个唯一数字列表,通用语法如下:
不重复的随机整数:
不重复的随机小数:
- n:要生成的数值个数;
- min:最小值;
- max:最大值。
例如,此处我将插入一个从 50 到 100 的 8 个无重复随机数字列表,请应用以下任一公式,然后按 Enter 键获取结果:
=INDEX(UNIQUE(RANDARRAY(8^2, 1, 50, 100, FALSE)), SEQUENCE(8)) (Unique random decimals)
- 8:表示返回 8 个随机数;
- 50、100:分别代表您希望生成数字范围的最小值和最大值。
- TRUE:表示返回整数;
- FALSE:表示返回十进制数。
![]() | ![]() |
生成一个范围内的不重复随机数字
如果您希望在单元格范围内生成不重复的随机数字,只需在 SEQUENCE 函数中定义行数和列数即可,通用语法如下:
若要随机生成一列或一个唯一数字列表,通用语法如下:
不重复的随机整数:
不重复的随机小数:
- n:要插入数字的单元格数量,以行数 × 列数表示;例如,填充 8 行 3 列时,请使用 24^2.
- rows:要填充的行数;
- columns:要填充的列数;
- min:最小值;
- max:最大值。
此处,我将在 8 行 3 列的范围内填充从 50 到 100 的唯一随机数字,请应用以下任一公式:
=INDEX(UNIQUE(RANDARRAY(24^2, 1, 50, 100, FALSE)), SEQUENCE(8,3)) (Unique random decimals)
- 24:表示返回 24 个随机数,即 8 与 3 的乘积(行数*列数);
- 50,100:您希望生成数字范围的最小值和最大值;
- TRUE:表示返回整数;
- FALSE:表示返回十进制数值。
![]() | ![]() |
2.2 在 Excel 365 / 2021 及更新版本中生成随机日期
通过使用这个新的 RANDARRAY 函数,您还可以在 Excel 中快速轻松地生成多个随机日期或工作日。
使用公式在两个日期之间生成随机日期
若要在两个特定日期之间创建随机日期列表,可应用以下公式:
1. 在空白单元格中输入以下公式以生成随机日期,然后按 Enter 键,即可获得一组五位数,参见截图:
- 10:表示返回 10 行随机日期;
- 1:表示返回 1 列随机日期;
- B1 和 B2:这两个单元格分别包含您要生成日期范围的起始日期和结束日期。

2. 然后,您需将这些数字格式化为常规日期格式:选中这些数字,右键单击,从上下文菜单中选择设置单元格格式。在随后弹出的设置单元格格式对话框中,请按如下操作:
- 单击数字选项卡;
- 然后单击日期,位于类别窗格中;
- 然后,从类型列表框中选择您心仪的日期格式。

3. 然后,单击 OK 按钮,这些数字将以您指定的日期格式显示,参见截图:

提示:当然,您也可以直接在公式中输入开始日期和结束日期,如下所示:
使用公式在两个日期之间生成随机工作日
若要在单元格范围内生成随机工作日,请将 RANDARRAY 函数嵌入 WORKDAY 函数中。
1. 将以下公式输入或复制到空白单元格中,然后按 Enter 键,即可获得如下截图所示的数字列表:

2. 然后,在设置单元格格式对话框中,将这些数字设置为您所需的特定日期格式,即可获得如下截图所示的效果:

提示:您也可以直接在公式中输入开始日期和结束日期,如下所示:
2.3 在 Excel 365 / 2021 及更新版本中从列表生成或获取随机值
在 Excel 365、Excel 2021 及未来版本(如 Excel 2024)中,如果您希望从单元格列表中生成或返回一些随机值,本节将为您介绍一些公式。
使用公式从列表中生成或获取随机值
要从单元格列表中提取随机值,RANDARRAY 函数与 INDEX 函数的组合可助您一臂之力。通用语法如下:
- data:要从中提取随机项的值列表;
- n:要提取的随机项数量。
例如,要从名称列表 A2:A12 中提取 3 个姓名,请使用以下公式:
=INDEX(A2:A12, RANDARRAY())3, 1, 1, ROWS(A2:A12), TRUE)) (Type a number directly)
然后,按 Enter 键,即可一次性随机获取 3 个姓名,参见截图:

使用公式从列表中生成或获取无重复的随机值
使用上述公式,您可能会查重范围结果。若要从列表中无重复地进行随机选择,通用语法如下:
- 数据:要从中提取随机项的值列表;
- n:要提取的随机项数量。
如果您需要从名称列表 A2:A12 中随机返回 5 个姓名,请输入或复制以下任一公式:
=INDEX(SORTBY(A2:A12, RANDARRAY(ROWS(A2:A12))), SEQUENCE())5))(Type a number directly)
然后,按 Enter 键,即可从列表 A2:A12 中无重复地获取 5 个随机姓名,参见截图:

2.4 在 Excel 365 / 2021 及更新版本中从区域生成或整行
有时,您可能需要从 Excel 的单元格区域中随机选取若干行。为实现此任务,本文将介绍一些公式。
使用公式从区域生成或整行
从单元格区域生成随机行的通用语法如下:
- data:要从中提取随机行的单元格区域;
- n:要提取的随机行数量;
- {1,2,3…}:要提取的列号。
要从区域 A2:C12 中提取 3 行数据,请使用以下任一公式:
=INDEX(A2:C12, RANDARRAY())3, 1, 1, ROWS(A2:C12), TRUE), {1,2,3}) (Type a number directly)
然后,按 Enter 键,即可从区域 A2:C12 中获取 3 行随机数据,如截图所示:

使用公式从区域中生成或整行不重复的数据
同样,上述公式也可能生成重复数据。为防止重复行出现,您可以使用以下通用语法:
- 数据:要从中提取随机行的单元格区域;
- n:要提取的随机行数量;
- {1,2,3…}:要提取的列号。
例如,要从区域 A2:C12 中提取 5 行数据,请使用以下任一公式:
=INDEX(SORTBY(A2:C12, RANDARRAY(ROWS(A2:C12))), SEQUENCE())5), {1,2,3}) (Type a number directly)
然后,按 Enter 键,即可从 A2:C12 中获得 5 行不重复的随机数据,如下方截图所示:

防止随机结果发生变化
您可能已经注意到,本文中所有随机函数(如 RAND、RANDBETWEEN 和 RANDARRAY)均为易失性函数。每当工作表发生更改时,这些函数的结果都会重新计算,并生成新的随机值。为阻止随机值自动变化,以下是两个快速技巧供您参考。
通过复制粘贴防止随机结果发生变化
通常,您可以使用复制和粘贴功能,将动态公式以数值形式复制粘贴,请按以下步骤操作:
1. 选择包含随机公式的单元格,然后按 Ctrl + C 复制。
2. 然后,右键单击选择区域,点击选择性粘贴区域中的数值选项,如截图所示:
提示:您也可以按下 Shift + F10,再按 V 来激活此选项。

3. 此时,所有公式单元格均已转换为数值,随机值将不再变动。
通过便捷功能防止随机结果发生变化
如果您已安装 Kutools for Excel,只需单击一次转为实际值功能,即可将所有选中的公式单元格转换为数值。
1. 选择包含随机公式的单元格,然后点击 Kutools 中的转为实际值,如截图所示:

2. 现在,所有选中的公式均已转换为数值。
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……更多 |
使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……
Office Tab 为 Office 带来标签式界面,让您的工作更轻松
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读。
- 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
- 将您的工作效率提升 50%,每天减少数百次鼠标点击!
所有 Kutools 插件,一个安装程序
Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
- 协同效果更佳— 在多个 Office 应用中实现高效协同
- 30 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱












按钮,即可打开另一个 Kutools for Excel 提示框,输入或选择您希望随机列出的自定义文本值。(手动输入时,请用逗号分隔各条目。)




