點擊藍字關注【秋葉AIExcel】
發送【7】
免費領 1000+篇 Excel 精選教程!
![]()
本文作者:小花
本文編輯:竺蘭
文末獲取配套練習文件。
大家好,這里是秋葉編輯部~
在各種活動中,比如每年的公司年會,抽獎環節總是備受期待,能為活動增添不少歡樂氛圍。
而在 Excel 中,我們可以借助強大的函數功能實現多種抽獎需求。
今天,咱們就結合實戰案例,來詳細講講 5 種常見的抽獎模式及其公式,讓你輕松掌握抽獎的奧秘!
![]()
隨機抽取一人
這是最簡單的隨機抽獎模式,僅返回單一值。
它只需使用Index+Randbetween函數組合就可以輕松搞定。
公式一:單值抽取
=INDEX(A2:A16,RANDBETWEEN(1,COUNTA(A2:A16)))![]()
公式說明:
Counta 統計參與抽獎的總人數 n,Randbetween 生成 1 到 n 之間的一個隨機整數,Index 根據隨機整數從人員名單區域 A2:A16 中提取對應的人員姓名,這樣就得到了隨機抽取的幸運兒啦。
對了,如果你想由淺入深、系統學習 Excel 干貨知識,提高效率、減輕工作負擔,
那我強烈推薦你報名《秋葉 Excel 高手速成實戰課》!
名師授課+系統教學+配套練習+社群答疑
長期有效,可反復回看
掃碼查看課程詳情
![]()
隨機抽取不重復多人
隨機抽取不重復多人曾是 Excel 函數公式的一座高山,直到Excel 2021 版及 365 版引入了動態數組功能并新增了一些高能函數后,解決這一問題就變得輕而易舉了。
公式二:抽取不重復多值
=TAKE(SORTBY(A2:A16,RANDARRAY(15)),3)![]()
公式說明:
① RANDARRAY(15)
返回一組 15 行的隨機數,其中的 Randarray 是專門的隨機數組函數,其用法如下:
![]()
② SORTBY(A2:A16,RANDARRAY(①))
根據①中隨機數的大小,對 A2:A16 進行排序,從而實現對抽獎名單的隨機打亂排序。其中的 Sortby 函數是專門的條件排序函數,其用法如下:
![]()
③ TAKE(②,3)
從②中已亂序排列的獲獎名單中取前 3 行數據為最終獲獎清單,這里用到了專門用于截取數據區域的 Take 函數,其用法如下:
![]()
各位小伙伴務要理解和掌握Take+Sortby+Randarray函數的這套組合拳,后面三種抽獎模式都將建立在這個組合公式的基礎之上,或稍加變形,或部分運用。
![]()
均等分組抽獎
假設獎項分為 3 個等級,每個等級 4 人,需要在 15 人的大名單中一次性抽取出所有獲獎人員,這就是分組抽獎模式。
它實際上是隨機抽取多值和分組排列兩個運算的組合,前者依舊使用 Take+Sortby 和 Randarray 的組合公式,后者則需要引入另一個新函數 Wrapcols 來實現。
公式三:均等分組抽獎公式
=WRAPCOLS(TAKE(SORTBY(A2:A16,RANDARRAY(15)),12),3)![]()
公式說明:
① TAKE(SORTBY(A2:A16,RANDARRAY(15)),12)
抽取不重復多值公式,原理詳見上一公式,不再贅述。
② =WRAPCOLS(①,3)
將①中已隨機抽取的獲獎名單分成 3 行排列,這是 Wrapcols 函數的基本功能,其用法如下:
![]()
如果每個獎項的人數不同,又該如何設置公式?
很簡單,只需將不顯示人員姓名的單元格數字格式設置為三個分號【;;;】,即可實現隱藏。
![]()
![]()
二次抽獎
如果我們需要分次抽獎,且已中獎人員不再參與抽獎,該怎么設置公式呢?
核心要點是去除已中獎的重復人員名單,這正好是 Unique 函數的拿手好戲。
公式四:二次抽獎公式
=TAKE(UNIQUE(VSTACK(E2:E5,SORTBY(A2:A16,RANDARRAY(15)))),-3)![]()
公式說明:
① SORTBY(A2:A16,RANDARRAY(15))
隨機亂序排列。
② VSTACK(E2:E5,①)
將亂序排列的大名單追加到已獲獎名單之后,形成部分值重復的新數組。其中, Vstack 函數專門用于將不同數組進行組合,其用法如下:
![]()
③ UNIQUE(②)
將②返回的部分值重復數組去重,由于已中獎名單 E2:E5 在前,A2:A16 在后,根據 Unique 去重保留第一個不重復值的原理,A2:A16 中的已中獎人員被去除,新數組末尾為未中獎名單。
其中, Unique 函數用法如下:
![]()
④ TAKE(③,-3)
從③返回的不重復數組末尾提取 3 個數值,即為最終獲獎名單。
![]()
加權抽獎
如果每個人中獎的概率不同,該怎么設置公式才能根據獲獎概率公平抽獎呢?我們用標準概率的倍數來表示不同的中獎概率。
如下圖,胡勇軍的概率因子為 5,陳靜文的概率因子為 1,則表示胡勇軍的中獎概率是陳靜文的 5 倍。
公式五:加權抽獎公式
=TAKE(UNIQUE(SORTBY(TOCOL(IF(B2:B16>=COLUMN(A:E),A2:A16,0/0),2),RANDARRAY(SUM(B2:B16)))),3)![]()
公式說明:
① IF(B2:B16>=COLUMN(A:E),A2:A16,0/0)
這是一個數組運算。由于概率因子最大為 5,所以僅返回 Column(A:E)5 個列序值。
將概率因子 B2:B16 和列序 1-5 分別比對,概率因子大于或等于列序則返回對應人名,不大于則返回錯誤值/0!,于是乎,片段①返回一個 15 行×5 列的數據區域,使每個人名都按照其概率因子的大小被重復列示對應次數。
我們單獨計算這一片段就可以理解其計算過程。
![]()
② TOCOL(①,2)
將①返回的二維數據表合并為一列,第二個參數 2 表示忽略錯誤,這樣二維表中的/0!就被忽略掉了,僅保留按概率因子指定次數重復的人員名單,重復次數越高,獲獎概率越大。
該公式運用 Tocol 函數,其用法如下:
![]()
③ TAKE(UNIQUE(SORTBY(②,RANDARRAY(SUM(B2:B16)))),3)
Sum(B2:B16)將所有概率因子相加,Randarray 返回對應數量的隨機數組,從而確保②中的重復人員名單能夠被 Sortby 函數完整打亂次序排列,再搭配 Unique 去重和 TAKE 截取,就實現了按概率因子加權抽獎。
以上,就是小花分享的5 種抽獎模式公式,包括:
? Index+Randbetween 的單值抽獎公式;
? Take+ Sortby + Randarray 的多值抽獎核心套路;
? 引入Wrapcols 實現分組抽獎功能;
? UNIQUE+VSTACK 構建的去重二次抽獎模式;
? TOCOL+IF 區域計算從而做到加權下的隨機抽獎。
這 5 個公式循序漸進地引入了不同的新函數,這不僅有助于我們逐步理解復雜的抽獎公式,還能從中學習不同新函數的用法,一舉兩得。
Excel 里實用的函數有很多很多,學會了,就可能將你的效率提高 10 倍都不止!
去哪學?
推薦《秋葉 Excel 高手速成實戰課》,這門課專為職場人準備,包含 231節實戰教程,全部基于職場真實表格案例設計。
系統全面帶你掌握Excel 系統操作、商務圖表、函數公式、數據透視表、高效技巧,一站式學透 Excel 表格!
《秋葉 Excel 高手速成實戰課》
課程原價 999 元
限時優惠價,僅需 99 元
名師授課+系統教學+配套練習+社群答疑
長期有效,可反復回看
別猶豫了!趕緊掃碼搶課
現在報名,隨課贈送豐厚資料:
900+ 套精選 Excel 模板
307 個函數清單
100 例圖表實戰案例
70 個實用圖表模板
關注后發送【999】
即可獲取練習文件!

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.