這裡介紹如何從 Excel 的名單表格中,隨機抽出一筆或多筆樣本,產生中獎名單、抽樣調查名冊等。

假設我們的 Excel 表格中有一些名單資料,類似像這樣:

名單資料

而在現在我們想要從中以隨機亂數的方式,取出一筆或是多筆的樣本資料,作為中獎名單,或是抽樣調查名冊等,以下是操作方法教學。

隨機取出一筆資料

如果我們只需要從名單中取出單一筆資料,可以使用以下這個 INDEXRANDBETWEENROWS 三個函數的組合:

=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))

隨機取出多筆資料

參考資料:wikiHowExceljetAblebits.com