這裡介紹如何從 Excel 的名單表格中,隨機抽出一筆或多筆樣本,產生中獎名單、抽樣調查名冊等。
假設我們的 Excel 表格中有一些名單資料,類似像這樣:
而在現在我們想要從中以隨機亂數的方式,取出一筆或是多筆的樣本資料,作為中獎名單,或是抽樣調查名冊等,以下是操作方法教學。
隨機取出一筆資料
如果我們只需要從名單中取出單一筆資料,可以使用以下這個 INDEX
、RANDBETWEEN
與 ROWS
三個函數的組合:
=INDEX(名單範圍,RANDBETWEEN(1,ROWS(名單範圍)))
這個公式是先以 ROWS
函數取得名單的數量,接著靠著 RANDBETWEEN
函數產生一個介於 1
到名單數量之間的隨機整數,最後依照這個隨機的整數作為索引值,以 INDEX
函數取出對應位置的資料。
這個公式適用於直式的表格,只要把名單範圍套進去即可:
=INDEX(B2:B11,RANDBETWEEN(1,ROWS(B2:B11)))
在公式撰寫好了之後,會自動抽出一筆中獎人資料,如果想要讓 Excel 重新產生隨機的中獎人,可以按下 F9
鍵,讓 Excel 重新計算表格中的公式。
隨機取出多筆資料
若要從名單中取出多筆資料,如果使用上面介紹的單筆抽樣的公式直接複製的話,也是可以產生隨機的名單,但是這樣做的話,會容易抽出重複的名單。
若想產生取後不放回的名單(也就是不重複的名單),可以使用亂數的資料配合 RANK
函數來達到,以下是操作步驟。
Step 1
首先在名單資料旁新增一個亂數欄位,並以 RAND 函數產生亂數的資料:
=RAND()
Step 2
接著使用以下這個公式,抽出中獎人名單:
=INDEX(名單範圍,RANK(亂數值,亂數範圍))
這個公式會使用 RANK
函數從亂數資料中,產生隨機的整數,而由於每次指定的亂數值都是不同的,所以產生的隨機索引值也就不會重複,最後將索引值交給 INDEX
函數抽出不重複的名單。
由於我們要將這個公式套用至多個儲存格中,所以名單範圍
以及亂數範圍
必須以絕對位置來表示,就像這樣:
=INDEX($B$2:$B$16,RANK(C2,$C$2:$C$16))
參考資料:wikiHow、Exceljet、Ablebits.com