win7系統下載
當前位置: 首頁 > 硬件軟件教程 > 詳細頁面

Excel隨機數產生函數Rand與RandBetween的用法,含生成固定的、不重復的或指定范圍的隨機數

發布時間:2025-03-14 文章來源:xp下載站 瀏覽:

辦公軟件是指可以進行文字處理、表格制作、幻燈片制作、圖形圖像處理、簡單數據庫的處理等方面工作的軟件。目前辦公軟件朝著操作簡單化,功能細化等方向發展。辦公軟件的應用范圍很廣,大到社會統計,小到會議記錄,數字化的辦公,離不開辦公軟件的鼎力協助。另外,政府用的電子政務,稅務用的稅務系統,企業用的協同辦公軟件,這些都屬于辦公軟件。

在 Excel 中,生成隨機數可以用Rand函數或RandBetween函數,其中前者用于生成 0 到 1 的小數隨機數,后者用于生成指定范圍的整數隨機數。Rand函數也可以生成指定范圍的隨機數,但要用公式 =RAND()*(b-a)+a,且生成的隨機數仍然為小數。

直接用Rand函數或RandBetween函數生成隨機數,都可能產生重復的隨機數,如果要求生成不重復的隨機數,需先產生種子再用種子生成隨機數,或用 Small + If + CountIf + Row + Int + Rand 函數生成。在默認情況,用Rand函數或RandBetween函數生成的隨機數容易發生變化,如果要求生成不變的隨機后,需要把它們轉為數值。

一、Excel隨機數產生函數的語法

(一)Rand函數

1、表達式:RAND()

2、說明:

A、Rand函數用于生成 0 到 1 之間的隨機數;如果要生成 a 與 b 之間的隨機數,需要使用 RAND()*(b-a)+a;例如生成 1 到 100 的隨機數,可以用公式 =RAND()*(100-1)+1。

B、用Rand函數生成的隨機數,每次計算工作表時會變為另一個隨機數,如果要求不變,輸入公式 =RAND() 后,保持編輯狀態,按 F9 把公式轉為數值,具體見下文的實例。

(二)RandBetween函數

1、表達式:RANDBETWEEN(Bottom, Top)

2、說明:

A、RandBetween函數用于生成任意兩個指定數之間的隨機數,參數 Bottom 為指定數值范圍的最小值、Top 為指定數值范圍的最大值。

B、與Rand函數一樣,RandBetween函數生成的隨機數,每次計算工作表時也會變為另一個隨機數,如果要求已生成的隨機數不變,輸入完公式后,按 F9 把公式轉為數值即可。

二、Excel隨機數產生函數 Rand 的使用實例

(一)生成 0 到 1 之間的固定不變的小數隨機數

選中 A1 單元格,輸入公式 =rand(),按回車,返回隨機數 0.500716885;雙擊 A1,按回車,隨機數變為 0.140809335,每執行一次公式,隨機數會變化;再次雙擊 A1,按 F9,則公式轉為隨機數 0.859460188902102,再怎么雙擊 A1,也不會出現公式,隨機數也不會再變化;操作過程步驟,如圖1所示:

Excel隨機數產生函數Rand與RandBetween的使用實例

圖1

(二)生成指定范圍的隨機數

1、假如要生成 100 到 1000 之間的隨機數。雙擊 A1 單擊格,把公式 =INT(RAND()*(1000-100)+100) 復制到 A1,按回車,返回隨機數816;操作過程步驟,如圖2所示:

Excel生成指定范圍的隨機數

圖2

2、公式 =INT(RAND()*(1000-100)+100) 說明:

用 Rand 函數生成 100 到 1000 之間的隨機數可用公式 =RAND()*(b-a)+a,a 為 100,b 為 1000,但用此公式生成的隨機數是小數,如果要生成整數的隨機數, 要用 Int 函數取整。

三、Excel隨機數產生函數 RandBetween 的使用實例

(一)生成指定范圍的固定不變的整數隨機數

假如要生成 0 到 100 之間的隨機數。雙擊 A1 單元格,把公式 =RANDBETWEEN(0,100) 復制到 A1,按回車,返回隨機數 57;雙擊 A1,按回車,隨機數變為 15,每執行一次公式,隨機數也會變化;再次雙擊 A1,按 F9,把公式轉為數值 10,再雙擊 A1,不會再出現公式;操作過程步驟,如圖3所示:

Excel隨機數產生函數 RandBetween 的使用實例

圖3

(二)生成正負數之間的隨機數

