問題的來龍去脈

公司舉辦抽獎活動,準備了25個獎項,想要在200個員工中依員工編號抽出中獎者。如何能透過函數隨機列出25個不重複的中獎者之員工編號?

問題的解決方法

要解決上述問題,我們可以使用Randbetween及 Countif兩個函數來完成這項工作。

我們假設員工編號是從1~200,處理的步驟如下:

1. 在C1和E2儲存格中,分別輸入最小及最大的員工編號(例如「1」和「200」)。

2. 在儲存格B4~E8中設定儲存格色彩,讓畫面好看些。

3. 在儲存格B4中輸入公式:=IF(COUNTIF($B$4:$E$8,B4)>1,RANDBETWEEN($C$2,$E$2),B4)  
按下Enter之後,可以看到如下圖的結果。

clip_image002

4. 將儲存格B4中的公式,向下複製再向右複製,得到類似下圖的結果:clip_image004

5. 將儲存格B4中的公式,再向下及向右複製一次,即可去除E8儲存格中的0值,得到如下圖的類似結果:

clip_image006

³ 每一個人產生的亂數編號都不相同。

³ 爾後員工編號有增減時,只要更改E2中的200即可。

³ 由於受到公式的限制,無法按下F9之類的重算按鍵來達到重新計算的目的;但是只要再將B4中的公式向下及向右複製,即可完成重算的工作。

³ 如果想要了解Randbetween及 Countif兩個函數的用法,請參考Excel的求助說明。

³ 公式「=IF(COUNTIF($B$4:$E$8,B4)>1,RANDBETWEEN($C$2,$E$2),B4)」的說明如下:

如果B4的值在B4:E8的範圍中出現超過一次,就使用RANDBETWEEN函數再產生一個新的數值,否則就使用B4中原來的值

這篇文章中的資訊適用於

Excel 2010

Excel 2007

Excel 2003

關於作者:

本文由微軟最有價值專家MVP王作桓 提供。微軟十分感謝MVP主動地將他們的經驗與上百萬名其他技術使用者交流。MVP 王作桓 同時也將此篇文章放在他的部落格內,歡迎您按 此處 瀏覽MVP王作桓 更多的技術文章、經驗分享與觀點。