KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

在 Excel 中快速為資料清單產生隨機群組

作者Sun修改日期

在日常工作中,或準備研習、培訓課程時,您可能需要將資料清單(例如姓名、學生 ID 或專案任務)隨機分組。如 Screenshot 1 所示,資料項目被隨機指派至各群組;又如 Screenshot 2 所示,姓名被隨機分配至不同團隊,以進行活動或小組任務。高效完成此任務不僅確保公平性,更能大幅節省手動分配所需的寶貴時間。幸運的是,Excel 提供多種可靠方法——包括公式、VBA 自動化與樞紐分析表——助您快速、靈活地搞定隨機分組!

Screenshot 1Screenshot 2
  顯示隨機資料分配至群組的螢幕截圖  顯示隨機資料分配至一列名稱的螢幕截圖

隨機將資料分配至各組

依指定資料量產生隨機群組

透過 VBA 自動執行隨機群組分配(高級選項)

下載範例檔案


隨機將資料分配至各組

當您需要將資料清單隨機分配至指定數量的群組,且能接受各群組人數不均時,可善用 Excel 的 CHOOSE 與 RANDBETWEEN 函數快速完成。典型應用情境包括遊戲參與者分組或臨時會議團隊編組。

首先,在您的清單旁選擇一個空白儲存格(例如,若清單位於 A 欄,請選取 B2 儲存格),然後輸入下列公式:

=CHOOSE(RANDBETWEEN(1,3),"Group A","Group B","Group C ")

在此公式中:

  • RANDBETWEEN(1,3) 會產生 1 至 3 之間的亂數,代表 3 個群組。
  • A 組、B 組與 C 組將作為分組名稱顯示在您的資料旁邊。

接著,向下拖曳填滿控點,將公式套用至其他列,即可隨機將所有項目分配至各群組。
使用公式將資料隨機分配至群組的螢幕截圖

完成此步驟後,每筆資料項目都會被隨機分配至一個群組。請注意,由於 RANDBETWEEN 是易失性函數,每當工作表重新計算(例如編輯儲存格或重新開啟檔案)時,結果都可能變動。

實用提示:若不希望這些分配結果變動,請複製公式結果,並使用選擇性貼上 > 數值來固定分配結果。

適用情境:此方法彈性高,適合快速滿足一般分組需求;但各群組人數可能不均,因此不適用於需嚴格平均分配的場合。

注意事項:若資料集龐大或需精確控制群組大小,建議改用其他方法以掌握更多調整彈性。

kutools for excel ai 的螢幕截圖

透過 KUTOOLS AI 解鎖 Excel 的神奇功能

  • 智慧執行:透過簡易指令,輕鬆執行儲存格操作、分析資料,並建立圖表!
  • 自訂公式:打造專屬公式,讓您的工作流程更順暢!
  • VBA 編碼:輕鬆撰寫並套用 VBA 程式碼,立即提升工作效率!
  • 公式解析:輕鬆掌握複雜公式!
  • 文字翻譯:輕鬆打破試算表中的語言隔閡!
運用 AI 驅動的工具強化您的 Excel 能力。立即下載體驗前所未有的高效!

依指定資料量產生隨機群組

若需將資料分配至固定人數的隨機群組(例如每組 4 人),可善用 Excel 的 ROUNDUP 與 RANK 函數組合,快速達成理想分組效果。此方法特別適用於課堂作業分配、團隊編組平衡,或任何需要統一群組規模的情境。

執行此方法的步驟如下:

1. 首先,在資料旁新增一個輔助欄(例如 E 欄),並在儲存格 E2 中輸入:

=RAND()

向下拖曳此公式,填滿清單中所有需要的儲存格。RAND 函數將為每筆項目指派一個隨機數值。

2. 在下一欄(例如 F2)中輸入下列公式:

=ROUNDUP(RANK(E2,$E$2:$E$13)/4,0)

說明如下:

  • E2:E13:請調整此範圍以符合您的資料。範圍必須涵蓋所有包含 =RAND() 函數的列。
  • 4:每個群組的人數。若需調整群組規模,請修改此數字。

 

向下拖曳填滿控點,將公式套用至所有列。您的資料現已分組,每組約含 4 筆項目。
使用公式在指定資料大小中產生隨機群組的螢幕截圖

