大家好!今天和大家分享,Excel中可以生成随機數的兩個函數:RAND函數、randbetween函數。
本文主要包括兩部分:
1、介紹rand、randbetween函數的基本用法;
2、介紹rand函數和rank函數組合使用,用于解決生成非重複随機數、非重複抽獎、随機分組等問題。
1
函數介紹
1、rand函數
rand函數用于随機生成0~1之間的小數,其語法為RAND(),該函數沒有參數。
如下圖所示,在C2:C6單元格輸入公式:=RAND()
雖然C2:C6單元格的公式相同,但生成的随機數并不相同。
2、randbetween函數
randbetween函數用于返回指定數字之間的随機整數,其語法為randbetween(bottom,top)。
如下圖所示,在C2:C6單元格輸入公式:=RANDBETWEEN(10,20)
該公式返回10~20之間的随機數。
randbetween函數可能會生成重複的随機數。比如本例中,C2、C6單元格生成的随機數均為“14”。
3、rand、randbetween函數比較
rand、randbetween函數主要有以下相同點和不同點:
不同點:
(1)rand函數生成的随機數是小數,randbetween函數生成随機整數;
(2)rand函數沒有參數,randbetween函數需要指定生成随機數的最小值和最大值;
(3)rand函數生成相同随機數的可能性非常小,randbetween函數有可能生成相同的随機數。
相同點:
rand和randbetween均為易失性函數。當重新打開工作簿、修改工作簿中的數據,或者按F9鍵,函數會産生新的随機數。如果不希望生成的随機數變化,可以将其選擇性粘貼為“數值”。
2
函數應用
1、産生不重複随機數
如下圖所示,要求在A2:A10單元格生成1~9之間的9個不重複随機整數。
如果我們使用randbetween函數,可能生成重複的随機數。如下圖所示:
可以使用rand rank函數組合使用生成不重複的随機數。
首先在B2:B10區域輸入公式:=RAND()
然後在A2:A10單元格輸入公式:=RANK($B2,$B$2:$B$10)
RANK函數是用于計算排名的函數,即B2單元格的數值在B2:B10中,按從大到小排序,排在第幾位。
另外可以注意到,兩張圖片中B2:B10中rand函數返回的數值不相同。這是因為rand函數是易失性函數,當編輯工作表時,會生成新的随機數。
2、不重複抽獎
如下圖所示,要求從A列的名單中随機抽取三位獲獎者。
如果直接在D2:D4單元格輸入公式:
=INDEX($A$2:$A$10,RANDBETWEEN(1,9))
中獎人名字可能會重複。如下圖所示,D2:D4中,“藍精靈”的名字出現兩次。
如果希望中獎人名字不重複,可以先在B2:B10區域使用rand函數生成随機數,然後在C2:C10區域使用rank函數生成排名的序号。
最後在D2:D4單元格輸入公式:=INDEX($A$2:$A$10,C2)
3、随機分組
如下圖所示,将A2:A10區域的9個人随機分為三組。
首先在B2:B10區域使用rand函數生成随機數,然後在C2:C10區域使用rank函數生成B2:B10中的數值的排名。
最後在E2:G3單元格輸入公式:
=INDEX($A$2:$A$10,INDIRECT("C"&(ROW() 1 (COLUMN()-5)*3)))
公式解析:
(1)如果在E1:G3單元格輸入公式:
=INDEX($A$2:$A$10,ROW() (COLUMN()-5)*3)
可以将A2:A10中的名單按順序分為三個組。
關于該公式的具體解析,閱讀文章:
使用公式将1列數據拆分為多行多列
(2)如果希望将A2:A10中的名單随機分組,那麼index函數的第二個參數就需要為随機數。在本例中,先使用rand rank函數在C2:C10生成随機的排名。然後使用indirect函數引用C2:C10中的随機數,這樣就可以實現随機分組。
關于indirect函數的使用方法,閱讀文章:
indirect函數用法介紹—三個示例幫助你理解indirect函數
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!