教你在Excel中生成隨機數的5種方法_第1頁
教你在Excel中生成隨機數的5種方法_第2頁
教你在Excel中生成隨機數的5種方法_第3頁
教你在Excel中生成隨機數的5種方法_第4頁
教你在Excel中生成隨機數的5種方法_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

機數的5種方法【原】教你在Excel中生成隨機數的5種方法2022-02-21Excel中的隨機數并非是每個用戶都需要的功能,大多數人的數據都會使用固定數字和公式,可能不需要在他們的報告中出現隨機數。財務模型可以使用依賴于概率的隨機模擬,有些數據模型可能需要運行數千次,但隨機數生成器會提供每次模擬的參數。無論您需要怎么樣的隨機數,Excel都有多種生成它們的方法。在這篇文章中,我將向您展示可用于將隨機數插入到工作簿中的各種方法。1/使用RAND函數生成隨機數我將向您展示的第一種方法是在Excel中生成隨機值的最簡單方法。Excel中有一個非常簡單的RAND函數,它不需要參數,會生成一個0到1之間的隨機數。RAND函數示例:=RAND此函數沒有必需或可選的參數。該函數始終以一組空括號輸入。此函數將生成一個介于0和1之間的隨機小數,但不包括0或1有可能會存在重復值,但是概率會比較低,因為在0和1之間的小數是太多了。返回的值將遵循均勻分布。這意味著0和1之間的任何數字都有可能被返回。使用RAND()在任意兩個數字之間生成隨機叫可以使用RAND()函數的簡單公式在任意兩個數字之間生成隨機數。=RAND()*(Y-X)+:這樣就可以在X和Y之間創(chuàng)建一系列隨機數。在任意兩個數字之間生成隨機整數:有時,我們遇到的需求是在兩個給定數字之間生成隨機整數。這也可以使用一個簡單的公式來完成。=ROUND(RAND()*(Y-X)+X,0)即使用ROUND函數對RAND函數的結果進行四舍五入到零小數位可以將這個公式復制到電子表格的列中,如果您一直按F9重新計算,您將看到從1到10的各種數字組合但是由于整數數字是離散的,生成的隨機數很可能在列表中重復,這取決于生成隨機范圍的最小值和最大值。=ROUND(RAND()*(4--3)+-3,0)這也適用于產生負數。假設需要生成-3到4之間的隨機整數,那么上面的公式就是你所需要的將RAND函數乘以7將產生0到7之間的隨機數。將-3添加到結果并四舍五入到零小數位,這將給出-3到4的隨機整數范圍。2/使用RANDBETWEEN函數生成隨機數這個函數相對比使用RAND函數更容易使用,因為它包含額外的運算符來達到需要的特定隨機數范圍。RANDBETWEEN函數的語法:=RANDBETWEEN(bottom,top).bottom是返回值的下限.top返回值的上限函數將在下限值和上限值之間生成隨機整數RANDBETWEEN函數示例:=RANDBETWEEN(-3,4)請注意,RANDBETWEEN函數只能生成整數。沒有辦法讓函數產生小數。然而,它比RAND函數來實現相同的結果要簡單得多。3/使用RANDARRAY函數生成隨機數部分情況下,可能不僅需要單個隨機值,還需要一組隨機值。RANDARRAY函數是對此的完美解決方案。它將用一組隨機數填充系列單元格,不過此功能僅適用于Microsoft365版本的ExcelRANDARRAY函數的語法:^^=RANDARRAY([rows],[columns],[min],[max],[whole_nmber])rows是要返回的行數columns是要返回的列數min是隨機數的最小值max是隨機數的最大值whole_Number為TRUE返回整數,FALSE返回小數此函數的所有參數都是可選的。如果不包含任何參數,將獲得一個帶隨機小數,與RAND函數的結果相同RANDARRAY函數示例:=RANDARRAY(4,3,6,14,TRUE)要生成4行3列的6到14之間的整數隨機數數組,您可以使用上述公式。這將產生一個數組。注意到數字周圍的藍色邊框了嗎?這些都是由1個公式產生的請注意,數組的左上角始終錨定在公式所在的單元格上。按F9重新計算電子表格將更改數組中的所有數字?如果沒有輸入最小值或最大值,則將使用默認值0到1。?最小值必須小于最大值,否則會出^#VALUE!錯誤。?如果更改了RANDARRAY公式中的行或列參數,數組將自動調整大小。這就是它們被稱為動態(tài)數組公式的原因注意:如果輸入的輸出范圍內的一個單元格中已經有了數據,將收到#SPILL!錯誤,同時不會覆蓋任何已有數據4/使用分析工具插件生成隨機數還有另一種方法可用于在不使用公式的情況下插入隨機數。可以使用加載項來創(chuàng)建隨機數。Excel附帶一個分析工具庫加載項,但您需要先安裝它才能使用它1/單擊功能區(qū)中的文件選項卡2/在窗口的左下方窗格中,向下滾動并單擊選項3/在彈出窗口的左側窗格中,單擊加載項4/勾選分析工具庫,單擊確定5/Excel功能區(qū)的“數據”選項卡上,現在有一個名為“分析〃的組,就可以看到到〃數據分析”的選項使用分析工具包生成隨雌可以在其中輸入參數以生成隨機數?變量數:這是輸出表中所需的隨機數列數。如果留空,則所有列都將填充在您指定的輸出范圍內?隨機數:這是要生成的隨機數的行數。如果留空,指定的輸出范圍將被填充?分布:可以從下拉列表中選擇多種分布方法,例如均勻分布或正態(tài)分布。根據在此處的選擇,參數部分將提供不同的選項?參數:輸入值以表征選定的分布?隨機種子:這是可選的,將是算法產生隨機數的起點。如果再次使用相同的種子,它將產生相同的隨機數。如果留空,它將從計時器事件中獲取種子值?輸出區(qū)域:輸入要在電子表格中構建表格的位置的左上角單元格。如果您將變量參數留空,則需要指定整個區(qū)域。請注意,該區(qū)域內的現有數據將被覆蓋?新建工作表:此選項將在工作簿中插入一個新工作表并將結果粘貼到單元格A1單元格,在相鄰的框中輸入工作表名稱,否則將使用默認名稱?新建工作簿:這將創(chuàng)建一個新工作簿并將結果粘貼到第一張工作表的單元格A1單元格中5/用VBA生成隨機數VBA(VisualBasicforApplications)是位于Excel前端的編程語言,也可用于生成隨機數。但是,它比簡單地在Excel中的單元格中輸入公式要復雜,而且需要一些編程知識才能使用它要打開VBA編輯器,請使用Alt+F11鍵盤快捷鍵在窗口(項目資源管理器)的左側窗格中,將看到打開的工作簿(包括加載項)和可用的工作表在窗口頂部的菜單上,單擊“插入”,然后單擊“模塊”。這將向當前電子表格添加一個模塊窗口。將以下代碼粘貼或添加到模塊中SubRandomNumber()MsgBoxRnd()^^MEndSub^^^^H按F5運行它,Excel中將出現一條消息彈出窗口,并顯示一個隨機數。點擊確定,您將返回代碼窗口。再次運行代碼,將顯示不同的隨機數。隨機數將介于0和1之間,但不包括0或1的值。還可以為Rnd函數提供一個參數,該參數是用于生成隨機數的算法起點的種子。如果種子值設置為負數或零,則每次將顯示相同的隨機數。例如,如果您想生成3到10之間的完整隨機數,則可以使用以下代碼。此代碼將隨機數乘以7,然后將其加3,然后四舍五入到小數點零位。假設您想在單元格中顯示您的隨機數。您可以使用以下代碼執(zhí)行此操作SubRandomNumberSheet()^^^^^^^^^^^^MAsIntege^^^^^^^^^^^^^^^^^^^B1ToActiveSheet.Cells(M,1)=Round((Rnd(10)*7)+3,0)NextM^^^^^^^^^^^^^^^^^^lEndSub還有一個名為Randomize的VBA函數。可以在Rnd函數之前使用它來將種子值重置為計時器事件或任何給定的參數SubRandomNumberV2()

