在 Excel 裡可以使用 RAND 函數來產生 0~1(不含) 之間的隨機亂數,如果想要用來產生亂數,但是又想要控制亂數產生的機率,該如何處理?
本例要使用 RAND 函數結合 MATCH 函數來解決這個問題,試試以下的實驗做法,例如:
將儲存格A1:T50,共1000個儲存格,設定公式:=MATCH(RAND(),$W$3:$W$9,1)
在儲存格W3:W9中已設定了控制機率的數字,可以在出現率欄位中換算得到其出現的比率。
依產生狀態計算 1~6 產生的數量和比率,從結果看來似乎大致符合想要的機率分佈。
你可以不斷的按 F9 鍵,即可重新產生一組結果。
其中利用了 MATCH 函數來控制出現的數量:
MATCH 語法:MATCH(lookup_value, lookup_array, [match_type])
lookup_value:在 lookup_array 中比對的值。
lookup_array:要搜尋的儲存格範圍。match_type: 數字 -1、0 或 1。
- 1 或省略:MATCH 會尋找小於或等於 lookup_value 的最大值。 lookup_array 引數內的值必須以遞增次序排列,例如:...-2,-1,0,1,2, ...,A-Z,FALSE,TRUE。
- 0:MATCH 會尋找完全等於 lookup_value 的第一個值。 lookup_array 引數內的值可以依任意次序排列。
- -1:MATCH會找出大於或等於 lookup_value。 此引數中的 lookup_array 必須以遞減順序放置,例如:TRUE、FALSE、Z-A、...2、1、0、-1、-2、...等。
依照這個做法,試著產生「甲,乙,丙,丁,戊,己,庚,辛」,並依設定的出現機率隨機出現。
公式:=CHOOSE(MATCH(RAND(),$W$3:$W$11,1),"甲","乙","丙","丁","戊","己","庚","辛")
【參考資料】
RAND 函數參考微軟提供的說明:RAND 函數
MATCH 函數參考微軟提供的說明:MATCH 函數
文章標籤
全站熱搜
留言列表