假如要生成 -100 到 100 之間的隨機數。雙擊 A1 單元格,把公式 =RANDBETWEEN(-100,100) 復制到 A1,按回車,返回隨機數 9;再次雙擊 A1,按回車,返回隨機數 -99;操作過程步驟,如圖4所示:

Excel生成正負數之間的隨機數<

圖4

四、Excel隨機數產生函數的擴展應用

(一)生成固定不變的隨機數

Excel生成固定不變的隨機數有兩種方法,一種為輸入公式后按 F9,把公式轉為數值,在上面已經介紹過;另一種方法為把生成的隨機數復制為數值,此方法可以批量把生成的隨機數轉為固定不變的數值,具體方法如下:

雙擊 A1 單元格,里面是一個生成隨機數的公式,按回車,生成新的隨機數;框選 A1:B9,按 Ctrl + C 復制;當前選項卡為“開始”,單擊窗口左上角的“粘貼”,在彈出的選項中選擇“粘貼數值”下的“值”圖標,則選中的所有單元格中的生成隨機數公式轉為數值,再次雙擊 A1,已經沒有公式;操作過程步驟,如圖5所示:

Excel生成固定不變的隨機數

圖5

(二)生成不重復的隨機數

(1)先生成種子,再用種子生成不重復的隨機數

1、生成不重復的小數隨機數

A、生成種子。雙擊 A1 單元格,把公式 =RAND() 復制到 A1,按回車,生成一個小數隨機數;選中 A1,把鼠標移到 A1 右下角的單元格填充柄上,按住左鍵,往下拖一直拖到 A10,則所經過單元格都變為同一隨機數,按 Ctlr + S 保存,則 A1:A10 更新為不同的隨機數;

B、生成不重復隨機數。雙擊 B1,把公式 =RAND() 復制到 B1,輸入 *A1,按回車,返回一個新的隨機數;選中 B1,把鼠標移到 B1 右下角的單元格填充柄上,鼠標變為黑色加號后,雙擊左鍵,則 B2:B10 變為與 B1 一樣的隨機數,按 Ctrl + S 保存,B2:B10 變為不同的隨機數;操作過程步驟,如圖6所示:

Excel生成不重復的隨機數

圖6

2、生成不重復的指定范圍的整數隨機數

A、假如要生成 50 到 100 之間的隨機數。雙擊 A2 單元格,把公式 =RANDBETWEEN(50,100) 復制到 A2,按回車,生成一個種子隨機數,用往下拖的辦法生成其它種子隨機數;

B、雙擊 B2,把公式 =INT(RANDBETWEEN(50,100)*A2/100) 復制到 B2,按回車,生成一個隨機數,用雙擊 B2 單元格填充柄的方法生成其它隨機數;操作過程步驟,如圖7所示:

Excel生成不重復的指定范圍的整數隨機數

圖7

C、公式 =INT(RANDBETWEEN(50,100)*A2/100) 說明:

先用 RANDBETWEEN(50,100) 產生 50 到 100 的隨機數,再用該隨機數與 A2 中的種子隨機數相乘,然后再除 100(由于兩個 50 到 100 的數值相乘擴大了 100 倍,因此要縮小 100 倍),最后用 Int 函數取整。

提示:先生成種子再用種子生成隨機數不能保證生成的隨機數一定不重復,如果要求生成唯一的隨機數,需要下文的方法。

(2)用 Small + If + CountIf + Row + Int + Rand 函數生成不會重復的隨機數

A、假如要生成 1 到 12 之間的不重復隨機數。雙擊 A2 單元格,把公式 =SMALL(IF(COUNTIF(A$1:A1,ROW($1:$12))=0,ROW($1:$12)),INT(RAND()*(12-ROW(1:1))+1)) 復制到 A2,按 Ctrl + Shift + 回車,生成隨機數 6;把鼠標移到 A2 右下角的單元格填充柄上,鼠標變為黑色加號后,往下拖一直拖到 A13,則所經過單元格全變為 6,按 Ctrl + S 保存,則 A2:A13 變為 1 到 12 的隨機數;操作過程步驟,如圖8所示:

Excel隨機數

圖8

B、公式 =SMALL(IF(COUNTIF(A$1:A1,ROW($1:$12))=0,ROW($1:$12)),INT(RAND()*(12-ROW(1:1))+1)) 說明:

[1]、A$1 表示對列相對引用、對行絕對引用($ 表示絕對引用),當往下拖時,A1 不會變為 A2、A3 等;當往右拖時,A1 會變為 B1、C1 等。A1 表示對列和行都是相對引用,當往下拖時,A1 會變為 A2、A3 等;當往右拖時,A1 會變為 B1、C1 等。