補充指引:

  • 若項目總數無法被群組大小整除,最後一個群組的項目數可能會較少。
  • 在完成隨機分配後,使用選擇性貼上 > 數值鎖定群組,避免重新計算時發生變動。
  • 重新整理 RAND() 函數會再次隨機分配群組——若需調整初始分配,此功能格外實用。

限制:此方法無法直接指定分組名稱(僅產生群組編號),且在處理大型資料集時,公式可能會拖慢重新計算速度。


透過 VBA 自動執行隨機群組分配(高級選項)

對於有進階需求的使用者(例如確保每位成員僅隸屬一個群組、精確平衡各群組人數,或根據特定條件重新分配),VBA 能提供更高的彈性。此方法特別適用於大型名單,或需要重複執行分配作業的情境。開始前務必先儲存檔案,因為 VBA 程式碼通常會直接修改您的資料。

1. 按一下開發人員工具 > Visual Basic 以開啟 VBA 編輯器,再按一下插入 > 模組,並將下列程式碼複製貼上至新模組中:

Sub AssignRandomGroups()
    Dim GroupCount As Integer
    Dim GroupSize As Integer
    Dim rng As Range, cell As Range
    Dim i As Long, j As Long, idx As Long
    Dim arr() As Variant, groupArr() As Variant, grpNum As Integer
    Dim ws As Worksheet
    Dim totalRows As Integer, remaining As Integer
    
    On Error Resume Next
    Set ws = Application.ActiveSheet
    Set rng = Application.InputBox("Select the range of data to group", "KutoolsforExcel", Type:=8)
    
    GroupCount = Application.InputBox("Enter the number of groups:", "KutoolsforExcel", 3, Type:=1)
    
    If rng Is Nothing Or GroupCount <= 0 Then Exit Sub
    
    arr = rng.Value
    totalRows = UBound(arr, 1)
    GroupSize = Int(totalRows / GroupCount)
    remaining = totalRows - GroupSize * GroupCount
    
    ReDim groupArr(1 To totalRows)
    Dim used() As Boolean
    ReDim used(1 To totalRows)
    
    Randomize
    
    For i = 1 To totalRows
        Do
            idx = Int(Rnd() * totalRows) + 1
        Loop While used(idx)
        
        used(idx) = True
        groupArr(i) = idx
    Next i
    
    For i = 1 To totalRows
        grpNum = Int((i - 1) / GroupSize) + 1
        If grpNum > GroupCount Then grpNum = GroupCount
        rng.Cells(groupArr(i), 1).Offset(0, 1).Value = "Group " & grpNum
    Next i
    
    MsgBox "Groups assigned randomly and as evenly as possible.", vbInformation
End Sub

2. 接著,按一下執行按鈕按鈕以執行程式碼。系統將提示您選取資料範圍(例如包含姓名或 ID 的欄位),並輸入欲產生的群組數量。VBA 會為每筆資料列分配一個群組,並將群組編號填入右側相鄰欄位。

  • 防止重複分配:每位成員僅會被分配至一個群組。
  • 平衡群組:盡可能均勻分配。若資料無法完全平均分割,最後一個(或數個)群組的成員數可能會多一或少一。
  • 自訂設定:您可以調整 VBA 程式碼,變更輸出文字、起始欄位,或加入額外的分配規則。

注意事項:VBA 將直接修改您的工作表資料——執行前務必先備份!若出現錯誤(例如選取的欄數超出預期),請再次確認選取範圍與群組數量是否輸入正確。

疑難排解:若未顯示「開發人員」索引標籤,請依序前往檔案 > 選項 > 自訂功能區 > 開發人員將其啟用。若發生錯誤,請確認巨集設定已開啟(檔案 > 選項 > 信任中心)。

使用情境優勢:VBA 非常適合需要嚴格控制、處理大型資料集,或自動化重複性任務的進階使用者;然而,對於快速完成基礎任務來說,由於必須啟用巨集並撰寫或修改程式碼,反而不夠理想。


下載範例檔案

按一下下載範例檔案


其他熱門文章


最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 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 中啟用分頁式編輯與閱讀功能,以及 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 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用