Skip to main content

在 Excel 中隨機化列表(簡單的逐步教程)

Author: Amanda Li Last Modified: 2025-05-12

執行隨機排序是一種快速且簡單的方法,可以確保所有情況出現的概率相等。在本教程中,我們將介紹如何輕鬆地在 Excel 中隨機化或打亂列表,只需幾個步驟即可完成。

A screenshot illustrating the randomization result in Excel

視頻:在 Excel 中隨機化列表


使用函數隨機化列表

在本節中,我將教您如何使用內置的 Excel 函數來打亂列表。

使用 RAND 函數隨機化列表

任何版本的 Excel 使用者都可以通過結合 RAND 函數和排序功能來隨機排序他們的原始數據集,請按照以下步驟操作。

步驟 1:輸入 RAND 公式

選擇要隨機化的列表頂部單元格旁邊的單元格,輸入以下 RAND 公式,然後按「Enter」。

=RAND()

RAND formula in a cell

步驟 2:將 RAND 公式填充到其他單元格

雙擊公式單元格的填充柄(右下角的小綠色方塊),將公式應用於下方的單元格。

RAND formula applied to other cells

步驟 3:對 RAND 結果進行排序以打亂列表

1. 選擇包含 RAND 公式的列表「B2:B8」。

2. 點擊「編輯」群組中的「排序與篩選」>「從小到大排序」,位於「開始」標籤中。

Sort Smallest to Largest option on the ribbon

3. 在彈出的對話框中,選擇「展開窗格」,然後點擊「排序」。

Selecting the 'Expand the selection' option

結果

現在,一切就緒!列表已隨機化,如下所示。

The list is randomized

注意:Excel 的 RAND 函數是易變的:每次工作表更改時都會重新計算其結果。因此,在排序後,B 列中的數字會立即改變。如果想再次打亂列表,請重複上述 3 步。否則,您可以直接刪除包含 RAND 函數的列。
使用 RANDARRAY、SORTBY 和 ROWS 函數隨機化列表(Excel 365/2021)

如果您使用的是較新版本的 Excel,例如 Microsoft 365 的 Excel 或 Excel 2021 或 Excel for the Web,RANDARRAYSORTBYROWS 公式將幫助您快速在指定位置打亂列表。

步驟 1:輸入 RANDARRAY、SORTBY 和 ROWS 公式

選擇一個空白單元格,您希望在此處獲取隨機化結果,輸入以下公式(請注意,您應該將下面公式中的「A2:A8」更改為您要隨機化的原始列表),然後按「Enter」。

=SORTBY(A2:A8,RANDARRAY(ROWS(A2:A8)))

注意:
  • 當溢出範圍(在這種情況下為 B2:B8)不為空時,Excel 會返回「#SPILL!」錯誤。
  • 該公式是易變的:每次工作表更改時都會重新計算其結果。如果想再次打亂列表,請按「F9」。
  • 公式結果(隨機化列表)不可編輯。如果需要編輯隨機化列表,請遵循下一步。

(可選)步驟 2:複製並粘貼公式結果使其可編輯

如果您只想看到隨機結果,可以跳過此步驟。如果您想編輯隨機打亂的列表,則應複製公式結果並僅粘貼值:

1. 選擇公式結果並按「Ctrl」+「C」進行複製。

2. 右鍵單擊您將粘貼複製結果的單元格。(您也可以將值粘貼回其原始位置。)

3. 從右鍵菜單中選擇「粘貼值」選項。

結果

現在,您將獲得一個打亂且可編輯的列表,如下所示。


使用 Kutools 在 2 次點擊內隨機化 Excel 中的列表

如果您厭倦了使用公式並打算借助外掛程序,Kutools for Excel「隨機排序或選擇」 功能可以幫助您更輕鬆地執行隨機排序,並且提供更多選項。請按照以下步驟操作:

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

首先,選擇要打亂的列表。然後選擇「Kutools」 > 「區域」 > 「隨機排序或選擇」。在彈出的「隨機排序或選擇」對話框中,選擇「整行」,然後點擊「確定」。

Select the Entire rows option in the dialog to shuffle the list

注意:

使用 VBA 隨機化列表

如果您更喜歡使用 VBA 方法來隨機化列表,請按照以下步驟操作。

注意:運行 VBA 宏後無法撤銷。因此,請在其他地方備份列表,以防未來需要原始數據。

步驟 1:選擇要打亂的列表

The list to be shuffled is selected

步驟 2:將 VBA 代碼複製到模塊窗口

1. 按「Ctrl」+「F11」打開 VBA 編輯器,然後點擊「插入」>「模塊」以打開模塊代碼窗口。

Click Insert > Module in the VBA editor

2. 將以下 VBA 代碼複製並粘貼到打開的模塊窗口中。

Sub RandomSort()
'Update by ExtendOffice
Dim xRg As Range
Dim xNum, xF, xI As Integer
Dim xWSh, xAWSh As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xAWSh = Application.ActiveSheet
Set xRg = ActiveWindow.RangeSelection
Set xWSh = Worksheets.Add
xNum = xRg.Count
For xF = xNum To 1 Step -1
    xI = WorksheetFunction.RandBetween(1, xF)
    xWSh.Range("A1").Value = xRg.Item(xI)
    xRg.Item(xI) = xRg.Item(xF)
    xRg.Item(xF) = xWSh.Range("A1")
Next
xWSh.Delete
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

步驟 3:運行 VBA 代碼

在代碼窗口中,按「F5」或點擊 Run button 按鈕來運行此代碼。

The run button in the code window

結果

The list is shuffled

注意:如果想再次隨機化列表,請重複上述 3 步