Excel rand()隨機函數(shù)的應用2010-08-03 09:31:20| 分類: 電腦日常應用 | 標簽:rand 隨機數(shù) int 公式 函數(shù) |字號大中小 訂閱 求教:我的電子表格中rand()函數(shù)的取值范圍是-1到1,如何改回1到0 回答:有兩種修改辦法: 是[1-rand()]/2, 或[1+rand()]/2。 效果是一樣的,都可生成0到1之間的隨機數(shù)
電子表格中RAND()函數(shù)的取值范圍是0到1,公式如下: =RAND()
如果取值范圍是1到2,公式如下: =RAND()*(2-1)+1
RAND( )
注解:
若要生成 a 與 b 之間的隨機實數(shù): =RAND()*(b-a)+a
如果要使用函數(shù) RAND 生成一隨機數(shù),并且使之不隨單元格計算而改變,可以在編輯欄中輸入“=RAND()”,保持編輯狀態(tài),然后按 F9,將公式永久性地改為隨機數(shù)。 示例
RAND() 介于 0 到 1 之間的一個隨機數(shù)(變量) =RAND()*100 大于等于 0 但小于 100 的一個隨機數(shù)(變量)
excel產(chǎn)生60-70隨機數(shù)公式 =RAND()*10+60 要取整可以用=int(RAND()*10+60)
我想用excel在B1單元個里創(chuàng)建一個50-80的隨機數(shù)且這個隨機數(shù)要大于A1單元個里的數(shù)值,請教大家如何編寫公式! 整數(shù):=ROUND(RAND()*(80-MAX(50,A1+1))+MAX(50,A1+1),0)
無需取整數(shù):=RAND()*(80-MAX(50,A1))+MAX(50,A1)
要求: 1,小數(shù)保留0.1 2,1000-1100范圍 3,不要出現(xiàn)重復 =LEFT(RAND()*100+1000,6) 至于不許重復 你可以設置數(shù)據(jù)有效性 在數(shù)據(jù)-有效性設 =countif(a:a,a1)=1 選中a列設有效性就好了 其他列耶可以
急求excel隨機生成數(shù)字的公式,取值要在38.90-44.03之間,不允許重復出現(xiàn),保留兩位小數(shù),不允許變藏 =round(RAND()*5+38.9,2) 公式下拉
Excel隨機數(shù)
Excel具有強大的函數(shù)功能,使用Excel函數(shù),可以輕松在Excel表格產(chǎn)生一系列隨機數(shù)。
用Excel隨機函數(shù)rand()生成隨機數(shù)和隨機字母 以前使用Excel的隨機數(shù)函數(shù),生成過固定位數(shù)的數(shù)字卡的卡號和密碼,效果還是蠻好的!現(xiàn)在又有新的需求了,那就是要生成隨機字母!為了避免每次有新的需求都要重新寫日志,干脆一起寫出來吧! 1、生成隨機數(shù)字 (1)生成隨機數(shù)比較簡單,=rand()即可生成0-1之間的隨機數(shù); (2)如果要是整數(shù),就用=int(rand())*10,表示0至9的整數(shù),以此類推; (3)如果要生成a與b之間的隨機實數(shù),就用=rand()*(b-a)+a,如果是要整數(shù)就用=int(rand()*(b-a))+a;稍微擴充一下,就能產(chǎn)生固定位數(shù)的整數(shù)了。 2、產(chǎn)生隨機字母 隨機小寫字母:=CHAR(INT(RAND()*26)+97) 隨機大寫字母:=CHAR(INT(RAND()*26)+65) 隨機大小寫混合字母:=CHAR(INT(RAND()*26)+if(INT(RAND()*2)=0,65,97)) 3、產(chǎn)生隨機的六位數(shù)的字母和數(shù)字混合 =CONCATENATE(IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97))))) 4、隨機不重復數(shù)字序列的生成方法 有些情形下,我們需要生成一個不重復的隨機序列。 比如:我們要模擬洗牌,將一副撲克牌去掉大小怪后剩下的52張打亂。 比較笨的方法是在1-52間每生成一個隨機數(shù)后,檢查該隨機數(shù)是否出現(xiàn)過,如果是第一次出現(xiàn),就放到序列里,否則重新生成一個隨機數(shù)作檢查。在 excel worksheet里面用這種辦法,會造成if多層嵌套,不勝其煩,在VBA里面做簡單一些,但是效率太差,越到序列的后端,效率越差。 當然也有比較好的辦法,在VBA里面,將a(1)-a(52)分別賦予1-52,然后做52次循環(huán),例如,第s次生成一個1-52間的隨機數(shù)r,將a(s)與a(r)互換,這樣的話,就打亂了原有序列,得到一個不重復的隨機序列。 VBA里這個算法是很容易實現(xiàn)的,但是,出于通用性和安全考慮,有的時候我們并不希望用VBA,我們來看看在worksheet里面如何利用內置函數(shù)實現(xiàn)這個功能。 (1)在A1-A52間填入"=INT(RAND()*52)+1",產(chǎn)生1-52間的隨機數(shù),注意這里是有重復的 (2)在B1-B52間填入1-52 (3)在C54-BB54填入1-52 (4)在C1填入"=IF(ROW()=C$54,INDEX(B$1:B$52,INDEX($A$1:$A$52,C$54)),IF(ROW()=INDEX($A$1:$A$52,C$54),INDEX(B$1:B$52,C$54),B1))"。 分項解釋: a:ROW()=C$54,如果當前行等于當前交換所排的序號 b:INDEX(B$1:B$52,INDEX($A$1:$A$52,C$54)),返回在B1到B52中選擇A1:A52中的第C54個值 c:IF(ROW()=INDEX($A$1:$A$52,C$54),否則的話,如果當前行等于A1:A52中第C54個值,則: d:INDEX(B$1:B$52,C$54),返回B1:B52中的第C54個值 e:若以上條件都不滿足,則返回B1 (5)將C1復制到C1:BA52這個區(qū)域里面 (6)在BA1:BA52中,我們就得到了一個不重復的隨機序列,按F9可以生成一個新序列 如何在EXCEL中生成隨機數(shù) 說明:若要生成 a 與 b 之間的隨機實數(shù),請使用: 如果要生成整數(shù),則輸入:=INT(RAND()*(b-a)+a) 如果要使用函數(shù) RAND 生成一隨機數(shù),并且使之不隨單元格計算而改變,可以在編輯欄中輸入“=RAND()”, 如果您將示例復制到空白工作表中,可能會更易于理解該示例。 操作方法 創(chuàng)建空白工作簿或工作表。 從幫助中選取示例。 按 Ctrl+C。 在工作表中,選中單元格 A1,再按 Ctrl+V。 如果只要顯示重復的數(shù)據(jù),可以使用條件格式來顯示: 用條件格式
================================= 生成 定量個數(shù)字 最小值 --- 最大值 間的 不重復隨機數(shù) ’歡樂小爪(QQ:461699029) '方法一 Sub 指定數(shù)據(jù)段不重復隨機數(shù)() ======================================== 小妖提供一下代碼(),僅以感謝 Sub 產(chǎn)生不重復隨機整數(shù)() -*-*-*-*-*-*-**********-*-*-*-*-*-*-------------------------- ====================== 在 0、5、10 中間隨機生成一個數(shù) =IF(RAND()>0.3,IF(RAND()>0.6,10,5),0) |
|