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

如何在 Excel 中随机打乱行、列或单元格区域?

作者修改日期

在使用 Microsoft Excel 处理数据时,您可能会遇到需要随机打乱行、列,甚至特定单元格区域顺序的情况。打乱数据在生成用于统计分析的随机样本、随机排列测验或调查题目、创建随机参与者名单,以及确保测试与验证过程中数据分布更加多样化等场景中,具有显著优势。本文将为您详细介绍几种在 Excel 中高效打乱数据的实用方法,涵盖适用于不同技能水平和 Excel 版本的解决方案。每种方法各具特色,您可以根据具体的数据管理需求,选择最合适的方式。


使用辅助列打乱数据的行/列

在许多简单场景中,您可能希望快速打乱行或列,而无需依赖插件或复杂方案。此方法巧妙结合辅助列与 Excel 内置排序功能,轻松实现数据随机化,操作简便,几乎兼容所有 Excel 版本,是处理中小型数据集的理想之选。

1. 选择紧邻您数据区域的单元格区域——例如,若您的数据位于 A1:B8,则选择 D1:D8,然后在第一个单元格中输入公式 =RAND()。该公式将为每一行生成一个随机数,作为打乱顺序的依据。参见截图:

2. 按 Ctrl + Enter 即可将公式填充至整个选定区域,随即生成一列随机数值,每行对应一个值。

显示一个随机数据列表

3. 转到数据选项卡,选择按小到大排序按大到小排序,即可根据随机键对数据重新排序,从而打乱行顺序。请确保所选区域包含所有相关列,以免数据错位。参见截图:

转到“数据”选项卡,选择“从小到大排序”或“从大到小排序”

4. 当排序对话框弹出时,选择扩展选定区域,以确保打乱操作应用于整行并保持数据完整性;点击排序即可确认。

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

完成上述步骤后,您的数据区域将按行随机打乱,呈现全新的顺序。

数据区域按行随机打乱

排序完成后,您可以删除或清除辅助列,让工作表更整洁。

删除辅助列

提示与注意事项:
  1. Excel 的 RAND 函数属于易失性函数,每次工作表重新计算时都会生成全新的随机数。这意味着一旦触发重新计算,数据可能会意外地再次被打乱顺序,因此在完成初次打乱后,请务必谨慎操作。
  2. 如果您希望保留随机化后的顺序,请先复制包含 RAND 公式的单元格,然后使用选择性粘贴>,将公式转换为静态数值,再进行排序并删除辅助列。
  3. 此方法最适合打乱整行数据。对于更复杂的场景(例如打乱列或单个单元格),请参考以下介绍的其他方法。

使用 RANDARRAY 函数打乱行或列(Excel 365/2021)

对于使用 Excel 365 或 Excel 2021 的用户,RANDARRAY 函数可为每行或每列动态生成唯一的随机键,特别适合打乱大型数据集,确保随机性且无重复。当您希望避免随机数重复,并需要基于公式的现代 Excel 解决方案时,此方法尤为理想。它还能根据任意条件灵活重新打乱数据。

1. 假设您的数据位于 A1:B8 单元格区域,请在 D1 单元格中输入以下公式,为每一行生成唯一的随机数列表:

=RANDARRAY(8,1)

说明: 8 表示行数;1 指定为单列。请根据您的区域大小调整这些数值。若行数更多,请将 8 替换为数据集中的实际行数。

2. 要打乱行,请先选中您的主数据区域及由 RANDARRAY 生成的随机数列,然后切换至数据选项卡,点击排序,并基于随机数列进行排序,同时勾选“扩展选定区域”以包含所有相关列。

3. 排序完成后,即可删除辅助列,轻松清理工作表。

提示:

  • 如果您希望打乱的是列而非行,请生成一个随机数组,并按列(而非行)进行排序。
  • 您可以将 RANDARRAY 与其他动态数组公式结合,实现更高级的打乱操作,例如仅对部分行重新排序,或排除特定条目。

 

限制:RANDARRAY 函数仅适用于 Excel 365 和 Excel 2021. 早期版本请使用上文所述的 RAND()方法。


使用 Kutools for Excel 随机打乱行/列/单元格区域

Kutools for Excel随机排序功能,可轻松应对更高级的数据打乱需求(例如整列随机排序或打乱区域内单个单元格)。该工具提供全面选项,无需手动输入公式或使用繁琐的变通方法,即可快速打乱行、列或任意选定区域,完美满足复杂场景需求。特别适用于处理大型数据集、创建实验样本,或准备随机训练与测试表格的用户——高效精准,不容错过!

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

