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

如何在 Excel 中制作幸运抽奖名单?

作者小杨修改日期

在职场活动、团队会议或特别场合中,常常需要从一份庞大的名单中随机选出几位幸运参与者或获奖者——比如用于团队抽奖、随机颁奖或志愿者招募。当面对大量数据(尤其是名单人数众多)时,传统的“帽子抽签”方式不仅效率低下,而且难以操作。幸运的是,Excel 提供了多种高效实用的方法,助您直接在电子表格中实现透明、可重复且高度自定义的随机抽取体验。本文将为您详细解析几种在 Excel 中随机抽取姓名的有效方法,涵盖各自的适用场景、优势与注意事项,并分享一些规避常见错误的实用技巧。

使用公式抽取随机姓名进行幸运抽奖

使用 Kutools for Excel 随机选择姓名进行幸运抽奖

使用 VBA 代码抽取随机姓名进行幸运抽奖

替代方案:使用 RAND 函数和排序抽取随机姓名


使用公式抽取随机姓名进行幸运抽奖

如果您需要从一列姓名中随机抽取特定数量的姓名(例如 3 位获奖者),可采用一种巧妙的公式方法。该方法能自动避免重复抽取,并在每次工作簿重新计算时自动更新结果,尤其适合从中等规模名单中精准选出少量固定人数,且无需额外加载项或代码,全程可追溯、高效又可靠。

使用此方法,请按以下步骤操作:

在您希望显示第一个幸运抽奖结果的空白单元格中(例如 C2)输入以下公式:

=IF(ROWS(C$2:C2)>B$2,"",INDEX(A$2:A$16,AGGREGATE(15,6,((ROW(A$2:A$16)-ROW(A$2)+1)/ISNA(MATCH(A$2:A$16,C$1:C1,0))),RANDBETWEEN(1,ROWS(A$2:A$16)-COUNTA(C$1:C1)+1))))

输入公式后,将填充柄向下拖动至所需抽取姓名数量对应的行数(例如,若要抽取 3 个姓名,则向下拖动至 C4 单元格)。抽中的姓名将自动显示在这些单元格中。参见截图:

使用公式提取随机姓名

参数说明与实用技巧:

  • 在本公式中:
    • A2:A16— 这是您的源姓名列表。请将此区域调整为与您实际的姓名数据一致。
    • B2— 此单元格应填入您要随机抽取的姓名总数(例如,输入 3)。
    • C2— 这是结果列表中的第一个单元格,您需在此输入公式。
    • C1— 这是公式正上方的单元格。即使留空,该单元格对公式的正常运行也必不可少。
  • 此方法具有动态性:如需生成一组新的随机姓名,只需按下 F9 键,即可立即重新计算并获得全新结果。
  • 为防止每次工作表重新计算时公式结果发生变化,您可以复制抽中的姓名,并使用选择性粘贴 > 值将其转换为静态值。
  • 如果您的名称列表较长,或需多次执行抽取操作,请确保结果列与名称列表不重叠,以免引发错误。

注意:请仔细核对单元格引用是否正确,并确保所选区域与您的实际数据一致。若更改工作表结构或删除被引用的单元格,可能导致公式失效。


使用 Kutools for Excel 随机选择姓名进行幸运抽奖

Kutools for Excel随机排序功能为您提供了一种无需编写公式、简单直观的姓名随机抽取方式。此方案特别适合非技术用户,或在您希望以可视化方式快速操作时使用——尤其适用于处理大型数据集或需要频繁重复抽奖的场景。

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

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

1. 选中您要用于幸运抽奖的整个名称列表,然后点击 Kutools > 区域 > 随机排序或选择。参见截图:

点击 Kutools 的“随机排序/选择范围”功能

2. 随机排序或选择对话框中,切换到选择选项卡,在要选中的个数框中输入您要随机抽取的姓名数量(例如 3),然后在单元格下的选中类型部分选择相应选项,即可随机抽取任意数量的唯一姓名。参见截图:

在对话框中指定选项

3. 单击确定,指定数量的姓名将被随机选中,并在您的列表中高亮显示,便于您轻松识别获奖者或选定的参与者。参见截图:

已选中指定数量的姓名

此方法以其易用性和可靠性脱颖而出,并可根据需要提供额外的排序或打乱姓名选项。您可以根据需要多次使用此功能,有效避免手动计算中常见的错误或重复问题。对于希望快速获得解决方案而无需担心公式或编码的用户而言,这是理想之选。

注意:请确保所选区域不含其他无关数据,因为只有高亮显示的单元格代表您的获奖姓名。您可根据需要复制或标记该高亮名称区域,以便后续使用。

立即点击下载 Kutools for Excel 并免费试用!

总之,Kutools for Excel 能以用户友好且高效的方式管理随机抽奖,尤其适用于将可靠性和易用性置于首位的场景,或需要面向不同规模群体多次开展抽奖活动时。


使用 VBA 代码抽取随机姓名进行幸运抽奖