[2]、A$1:A1 用于返回當前單元格到拖到單元格的所有數值;當公式在 A2 時,A$1:A1 返回 A1,A1 為空,因此返回 0;當公式在 A3 時,A$1:A1 變為 A$1:A2,它以數組形式返回 A1、A2 中的數值,即返回 {0;5};其它的以此類推。

[3]、$1 表示對行的絕對引用,當往下拖時,1 不會變為 2、3 等;$12 與 $1 是一個意思;ROW($1:$12) 用于返回 1 到 12 的數組,即返回 {1;2;3;4;5;6;7;8;9;10;11;12}。

[4]、當公式在 A2 時

COUNTIF(A$1:A1,ROW($1:$12)) 變為 COUNTIF(A1,{1;2;3;4;5;6;7;8;9;10;11;12}),A1 為統計個數的范圍,數組為條件,執行時,依次取條件數組中的每個元素統計在 A1 中出現的次數,第一次執行取條件數組的第一個元素 1,由于 A1 的數值為 0,因此統計結果為 0;第二次執行取 2,統計結果也為 0;其它的以此類推;最后返回 {0;0;0;0;0;0;0;0;0;0;0;0};

則 COUNTIF(A$1:A1,ROW($1:$12))=0 變為 {0;0;0;0;0;0;0;0;0;0;0;0}=0,接著,取數組中的每個元素與 0 比較,如果相等,返回 True,否則返回 False,最后返回 {TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE};

則 IF(COUNTIF(A$1:A1,ROW($1:$12))=0,ROW($1:$12)) 變為 IF({TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE},

{1;2;3;4;5;6;7;8;9;10;11;12}),執行時,依次取 IF 條件數組中的每個元素出來,如果為 True,返回第二個數組與之對應的元素,否則返回 False;由于條件數組中全為 True,因此返回 {1;2;3;4;5;6;7;8;9;10;11;12};

1:1 表示對行的相對引用,往下拖時,1:1 會變為 2:2、3:3 等;ROW(1:1) 返回第一行的行號 1;12-ROW(1:1) 返回 11,12 是生成指定范圍隨機數的上限;

RAND() 用于返回 0 到 1 的小數隨機數,假如它返回 0.401319158944677,則 INT(RAND()*(12-ROW(1:1))+1) 變 INT(0.401319158944677*11+1),進一步計算變為 INT(4.414510748391450+1),接著,用 Int 函數取整,結果為 5;

則公式變為 =SMALL({1;2;3;4;5;6;7;8;9;10;11;12},5),最用 Small 函數返回數組中第 5 個最小的數,即返回 5。

[5]、公式在 A3 時

COUNTIF(A$1:A2,ROW($1:$12)) 變為 COUNTIF(A$1:A2,{1;2;3;4;5;6;7;8;9;10;11;12}),執行時,同樣依次取條件數組中的每個元素統計在 A1:A2 中的個數,由于 A1 為 0,A2 為 5,因此 A1:A2 返回 {0;5};第一次執行取條件數組中的 1,由于數組 {0;5} 中沒有 1,因此返回 0;第二次取 2,同樣返回 0;其它的以此類推,最后返回 {0;0;0;0;1;0;0;0;0;0;0;0};

則 COUNTIF(A$1:A2,ROW($1:$12))=0 變為 {0;0;0;0;1;0;0;0;0;0;0;0}=0,計算結果為{TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE};

則 IF(COUNTIF(A$1:A2,ROW($1:$12))=0,ROW($1:$12)) 變為 IF({TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE},{1;2;3;4;5;6;7;8;9;10;11;12}),進一步計算返回 {1;2;3;4;FALSE;6;7;8;9;10;11;12};剩余步驟與公式在 A2 時一樣。

C、如果要生成其它范圍的隨機數(如 5 到 10 的隨機數),只需把上面的公式改一下即可,公式可以這樣寫:

=SMALL(IF(COUNTIF(B$5:B5,ROW($5:$10))=0,ROW($5:$10)),INT(RAND()*(10-ROW(5:5))+1))

把公式復制到 B6,按回 Ctrl + Shift + 回車,生成一個隨機數,然后用往下拖的方法一直拖到 B11,按 Ctrl + S 保存,則生成 5 到 10 的不重復隨機數;操作過程步驟,如圖9所示:

Excel用 Small + If + CountIf + Row + Int + Rand 函數生成不會重復的隨機數

圖9


Office辦公軟件是辦公的第一選擇,這個地球人都知道。

久久亚洲国产的中文