跳至主要内容

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

Author: Xiaoyang Last Modified: 2025-07-31

在日常工作中,有时你需要从一个很长的名单中随机选出一些员工作为幸运儿。在Excel中,如何随机选择一些名字来制作抽奖名单呢?本文将介绍一些在Excel中处理此任务的有效方法。

使用公式提取用于抽奖的随机名字

使用Kutools for Excel选择用于抽奖的随机名字

使用VBA代码提取用于抽奖的随机名字


使用公式提取用于抽奖的随机名字

例如,我想从名单中提取任意3个名字,以下长公式可以帮助你,请按如下操作:

在你想放置结果的空白单元格中输入这个公式: =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)))) ,然后向下拖动填充柄到需要的单元格,见截图:

Extract random names with a formula

注意事项:

1. 在上述公式中:A2:A16是你要从中随机提取的名字列表,B2是你想要提取的名字数量,C2是输入公式的单元格,而C1是公式单元格上方的单元格。

2. 你可以按F9键以获取另一组新的随机名字。


使用Kutools for Excel选择用于抽奖的随机名字

也许以上两种方法对我们大多数人来说都比较困难,这里,如果你有Kutools for Excel,通过其随机排序区域功能,你可以快速随机选择名字。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

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

1. 选择你想要随机选择的名字列表。然后点击 Kutools > 区域 > 随机排序或选择,见截图:

click Sort / Select Range Randomly feature of kutools

2. 在随机排序或选择对话框中,在选择选项卡下,输入你想要选择名字的数量到要选中的个数文本框中,然后在选中类型部分选择随机选择单元格,见截图:

specify the options in the dialog box

3. 然后点击确定按钮,你指定数量的名字就会被选中,见截图:

the specific number of names are selected

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


使用VBA代码提取用于抽奖的随机名字

这里,一段VBA代码也可以帮助你完成此任务,请按以下步骤操作:

1. 按住Alt + F11键打开Microsoft Visual Basic for Applications窗口。

2. 点击 插入 > 模块,并在 模块窗口中粘贴以下代码。

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. 插入代码后,然后点击工具 > 引用在打开的Microsoft Visual Basic for Applications窗口中,然后在弹出的引用 - VBAProject对话框中,勾选可用引用列表框中的Microsoft Scripting Runtime选项,见截图:

click Tools > References, then check Microsoft Scripting Runtime option

4. 然后点击确定按钮退出对话框,然后按F5键运行此代码,会弹出一个提示框提醒你选择要提取名字的数据列表,见截图:

vba code to select the data list

5. 点击确定按钮,会弹出另一个提示框,请选择一个你想要放置结果的单元格,见截图:

vba code to select a cell to put the result

6. 然后点击确定,所需的随机名字数量会立即生成,见截图:

the desired number of names are created randomly

最佳 Office 办公效率工具

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

用 Kutools for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...


Office Tab 为 Office 带来标签式界面,让你的工作更加轻松

  • 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
  • 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
  • 办公效率提升50%,每天帮你减少上百次鼠标点击!