Skip to main content

Kutools for Office — 一套工具,五種功能。完成更多工作。

如何在Excel中製作抽獎名單?

Author Xiaoyang Last modified

在職場活動、團隊會議或特殊場合中,經常需要從大量名單中隨機選出幾位幸運的參與者或獲獎者——例如,用於團隊抽獎、隨機頒獎或選擇志願者。當處理數字名單時,特別是隨著名單數量增加,手動抽獎(如從帽子裡抽名字)可能效率低下甚至不切實際。幸運的是,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)。抽中的名字將自動出現在單元格中。參見截圖:

Extract random names with a formula

參數解釋和實用提示:

  • 在此公式中:
    • 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 > 範圍 > 隨機排序/選擇。參見截圖:

click Sort / Select Range Randomly feature of kutools

2. 在「隨機排序/選擇」對話框中,前往「選擇」標籤。在這裡,在「要選擇的單元格數」框中輸入您希望的隨機名字數量(例如,3),然後在「選擇類型」部分下選擇「選擇隨機單元格」。這允許您隨機選擇任意數量的唯一名字。參見截圖:

specify the options in the dialog box

3. 點擊「確定」。指定數量的名字將被隨機選擇並在您的列表中高亮顯示,這樣您可以輕鬆識別獲獎者或被選中的參與者。參見截圖:

the specific number of names are selected

此方法因其易用性和可靠性而突出,如有需要還能提供更多排序或打亂名字的選項。您可以根據需要多次使用此功能,並且避免了手動計算常見的錯誤或重複。非常適合那些希望快速解決方案而不用擔心公式或編程的人。

注意:請確保不要選擇範圍內其他不相關的數據,因為只有高亮顯示的單元格代表您的獲獎名字。高亮顯示的名字可以根據需要進行複製或標記以便進一步使用。

點擊立即下載 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 選項。此步驟是為了啟用代碼中使用的腳本字典。參見截圖:

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

實用提示:在運行代碼之前,請確保保存您的工作。如果遇到錯誤,請仔細檢查您的引用設置和單元格範圍選擇。此方法給您更多控制權,但最適合熟悉基本 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 提供了額外的靈活性。如果遇到錯誤或意外結果,請仔細檢查單元格引用、範圍選擇,並確保啟用了任何必要的插件或宏設置。為了獲得最佳效果,始終在開始抽獎前保存您的數據並驗證結果,以避免在重要活動或團隊事件中犯錯。


最佳 Office 生產力工具

🤖 Kutools AI 助手:以智能執行為基礎,革新數據分析 生成程式碼 創建自訂公式 分析數據並生成圖表 調用 Kutools 增強函數
熱門功能查找、選取項目的背景色或標記重複值刪除空行合併列或單元格且不遺失數據四捨五入(免公式)...
高級 LOOKUP多條件 VLookup多值 VLookup多表查找模糊查找...
高級下拉列表快速創建下拉列表 依賴型下拉列表 多選下拉列表...
列管理器添加指定數量的列移動列切換隱藏列的顯示狀態比較區域及列...
精選功能網格聚焦 設計檢視 增強編輯欄 工作簿及工作表管理器 資源庫(快捷文本) 日期提取器 合併資料 加密/解密儲存格 按列表發送電子郵件 超級篩選 特殊篩選(篩選粗體/傾斜/刪除線...)...
15 大工具集12 項文本工具添加文本刪除特定字符…)50+ 儀表 類型甘特圖等)40+ 實用 公式基於生日計算年齡等)19 項插入工具插入QR码根據路徑插入圖片等)12 項轉換工具金額轉大寫匯率轉換等)7 項合併與分割工具高級合併行分割儲存格等)...及更多
使用 Kutools,語言任你選 — 支援英語、西班牙語、德語、法語、中文及超過40 種語言!

運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...


Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單

  • 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀
  • 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
  • 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!

所有 Kutools 外掛,一次安裝

Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。

Excel Word Outlook Tabs PowerPoint
  • 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
  • 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
  • 協同運作更順暢 — Office 應用間無縫提升生產力
  • 30 天全功能試用 — 無需註冊、無需信用卡
  • 最超值 — 一次購買,節省單獨外掛費用