KutoolsforOffice — 一套方案,五大工具。事半功倍。

在 Excel 中随机打乱列表(简单分步教程)

作者Amanda Li修改日期

随机排序是一种快速简便的方法,能确保所有项目以均等概率呈现。在本教程中,我们将为您介绍如何通过几个简单步骤,在 Excel 中轻松打乱或随机化您的列表。

展示 Excel 中随机化结果的截图

视频:在 Excel 中随机化列表


使用函数随机化列表

在本节中,我将教您如何利用 Excel 内置函数轻松打乱列表顺序。

使用 RAND 函数随机打乱列表

任何 Excel 版本的用户均可借助排序功能,结合 RAND 函数对原始数据集进行随机排序,请按以下步骤操作。

步骤 1:输入 RAND 公式

在要随机打乱的列表旁选择一个单元格,输入下方的 RAND 公式,然后按“Enter”键。

=RAND()

单元格中的 RAND 公式

步骤 2:将 RAND 公式填充到其他单元格

双击公式单元格右下角的填充柄(绿色小方块),即可将公式快速应用到下方所有相关单元格。

RAND 公式应用于其他单元格

步骤 3:对 RAND 结果排序以打乱列表

1. 请选择包含 RAND 公式的单元格区域“B2:B8”。

2. 在“开始”选项卡的“编辑”组中,单击“排序和筛选”>“升序排序”。

功能区上的“从小到大排序”选项

3. 在弹出的对话框中,选择“扩展选定区域”,然后点击“排序”。

选择“扩展选定区域”选项

结果

现在,一切就绪!列表已按如下方式随机打乱。

列表已被随机化

注意:Excel RAND 函数是易失性函数:每次工作表发生更改时都会重新计算结果。因此,排序后 B 列中的数字会立即发生变化。如果您想再次打乱列表,请重复上述步骤3. 否则,您可以直接删除包含 RAND 函数的列。
使用 RANDARRAY、SORTBY 和 ROWS 函数随机打乱列表(Excel 365/2021)

如果您使用的是较新版本的 Excel,例如 Microsoft 365 专属 Excel、Excel 2021 或 Excel 网页版,RANDARRAYSORTBYROWS 函数即可助您快速在指定位置生成打乱后的列表。

步骤 1:输入 RANDARRAY、SORTBY 和 ROWS 公式

选择一个空白单元格用于显示随机化结果,输入下方公式(注意:请将公式中的“)A2:A8”替换为您要随机打乱的原始列表),然后按 Enter 键即可。

=SORTBY(A2:A8,RANDARRAY(ROWS(A2:A8)))

注意:
  • 当溢出区域(本例中为 B2:B8)非空时,Excel 将返回“#SPILL!”错误。
  • 该公式具有易失性,每次工作表发生变化时都会自动重新计算结果。如需再次打乱列表,请按 F9 键。
  • 公式生成的随机化列表不可编辑。如需编辑随机化后的列表,请执行下一步操作。

(可选)步骤 2:复制并粘贴公式结果以使其可编辑

如果您只想查看随机结果,可跳过此步骤;若希望编辑打乱后的列表,请复制公式结果并执行以下操作:

1. 选中公式结果,按下“Ctrl”+“C”即可复制。

2. 右键单击要粘贴复制结果的单元格。(您也可以将值粘贴回原位置。)

3. 从右键菜单中选择“粘贴为数值”选项。

结果

现在,您将获得一个可编辑且已打乱的列表,如下所示。


使用 Kutools 在 2 次点击内随机打乱 Excel 列表

如果您厌倦了使用公式,不妨借助加载项!Kutools for Excel随机排序或选择功能可让您更轻松地完成随机排序,并提供丰富选项。请按以下步骤操作:

Kutools for Excel 提供超过 300 项高级功能,简化复杂任务,提升创造力与效率。结合 AI 能力,Kutools 能精准自动化任务,让数据管理变得轻松自如。有关 Kutools for Excel 的详细信息……         免费试用……

首先,选择要打乱的列表。然后依次单击“Kutools”>“范围”>“随机排序或选择”。在弹出的“随机排序或选择”对话框中,选择“整行”,然后单击“确定”。

在对话框中选择“整行”选项以打乱列表顺序

注意:

使用 VBA 随机化列表

如果您倾向于使用 VBA 方法来随机打乱列表,请按以下步骤操作。

注意:运行 VBA 宏后操作将无法撤销,因此请务必备份该列表至其他位置,以免将来需要恢复原始数据。

步骤 1:选择要打乱的列表

已选中要打乱顺序的列表

步骤 2:将 VBA 代码复制到模块窗口

1. 按下“Ctrl”+“F11”打开 VBA 编辑器,然后单击“插入”>“模块”,即可打开模块代码窗口。

在 VBA 编辑器中单击 插入 > 模块

2. 将下方的 VBA 代码复制并粘贴到打开的模块窗口中。

Sub RandomSort()
'Update by ExtendOffice
Dim xRg As Range
Dim xNum, xF, xI As Integer
Dim xWSh, xAWSh As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xAWSh = Application.ActiveSheet
Set xRg = ActiveWindow.RangeSelection
Set xWSh = Worksheets.Add
xNum = xRg.Count
For xF = xNum To 1 Step -1
    xI = WorksheetFunction.RandBetween(1, xF)
    xWSh.Range("A1").Value = xRg.Item(xI)
    xRg.Item(xI) = xRg.Item(xF)
    xRg.Item(xF) = xWSh.Range("A1")
Next
xWSh.Delete
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

步骤 3:运行 VBA 代码

在代码窗口中,按“F5”或点击运行按钮按钮即可运行此代码。

代码窗口中的运行按钮

结果

列表已被打乱

注意:如果您想再次随机打乱列表,请重复上述3.