安装 Kutools for Excel 后,请按以下步骤操作:

1. 选择要随机打乱的单元格区域,点击 Kutools > 区域 > 随机排序或选择。参见截图:

2. 在排序/随机选择对话框的排序选项卡下,根据您要打乱的内容选择相应选项,例如按整行、整列或选定区域中的每个单元格。

在对话框中选择该选项

3. 点击确定应用,即可执行所选的随机化操作。Kutools 将立即根据您指定的条件打乱所选区域。

按整行排序

按整行排序

按整列排序排序

按整列排序

打乱区域内的单元格

对区域中的单元格排序

按排序在每一行排序

对每一行中的单元格排序

按排序在每一列排序

对每一列中的单元格排序

此外,Kutools for Excel随机排序工具还允许您从选定区域内随机选取单元格,当您需要进行随机抽样,或仅提取特定单元格而不打乱整个工作表时,尤为实用。

使用 Kutools 随机选择单元格

与手动方法相比,Kutools 支持更广泛的打乱操作,并能自动化原本多步骤或易出错的流程,为重复性或大规模使用场景提供更高的效率和灵活性。

本文介绍了多种在 Microsoft Excel 中随机化行、列和区域的解决方案,涵盖满足即时需求或更高级设置场景的方法。如需探索更多 Excel 数据处理技巧,我们的网站提供数千篇专门教程。请点击此处访问


通过 VBA 宏打乱单元格

下面的宏可对指定区域中的单元格进行随机打乱。

准备工作:为确保安全,请在运行宏前保存工作簿,并确认已启用宏。当您需要在多个文件或大型数据集中重复、可编程地执行打乱操作时,VBA 解决方案最为适用。

使用方法:
1. 单击开发工具>Visual Basic,然后在 Microsoft Visual Basic for Applications 窗口中,单击插入> 模块
2. 将下列代码之一复制并粘贴到模块区域中。

通过直接交换方式打乱区域中的单元格(完全随机化)

Sub FullyShuffleRange()
    Dim rng As Range
    Dim arr
    Dim r As Long, c As Long, i As Long, totalCells As Long
    Dim r1 As Long, c1 As Long, r2 As Long, c2 As Long, tmp
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set rng = Application.Selection
    Set rng = Application.InputBox("Select a range to fully shuffle", xTitleId, rng.Address, Type:=8)
    
    arr = rng.Value
    r = UBound(arr, 1)
    c = UBound(arr, 2)
    
    Randomize
    totalCells = r * c
    
    For i = 1 To totalCells
        r1 = Int(Rnd * r) + 1
        c1 = Int(Rnd * c) + 1
        r2 = Int(Rnd * r) + 1
        c2 = Int(Rnd * c) + 1
        
        tmp = arr(r1, c1)
        arr(r1, c1) = arr(r2, c2)
        arr(r2, c2) = tmp
    Next i
    
    rng.Value = arr
End Sub

单击运行以启动宏,然后选择要打乱的目标区域(例如 A1:D10)。此代码通过反复随机交换单元格的值,实现彻底打乱,在需要均匀打乱所有单元格时非常有效,例如用于游戏或测验中的随机分配。

故障排除与注意事项:
  • 宏可能会用打乱后的值覆盖原始区域中的公式,建议仅对静态数据使用。
  • 如果遇到错误(例如选区不正确),请重新运行并选择正确的区域。
  • 首次执行宏之前,请务必保存文件,并备份重要工作表,因为宏操作无法自动撤销。

演示:随机选择或排序单元格

 

最佳办公效率工具

🤖KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLookup  |  多值 VLookup  |   跨多工作表 VLookup   |   模糊查找……
高级下拉列表快速创建下拉列表   |  级联下拉列表   |  多选下拉列表……
列管理器添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列……
特色功能网格聚焦   |  设计视图   |增强编辑栏   | 工作簿和表管理器   |  资源库(自动文本)|  日期提取   |  汇总工作表  |  加密/解密单元格   | 按列表发送邮件   |  超级筛选   |   特殊筛选(筛选粗体单元格/斜体/删除线……) ......
精选 15 工具集12 文本工具添加文本删除特定字符,……)|   50+ 图表 类型甘特图,……)|   40+ 实用公式基于生日计算年龄,……)|   19 插入工具插入二维码从路径插入图片,……)|   12 转换工具小写金额转大写汇率转换,……)|   7 合并和拆分工具高级合并行分割单元格,……)|……更多
在您的首选语言中使用 Kutools – 支持英语、西班牙语、德语、法语、中文及 40+ 种其他语言!

使用 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 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