对于高级场景,或当您希望以更高的灵活性自动化该流程时,可使用 VBA 代码从列表中抽取随机姓名。如果您熟悉 Excel 的开发者选项,并希望重复抽奖或自定义流程(例如将结果输出到指定位置,或处理更庞大的名单),此方案尤为适用。

请按以下步骤使用 VBA 进行幸运抽奖:

1. Alt + F11 即可打开 Microsoft Visual Basic for Applications 窗口。

2. 单击插入> 模块,创建一个新模块,然后将下方的 VBA 代码复制并粘贴到模块窗口中。

VBA 代码:从列表中抽取随机姓名:

Public Sub LuckyDraw()
    Dim I, J, xRnd As Long
    Dim xSRg, xDRg As Range
    Dim xDic As New Dictionary
    Dim xnum, xLastRow As Long
    On Error Resume Next
    Set xSRg = Application.InputBox("Please select the data list:", "KuTools for Excel", Selection.Address, , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    Set xDRg = Application.InputBox("Please selecta cell to put the result:", "KuTools for Excel", , , , , , 8)
    If xDRg Is Nothing Then Exit Sub
    xLastRow = xSRg.Rows.Count
    Set xSRg = xSRg(1)
    Set xDRg = xDRg(1)
    xnum = Range("B2")
    If xnum < 1 Then Exit Sub
    J = 0
    For I = 1 To xnum
LabExit:
        xRnd = Int(Rnd() * xLastRow)
        If xDic.Exists(xRnd) Then GoTo LabExit
        xDic.Add xRnd, ""
        xDRg.Offset(J, 0).Value = xSRg.Offset(xRnd, 0).Value
        J = J + 1
    Next
End Sub

参数说明:在代码中,B2 是您输入要抽取随机姓名数量的单元格,您可根据需要随时更改该单元格引用。

3. 粘贴代码后,在 VBA 编辑器窗口中依次点击工具> 引用。在弹出的对话框中,勾选位于可用引用列表中的 Microsoft Scripting Runtime 选项。此步骤是启用代码中所用脚本字典所必需的。参见截图:

点击 工具 > 引用,然后勾选 Microsoft Scripting Runtime 选项

4. 单击确定关闭对话框,然后按 F5 运行代码,此时将弹出提示框,要求您选择包含待抽取姓名的数据列表。参见截图:

用于选择数据列表的 VBA 代码

5. 单击确定,随后将弹出另一个提示框,供您选择用于显示抽奖结果的目标单元格。参见截图:

用于选择放置结果的单元格的 VBA 代码

6. 单击确定以完成操作,随即,随机选出的姓名将从您指定的单元格开始立即输出。参见截图:

已随机生成所需数量的姓名

实用提示:运行代码前,请务必保存您的工作。如遇错误,请仔细检查引用设置和单元格区域选择。此方法控制力更强,但更适合熟悉基础 VBA 操作的用户。

优缺点:VBA 方法在自定义方面功能强大,可针对高级需求灵活定制,例如排除往期中奖者、自动发送通知等;但需具备基础的 VBA 知识,且仅在您的环境允许使用宏时才适用。


替代方案:使用 RAND 函数和排序抽取随机姓名

除了上述方法外,另一种实用且直观的解决方案是结合使用 Excel 的 RAND 函数与排序功能。此方法简单易行,无需复杂公式、加载项或代码,适用于任何 Excel 版本中的快速临时抽奖。当您希望手动查看并验证随机化过程时,这种方法尤其有用。

操作步骤如下:

  • 在您的名称列表旁添加一个辅助列,并在辅助列的首个单元格中输入 =RAND()(例如,若姓名位于 A2:A16,则在 B2 中输入)=RAND())。
  • 将公式向下复制到整个列表旁。每个单元格将填充一个随机小数。
  • 同时选中您的原始姓名列和 RAND 辅助列。
  • 转到数据选项卡,然后选择排序。将排序依据设为包含 RAND 值的辅助列,按从小到大(或从大到小)排序,即可随机打乱整个列表。
  • 排序完成后,只需从重新排列的列表顶部选取前 N 个姓名作为您的幸运抽奖获奖者。

提示与注意事项:每次工作表重新计算时,RAND 函数都会自动更新。若要冻结抽奖结果,请将姓名复制并以数值形式粘贴到其他位置;如需重新抽奖,只需按 F9 键即可重新计算!

优势:此方法实施极为简便,无需额外设置,且在现场抽奖时能清晰展现公平性。然而,若您需频繁重复抽奖,或使用排除名单等高级功能,则更适合借助公式、VBA 或 Kutools 实现。


总之,Excel 提供了多种方式用于随机抽取姓名进行抽奖。方法的选择取决于您对简易性、可定制性或可视化交互的偏好。对于简单的手动操作,推荐使用 RAND 函数配合排序或 Kutools for Excel。对于动态且可重复使用的解决方案,公式或 VBA 能提供更高的灵活性。如果遇到错误或意外结果,请仔细检查您的单元格引用、区域选择,并确保已启用必要的加载项或宏设置。为获得最佳效果,开始抽奖前务必备份数据,并验证结果,以免在重要活动或团队事件中出现差错。


最佳办公效率工具

🤖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 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