在 Excel 製作抽出多人的抽獎工具,需先利用陣列公式產生不重複的隨機亂數作為輔助欄,接著再使用 INDEX 與 IF 公式,即可根據設定的人數自動抽出不重複的得獎名單。
雖然網路上已經有很多現成的抽獎工具了,不過阿湯還是以這個為範例來教大家怎麼自己動手做。畢竟「隨機抽出」這件事也不見得只用在抽獎上,你也可以應用在像是從班上 50 個人中隨機抽出幾名值日生等情境。一般網路上常見的 Excel 教學,大多是教怎麼隨機抽出「一人」,這還蠻容易的;但如果要隨機抽出「多人」,就不那麼簡單了。我也是搞了蠻久,雖然大概知道原理,但在嘗試期間一直遇到怪問題。總之,阿湯先整理出一個簡易版的作法,大家一起來試試看吧!
Excel 教學:如何製作隨機抽出多人的抽獎工具?
要製作能抽出多人的抽獎工具,核心概念是先產生不重複的亂數,再根據需求數量把名單抓出來。阿湯本來是想要用一行公式就直接解決所有問題,但不知道為什麼在 C2 儲存格設定陣列時一直出問題,最後為了穩定性,才又多拆了一行輔助欄位出來,變成下面要教大家的範例作法。首先,我們需要先建立好抽獎名單與輔助欄位的版面:
第一步:建立輔助欄位並產生不重複的隨機亂數
要抽出多名得獎者,我們需要先在旁邊建立一個輔助欄位,用來產生不重複的亂數。請點擊 C2 儲存格,並輸入以下公式:
=IF(ROW()-1<=B2,SORTBY(SEQUENCE(COUNTA(A:A),1,1,1), RANDARRAY(COUNTA(A:A),1)),"")
特別注意:請在輸入完公式後,不要直接按 Enter!因為這是一個陣列公式,你必須按下 Ctrl + Shift + Enter,公式的前後就會自動出現大括號 {},這樣陣列才會生效。
設定好之後,就會在 C 欄產生輔助用的亂數了。這個公式的原理,主要是靠後面那段公式來執行:
SORTBY(SEQUENCE(COUNTA(A:A),1,1,1), RANDARRAY(COUNTA(A:A),1))
這段公式的作用,就是用來產生指定範圍內「不重複」的隨機整數,確保我們抽出來的名單不會有重複的人選。完成後的畫面會如下圖所示:
第二步:利用 INDEX 與 IF 公式抽出指定數量的名單
再來就要正式抽出名單了!因為我們已經在 C 欄產生好不重複的隨機數字,接下來只要利用 INDEX 函數,將 C 欄對應的內容顯示出來就可以了。而在公式前方加上 IF 的用意,是用來判斷我們需要顯示(抽出)的數量有多少,搭配 ROW 這個函數公式即可完成限制。請在準備顯示得獎者的儲存格中輸入以下公式:
=IF(ROW()-1<=B$2,INDEX(A:A,C2),"")
輸入完成後向下拖曳套用,這樣多人的抽獎名單就搞定了!當然,Excel 隨機抽獎還有其它做法,比如你可以用 RAND 函數產生亂數搭配隨機排列,只要一直取 RANK 排名後的前幾名也是可以的。方法有很多,阿湯這邊就是提供其中一種方式給大家參考。
如果你不想自己從頭拉公式,下方也提供範例檔給大家直接下載使用:
影片範例檔下載教學:https://steachs.com/officekn/howto.html
下載或設定完成後,只要在欄位中輸入想要抽出的人數,名單就會自動隨機產生對應數量的結果了:
常見問題
為什麼輸入公式後沒有正常執行,反而出現錯誤?
在輸入產生不重複亂數的公式時,因為它是陣列公式,輸入完成後不能直接按 Enter。請務必按下 Ctrl + Shift + Enter,讓公式前後出現大括號 {} 才能正常執行。
這個抽獎工具可以確保抽出來的名單不重複嗎?
可以的。我們在輔助欄位使用的陣列公式,就是專門用來產生指定範圍內「不重複」的隨機整數,因此最終抽出的名單不會出現重複的人選。
有沒有其他方法可以在 Excel 抽出多人名單?
除了本篇使用的 INDEX 與 IF 陣列公式外,也可以利用 RAND 函數產生亂數並隨機排列,接著用 RANK 函數取排名的前幾名,同樣能達到抽出多人的效果。
(本文於 2026 年 10 月更新:補充步驟說明與常見問題)




