在 Excel 裡可以使用 RAND 函數來產生 0~1(不含) 之間的隨機亂數,如果想要用來產生亂數,但是又想要控制亂數產生的機率,該如何處理?

本例要使用 RAND 函數結合 MATCH 函數來解決這個問題,試試以下的實驗做法,例如:

將儲存格A1:T50,共1000個儲存格,設定公式:=MATCH(RAND(),$W$3:$W$9,1)

在儲存格W3:W9中已設定了控制機率的數字,可以在出現率欄位中換算得到其出現的比率。

依產生狀態計算 1~6 產生的數量和比率,從結果看來似乎大致符合想要的機率分佈。

你可以不斷的按 F9 鍵,即可重新產生一組結果。

Excel-依設定的出現率控制隨機出現的結果(RAND,MATCH)

其中利用了 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),"甲","乙","丙","丁","戊","己","庚","辛")

Excel-依設定的出現率控制隨機出現的結果(RAND,MATCH)

【參考資料】

 RAND 函數參考微軟提供的說明:RAND 函數

 MATCH 函數參考微軟提供的說明:MATCH 函數

 

學不完.教不停.用不盡文章列表

arrow
arrow
    文章標籤
    Excel RAND MATCH
    全站熱搜
    創作者介紹
    創作者 vincent 的頭像
    vincent

    學不完.教不停.用不盡

    vincent 發表在 痞客邦 留言(0) 人氣()