2012年8月28日

Excel 隨機亂數抽獎抽籤程式教學說明與下載


 
抽獎大家愛,抽中了大獎爽歪歪!
就算只抽中了小獎還是會帶來 lucky 的喜悅感~
就一般機率來說,通常我們參與抽獎活動的角色都是扮演被抽的人,
就算自己有機會舉辦抽獎規模也不太大,大概就是同學或社團間。
在這種小規模的情況下,採用以往做紙籤等方式來抽。

然而現今是個網路化的時代,抽籤舉辦的規模也越來越大,
若是有個活動有幾千人參加,加上名單都是電子化的,
還要一一做紙籤再抽不就太麻煩了嗎?
今天就要來教大家怎麼利用 Excel 的隨機亂數來抽獎喔!
(這邊也有提供抽獎 EXCEL 直接下載喔!請至最下方下載~~)

圖片來源:http://blog.insureme.com.tw/2012/01/2011.html

現在假設我們要舉辦一個抽獎活動,
目前抽獎名單內共有10筆資料(這是為了簡單說明,也可擴增到數萬筆),
而我們要從抽獎名單中抽出三名得獎者,接下來該怎麼做呢?

※ A欄姓名:直接複製抽獎名單即可

※ B欄產生亂數:
1. 在 B2 輸入公式 =RAND()
2. 以下拉方式將公式複製 B欄中其他儲存格

※ C欄中獎名單:
1. 在 C2 輸入公式 =INDEX(A:A,MATCH(LARGE(B:B,ROW(A1)),B:B,0))
2. 以下拉方式將公式複製到 C欄其他儲存格 (只要得獎者的數量即可)
3. 接下來只要每次更動 Excel 就會隨機產生得獎名單囉!

說明:
大家看完以上的步驟,可以很明顯發現 B欄只是提供亂數,
而最重要的關鍵在於 C2的公式,
這邊特別為大家標上顏色,分段拿出來解說一下:
=INDEX(A:A,MATCH(LARGE(B:B,ROW(A1)),B:B,0))
  1. ROW(A1) -> ROW() 這個函數就是要取得指定欄位的 ROW 位置,
    這邊我們用 ROW(A1) 取得回傳值 1,而下拉複製時 A1 會變為 A2, A3…,
    使用 ROW() 回傳 2, 3…,這在下面會有神奇的效用喔!
  2. LARGE(B:B,ROW(A1))
    -> LARGE() 是在指定範圍內取得第 X 大的值,
    像現在解說的這一行 LARGE(B:B,ROW(A1)) 就是取得 B欄中第一大的值,
    配合剛剛所說公式下拉時 A1 會變成 A2, A3,
    所以 ROW() 就會回傳 2, 3,整個下拉複製的範圍就讓我們取得前 X大的值!
  3. MATCH(LARGE(B:B,ROW(A1)),B:B,0)
    -> MATCH() 是在指定範圍內取得符合相同值的 ROW值並回傳,
    若 LARGE(B:B,ROW(A1)) 等於 0.99,而 B3 的值也等於 0.99,
    那麼這個公式就會回傳 3,這也代表了 B3 的亂數值是第 1大的。 
  4. INDEX(A:A,MATCH(LARGE(B:B,ROW(A1)),B:B,0))
    -> INDEX() 是在指定範圍內特定欄位內的值並回傳,
    剛剛說到 
    MATCH(LARGE(B:B,ROW(A1))  已回傳 3,
    代表找到 B3 為第1大的機率值,接下來我們就要找在 A3對應的名字,
    利用 INDEX 在 A欄中找 3這個欄位的值,最後就成功顯示機率第一高的名字,
    也就是中最大獎的人囉!
    其他 INDEX(A:A,MATCH(LARGE(B:B,ROW(A2)),B:B,0))  代表 2獎,
    INDEX(A:A,MATCH(LARGE(B:B,ROW(A3)),B:B,0))  代表 3獎…
經過了以上的說明,大家是不是已經了解這個隨機亂數抽獎抽籤程式的奧妙了呢?
以下有個簡單的範例 demo,大家也可以自行下載回去,依自己的狀況修改使用喔!
Excel隨機亂數抽獎抽籤程式

關鍵字:Excel, 抽獎, 程式, 抽獎器, 抽獎公式, 亂數, 隨機, 2003, 2007, 2010, 如何用excel抽獎, 抽籤程式, vba, 教學, 範例, 說明, 下載
參考資料:


更多精選推薦文章