當前位置:編程學習大全網 - 編程語言 - Excel生成隨機字母

Excel生成隨機字母

1,生成隨機數

(1)生成隨機數比較簡單,=rand()可以生成0到1之間的隨機數;

(2)如果是整數,用=int(rand())*10表示0到9的整數,以此類推;

(3)如果要生成A和B之間的隨機實數,用=rand()*(b-a)+a,如果要整數,用= int(rand()*(B-A))+A;稍微展開,就可以生成壹個固定位數的整數。

註意:如果要用函數rand()生成壹個隨機數,並且不隨單元格計算而變化,可以在編輯字段輸入“=rand()”,保持編輯狀態,然後按F9鍵,將公式永久更改為隨機數。但是,這只能壹個壹個永久改變。如果有許多號碼,您也可以選擇所有號碼,並將其粘貼到另壹個合適的位置。粘貼方法是右鍵選擇選擇性粘貼,然後選擇數值,這樣就可以復制之前復制的隨機數公式生成的數值(不是公式)了!

2.生成隨機字母

隨機小寫字母:=CHAR(INT(RAND()*26)+97)

隨機大寫字母:=CHAR(INT(RAND()*26)+65)

隨機大小寫混合字母:= char(int(rand()* 26)+if(int(rand()* 2)= 0,65,97))

3.生成壹個隨機的字母和數字的六位數組合。

= 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()))

4.隨機不重復數列的生成方法

在某些情況下,我們需要生成壹個不重復的隨機序列。

比如我們要模擬洗牌,把壹副撲克牌中的大小怪物去掉後,剩下的52張牌就打亂了。

最笨的方法是在1-52之間的每個隨機數生成後,檢查該隨機數是否曾經出現過。如果是第壹次出現,就放在序列裏,否則重新生成壹個隨機數進行檢查。在excel工作表中使用這種方法,會導致if被多層嵌套,很煩。在VBA做起來更容易,但是效率太低了。越到序列的後端,效率越差。

當然,還有更好的方法。在VBA,分別給a(1)-a(52)到1-52,然後做52個循環,比如在1-52之間產生壹個隨機數r,用於s時間,交換a(s)和a(r),這樣,

這種算法在VBA很容易實現,但為了通用性和安全性,有時我們不想使用VBA。我們來看看如何在工作表中使用內置函數實現這個功能。

(1)在A1-A52之間填入“=INT(RAND()*52)+1”生成1-52之間的隨機數。註意這裏有重復的。

(2)在B1-B52之間填入1-52。

(3)在C54-BB54中填入1-52。

(4)填寫“= if (row () = c $54,index (b $1: b $52,index($ a $ 1:a $ 52,c $54))”,if (row()。

逐項解釋:

A:ROW()=C$54,如果當前行等於當前交換的序號。

B: index (b $1: b $52,index($ a $ 1:a $ 52,c $54)),將A1:A52的第54個值從B1返回到B52。

c:if(row()= index($ a $ 1:$ a $ 52,c $54),否則,如果當前行等於A1:A52中的c54th值,則:

D:INDEX(B$1:B$52,C$54),返回B1:B52中的第54個值。

e:如果不滿足上述條件,則返回B1。

(5)將C1復制到C1:BA52區域。

(6)在BA1:BA52中,我們得到壹個不重復的隨機序列,按F9生成壹個新的序列。

  • 上一篇:到底什麽是Ajax技術?
  • 下一篇:最受歡迎的編程語言
  • copyright 2024編程學習大全網