在Excel的好幾百個函數(shù)中,有一些比較奇怪的函數(shù)。其中,隨機數(shù)函數(shù)可以稱為最奇怪的函數(shù)了。它奇怪之處在于看上去沒什么用(是啊,誰沒事弄個隨機數(shù)玩),但是其實很多應用場景還離不了。(實際上,所有的編程語言都會內置隨機數(shù)生成機制)。 (順便說一下,有好幾個人問過究竟Excel有多少個函數(shù),我沒有準確的答案。我曾經(jīng)做過一個不敢保證完整的統(tǒng)計,在Excel 2013中,有400多個內置函數(shù)) 我們先來說一下為什么我們需要隨機數(shù)。 先引用一段英文網(wǎng)站上的答案(中文網(wǎng)站上沒找著): 大意是說隨機數(shù)重要是因為我們的現(xiàn)實世界非常復雜,以致于看起來是隨機的。 這段話說的是真的??,但是不一定對你有幫助。不過我們還是可以舉出一些真實的場景,在這些場景中好像只能使用隨機數(shù):
這種場景在實際應用中還有很多,甚至在業(yè)務的分析和預測中都會用到隨機數(shù)。(我們在以后,會專門介紹這方面的例子)。 接下來,我們?yōu)榇蠹医榻BExcel中的隨機數(shù),以及它們的一些變化。 Excel中有兩個隨機數(shù)函數(shù):RAND和RANDBETWEEN。 RAND函數(shù)的語法如下: =RAND() 這個函數(shù)不需要參數(shù)。這個函數(shù)返回一個0-1之間的小數(shù),類似于:0.687841910389369。 RANDBETWEEN函數(shù)的語法如下: RANDBETWEEN(bottom,top) 其中,bottom和top是兩個整數(shù),bottom要小于top。 這個函數(shù)返回bottom和top之間的一個整數(shù): 我經(jīng)常會用到這兩個函數(shù),因為上課時,我舉得例子不能含有真實的數(shù)據(jù),我就會用隨機數(shù)代替。 隨機數(shù)函數(shù)很簡單,但是在實際中的場景我們對隨機數(shù)的要求很可能跟這兩個函數(shù)都不一樣,這時就需要一些變化。 變化1 生成1-100之間的隨機數(shù) RAND只能生成0-1之間的隨機數(shù),而RANDBETWEEN只能生成兩個整數(shù)之間的隨機整數(shù)。要想生成1-100之間的隨機數(shù),可以使用下面的公式: =1+RAND()*100 變化2 生成一半負數(shù)一半正數(shù)的隨機數(shù) RAND生成的都是正數(shù),要想生成的隨機數(shù)中一半是正數(shù)一半是負數(shù),可以使用公式: =RAND()*(IF(RAND()>0.5,1,-1) 這個公式使用了兩個RAND函數(shù),其中IF中嵌套的RAND函數(shù)負責判斷正負號。如果這個隨機數(shù)>0.5,就是正號,否則就是負號。 變化3 生成一個隨機的字符 有時候我們要隨機的字母(a,b,c,...),而不是隨機的數(shù)字,可以使用公式: =CHAR(RANDBETWEEN(97,122) 這個公式可以隨機生成一個小寫字母。如果使用公式: =CHAR(RANDBETWEEN(65,90) 就可以隨機生成大寫字母。 這里的CHAR函數(shù)的作用將一個字符的ASCII碼轉換為相應的字符。從65-90是小寫字母的ASCII碼,而97-122是大寫字母的ASCII碼。 變化4 從一個區(qū)域中隨機選擇一項 下面的公式: =INDEX(B2:B13, RANDBETWEEN(1,12)) 可以從區(qū)域B2:B13中隨機選取一項: 變化5 隨機生成日期 日期就是數(shù)字,所以RANDBETWEEN就可以隨機生成日期,只要給定起止日期: =RANDBETWEEN(--"2020/1/1",--"2020/9/30") 這個公式就可以隨機生成2020/1/1至2020年9月30日之間的日期。 我更習慣使用下面的公式: =--"2020/1/1"+RANDBETWEEN(1,270) 公式中的--"2020/1/1"可以將一個文本表示的日期:"2020/1/1"轉換為真正的日期。 好了,今天的分享就到這里了!想想看,你的工作中是不是有隨機數(shù)的用武之地? |
|