Randomize(10)MsgBoxRound((Rnd()*7)+3)EndSub6/生成不重復的隨機數可能會遇到這樣一種情況:想生成一系列隨機數,但又不想看到任何重復值出現??赡芟M麖?到10的數字之間選擇3個隨機數,但其中3個所選數字中的每一個都是唯一的。有幾種可能的解決方案:數.RANK.EQ和COUNTIF函數的解決方案:數.先使用RANDBETWEEN創(chuàng)建隨機數,然后使用下一列中的公式對它們進行排名,從而從1到10的隨機排序序列=RANDBETWEEN(1,10)然后,可以使用RANK.EQ函數對它們進行排名,以創(chuàng)建一個從1到10的序列,該序列是隨機排序的=RANK.EQ(B2,$B$2:$B$11)+COUNTIF($B$2:B2,B2)-注意,公式使用了絕對引用($符號),以便在向下復制公式時公式引用保持固定用VBA解決:還可以使用VBA生成一串從1到10的無重復隨機數SubRandomNumberNoDuplicates()^^^^^^^^|DimMAsInteger,TempAsString,RandNAsIntege1To1R0PeatRepeat:^^^^^^^^^^^^^^^^^^^^^^^^|1R0PeatRandN=Round((Rnd(10)*9)+1,0fInStr(Temp,RandN)ThenGoTRepeactiveSheet.Cells(M,1)=RandNTemp=Temp&RandN&NextMEndSub代碼迭代從1到5的值,每次生成1到10之間的隨機數。它測試隨機數以檢查它是否已經生成。這是通過將成功的數字連接成一個字符串然后搜索該字符串以查看該數字是否已被使用來完成的。如果已找到,則它使用標簽重復返回并重新生成一個新號碼。再次測試它尚未使用。如果是新號碼,則將其添加到工作表中動態(tài)數組的解決方案:假設要從序列1到10中返回5個數字。您希望每個選擇的數字都是唯一的。這可以使用SEQUENCE.SORTBY、RANDARRAY和INDEX函數的組合來完成SEQUENCE(10),RANDARRAY(10)SEQUENCE(5))上面的公式創(chuàng)建了一個從1到10的數字序列然后使用SORTBY函數以隨機順序對它們進行排序,并對RANDARRAY函數生成的隨機數列進行排序。效果是按隨機順序對序列進行排序?,F在,如果想獲得5個隨機且唯一的數字,只需從隨機排序的序列中取出前5個數字。這正是INDEX函數所做的!這部分公式將從隨機排序的序列中返回前5個數字結論在Excel中有多種生成隨機數的方法。無論您需要整數、小數還是具有上限和下限的隨機數范圍,都可用Exc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論