跳到主要内容

在 Excel 中随机化列表(简单的分步教程)

执行随机排序是一种快速简便的方法,可确保您最终以相同的概率出现所有案例。 在本教程中,我们将讨论如何通过几个步骤在 Excel 中轻松随机化或随机排列列表。


视频:在 Excel 中随机化列表


使用函数随机化列表

在本节中,我将教您如何使用内置的 Excel 函数对列表进行随机排序。

使用 RAND 函数随机化列表

任何 Excel 版本的用户都可以使用 兰德 的帮助下发挥作用 排序 功能,请按照以下步骤操作。

第一步:输入RAND公式

选择要随机化的列表顶部单元格旁边的单元格,输入下面的 RAND 公式,然后按 输入.

=RAND()

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

双击公式单元格的填充柄(右下角的绿色小方块),将公式应用到下面的单元格。

第 3 步:对 RAND 结果进行排序以打乱列表

1。 选择 B2:B8,包含 RAND 公式的列表。

2。 点击 排序和过滤 > 最小到最大排序 ,在 编辑 组上 主页 标签。

3.在弹出窗口中 排序警告 对话框中选择 扩大选择,然后点击 排序.

结果

现在,一切就绪! 该列表是随机的,如下所示。

请注意: Excel RAND 函数 是易变的:它会在每次工作表更改时重新计算结果。 因此,B 列中的数字在排序后立即发生变化。 如果你想重新洗牌列表,重复上面的 步骤3. 否则,您可以简单地使用 RAND 函数删除该列。
使用 RANDARRAY、SORTBY 和 ROWS 函数随机化列表 (Excel 365/2021)

如果您是较新 Excel 版本的用户,例如 Excel for Microsoft 365 或 Excel 2021,或 Excel for the Web, 兰德雷, 排序方式ROWS 公式将帮助您快速获得在您指定的位置打乱的列表。

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

选择一个你想得到随机结果的空白单元格,输入下面的公式(注意你应该改变 A2:A8 在下面的公式中添加到要随机化的原始列表中)并按 输入.

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

请注意:
  • #洒 当溢出范围(B2:B8 在这种情况下)因为公式不为空。
  • 该公式是易变的:它会在每次工作表更改时重新计算其结果。 如果您想再次洗牌,请按 F9.
  • 公式结果(随机列表)不可编辑。 如果您需要编辑随机列表,请执行下一步。

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

如果你只想看到一个随机结果,你可以 跳过这一步. 如果你想编辑随机打乱的列表,你应该只复制公式结果和粘贴值:

1. 选择公式结果并按下 按Ctrl + C 复制它。

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

3。 选择 仅粘贴值 右键单击菜单中的选项。

结果

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


单击 2 次,使用 Kutools 在 Excel 中随机化列表

如果您厌倦了使用公式并打算使用加载项的帮助, Kutools for Excel随机排序/选择范围 功能可以帮助您使用更多选项更轻松地执行随机排序。 请按如下方式:

首先,选择您要洗牌的列表。 然后选择 库工具 > 范围 > 随机排序/选择范围。 在弹出窗口中 随机排序/选择范围 对话框中选择 整行,然后点击 Ok.

请注意:

使用 VBA 随机化列表

如果您更喜欢使用 VBA 方法随机化列表,请执行以下操作。

请注意: 运行 VBA 宏后无法撤消。 因此,请在其他地方复制一份列表,以备日后需要原始数据时使用。

第 1 步:选择您要洗牌的列表

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

1。 按 Ctrl + F11键 打开 VBA 编辑器,然后单击 插页 > 模块 打开模块代码窗口。

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

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.
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations