一般而言,隨機數據是用於統計抽樣、數據加密、彩票、測試或訓練或其他需要不可預測結果的領域的一系列數字、文本字符串或其他符號。在本文中,我們將介紹在普通Excel和Excel365中生成隨機數、文本字符串、日期和時間的不同方法。
目錄:
本節將討論在Excel工作表中生成數字、文本字符串、日期和時間的各種解決方案。
要在工作表中生成或插入多個隨機數,普通的RAND或RANDBETWEEN函數可以幫助您很多。除了公式之外,還有其他代碼和簡單的工具也可以幫到你。
在兩個數字之間生成隨機十進制數
RAND函數可用於生成0和1之間、0和任何其他數字之間或兩個特定數字之間的隨機十進制數。
請複制您需要的上述公式,並將該公式應用於任意數量的單元格,然後您將獲得如下屏幕截圖所示的結果:
在兩個數字之間生成隨機整數
要產生一些隨機整數,您應該將RAND和INT函數組合在一起,如下表所示:
請應用您需要的上述公式,然後根據需要將公式拖動並複製到其他單元格,然後您將獲得如下屏幕截圖所示的結果:
在Excel中,有一個RANDBETWEEN函數也可以幫助您快速輕鬆地建立隨機數。
例如,如果您想生成100到200之間的隨機整數,請將下面的公式應用到一個空白單元格中,然後將公式拖動並複製到您想要的其他單元格中,請看截圖:
更多竅門:這個RANDBETWEEN函數也可以創建正數和負數。要在-100和100之間插入隨機數,您只需將底部值更改為-100,請參閱以下公式:
生成兩個數字之間具有指定小數位的隨機數
要創建具有指定小數位的隨機數,您需要將RANDBETWEEN公式更改為:
在這裡,我想得到一個10到50之間有兩位小數的隨機數列表,請應用下面的公式,然後根據需要將公式拖動並複製到其他單元格,請參見截圖:
以下用戶定義函數還可以幫助您在工作表範圍內生成隨機整數或具有特定小數位的數字。請按以下步驟操作:
1。按住ALT+F11鍵打開MicrosoftVisualBasicforApplications窗口。
2。點擊插入>模塊,然後將以下代碼粘貼到模塊窗口。
VBA代碼:生成隨機數
PublicFunctionRandomNumbers(Num1AsLong,Num2AsLong,OptionalDecimalsAsInteger)'UpdatebyExtendofficeApplication.VolatileRandomizeIfIsMissing(Decimals)OrDecimals=0ThenRandomNumbers=Int((Num2+1-Num1)*Rnd+Num1)ElseRandomNumbers=Round((Num2-Num1)*Rnd+Num1,Decimals)EndIfEndFunction3.然後,關閉代碼並返回工作表,在空白單元格中鍵入此公式=RandomNumbers(X,Y,Z).
備註:在以上公式中,X表示數字的下限,Y表示數字的上限,和Z是隨機數的指定小數位,請將其更改為您需要的數字。
1.)要生成50到200之間的隨機整數,請使用以下公式:
2.)要插入50到200之間的2個小數位的隨機數,請應用以下公式:
4.最後,根據需要將公式拖動並複製到其他單元格,您將獲得如下屏幕截圖所示的結果:
如果你厭倦了記憶和輸入公式,在這裡,我推薦一個有用的功能——插入隨機數據ofExcel的Kutools.使用此功能,您可以生成無需任何公式的隨機整數或十進制數。
1.選擇要在其中生成隨機數的單元格範圍,然後單擊庫工具>插入>插入隨機數據,請參見屏幕截圖:
2。在插入隨機數據對話框:
1.)生成隨機整數:
下整型標籤,在起至框中,鍵入您將在其間生成隨機整數的數字範圍,然後單擊Okor申請按鈕獲取隨機整數,如下圖所示:
2.)生成具有特定小數位的隨機數:
下十進制選項卡中,分別指定兩個數字起至要在它們之間生成隨機十進制數的框。然後選擇小數位十進制放置文本框並單擊Okor申請按鈕生成隨機小數。看截圖:
更多竅門:要生成沒有重複的隨機小數,請檢查獨特價值選項。
使用公式或代碼生成隨機數時,也會產生一些重複的數字。如果您想創建一個沒有重複的隨機數列表,本節將為您演示一些方法。
例如,我想生成100到200之間沒有重複數字的隨機數,這裡有一個複雜的數組公式可以幫助您,請執行以下步驟:
1。在兩個儲存格中指定下限值和上限值。在此範例中,我將在儲存格B100和B200中輸入2和3,請參閱螢幕截圖:
2.然後,將下面的公式複製到一個空白單元格中,例如D3,(不要將公式放入第一行的單元格中),然後按Ctrl+Shift+輸入鍵一起得到第一個數字,看截圖:
備註:在以上公式中,B1是較低的值,並且B2是您要返回之間的隨機數的上限值。D2是公式上方的單元格。
3.然後,將此公式拖動並複製到其他單元格,因為您要生成100到200之間的隨機數:
如果上面的公式對你來說有點難理解,你可以應用下面的VBA代碼,請這樣做:
VBA代碼:生成沒有重複的隨機數
SubRange_RandomNumber()'UpdatebyExtendofficeDimxStrRangeAsStringDimxRg,xCell,xRg1AsRangeDimxArsAsAreasDimxNum_LowerboundAsIntegerDimxNum_UpperboundAsIntegerDimxI,xJ,xS,xRAsIntegerxStrRange="A1:B20"xNum_Lowerbound=100xNum_Upperbound=200SetxRg=Range(xStrRange)SetxArs=xRg.AreasxRgCount=0ForxI=1ToxArs.CountSetxCell=xArs.Item(xI)xRgCount=xCell.Count+xRgCountNextxIxS=(xNum_Upperbound-xNum_Lowerbound+1)IfxRgCount>xSThenMsgBox("Numberofcellsgreaterthanthenumberofuniquerandomnumbers!")ExitSubEndIfxRg.ClearForxI=1ToxArs.CountSetxCell=xArs.Item(xI)ForxJ=1ToxCell.CountSetxRg1=xCell.Item(xJ)xR=Int(xS*Rnd+xNum_Lowerbound)DoWhileApplication.WorksheetFunction.CountIf(xRg,xR)>=1xR=Int(xS*Rnd+xNum_Lowerbound)LoopxRg1.Value=xRNextNextEndSub備註:在上面的代碼中,xStrRange="A1:B20"表示您要生成A1:B20範圍內的隨機數。xNum_下界=100xNum_Upperbound=200表示用於創建100到200之間的隨機數的下限值和上限值。請根據需要更改它們。
3。然後按F5鍵運行此代碼,唯一的隨機數將被插入到指定的範圍內。
要快速創建多個唯一的隨機數,Excel的Kutools“插入隨機數據功能支持智能選項–獨特價值.通過選中這個小選項,您將輕鬆解決此任務。
1.選擇要在其中生成隨機數的單元格範圍。
2。然後點擊庫工具>插入>插入隨機數據.在彈出的對話框中,請進行以下操作:
如果要在單元格範圍內生成一些隨機的偶數或奇數,只需將RANDBETWEE函數放在EVEN或ODD函數中,通用語法為:
例如,要生成從10到100的隨機偶數或奇數,請應用以下公式:
然後,通過拖動填充手柄將公式複製到您想要的其他單元格,然後,您將獲得如下屏幕截圖所示的結果:
有時,您可能需要創建一組隨機數加起來達到預定值。例如,我想生成5到10之間的50個或n個隨機數,總共100個,如下圖所示。為了在Excel中解決這個難題,我將為您介紹兩種方法。
在這裡,以下公式可以幫助您。請逐步按照說明進行操作,因為它們有點複雜:
1.首先,您應該創建您需要的數據:預先確定的總值、起始編號、結束編號以及您想要生成的隨機數數量,如下圖所示:
2.然後,請將以下公式複製到要生成數字的空白單元格中。在本例中,我將公式放入單元格A4,然後按Enter獲取第一個隨機數的鍵,見截圖:
備註:在以上公式中:A2是給定的總值;B2C2是要在其間生成隨機數的底部和頂部值;D2表示要生成的隨機數的個數;A4是您輸入此公式的單元格。
3.繼續將以下公式複製到A5單元格中,然後按Enter獲取第二個隨機數的鍵,見截圖:
備註:在以上公式中:A2是給定的總值;B2C2是要在其間生成隨機數的底部和頂部值;D2表示要生成的隨機數的個數;A4是放置第一個公式的單元格;A5是放置第二個公式的單元格。
4.然後,選擇第二個生成的數字,向下拖動以將此公式複製到下面的三個單元格中。現在,您將獲得5個隨機數,如下圖所示:
5。為了測試結果,你可以將這些數字相加,看看總數是否為100。
我們可以利用上面的公式來產生滿足我們需求的隨機數。然而,如果你想列出你指定的數字與特定總和組成的所有可能的數字組合,在這裡,我會推薦一個簡單的工具-Excel的Kutools。隨著它組成一個數字功能,您可以獲得具有相同特定總和的所有隨機數組合。
1。首先,您應該列出您指定的數字。在這裡,我們列出了10到50之間的所有數字,如下圖所示:
2。然後,點擊庫工具>內容>組成一個數字,請參見屏幕截圖:
3。在彈出的補數對話框,請執行以下操作:
4。處理後,您將看到總和為100的所有隨機數組,由10到50的數字組成,如下所示。
更多竅門:您可以選擇指定組合的數量和每個組合中隨機數的數量。比如生成10個組合,每個組合包含5個隨機數,可以在下面的對話框中設置操作高級設置如下所示:
你會得到這樣的結果:
本節將向您展示如何在Excel中生成隨機字母,例如從A到Z的大寫字母、從a到z的小寫字母或某些特殊字符(!"#$%&'()*+,-./)。
在Excel中,您可以將CHAR和RANDBETWEEN函數與一些ANSI字元程式碼結合起來建立公式,如下所示:
請應用您需要的任何上述公式,並將公式複製到任意數量的單元格中,然後您將獲得如下屏幕截圖所示的結果:
更多竅門:如果要生成多個字母的隨機文本字符串,只需根據需要使用&字符將字母連接起來即可。
1.)要生成四個大寫字母的隨機字符串,請應用以下公式:
2.)要生成四個小寫字母的隨機字符串,請應用以下公式:
3.)要生成前兩個大寫字母和後兩個小寫字母的隨機字符串,請使用以下公式:
您可以使用簡單的公式和&字符進行各種組合以滿足您的需求。
如果你已經安裝Excel的Kutools,您可以快速輕鬆地生成隨機字母和字符串,而無需記住任何公式。
1.選擇一系列單元格以插入字母或字符串。
2。然後點擊庫工具>插入>插入隨機數據,在彈出的對話框中進行如下操作:
創建密碼時,密碼應至少包含8個字符,並包含大寫字母、小寫字母、數字和一些特殊字符的組合。在本節中,我將介紹一些在Excel中生成隨機密碼的技巧。
請將以下公式複製到空白單元格中:
備註:上式中,第一個CHAR和RANDBETWEEN函數產生一個隨機大寫字母,第二個和第三個表達式產生兩個小寫字母,第四個表達式用於產生一個大寫字母,第五個表達式產生一個3位數之間的數字100和999,最後一個表達式用於產生特殊字符,您可以根據需要修改或調整它們的順序。
要在Excel中插入隨機密碼,以下用戶定義函數也可以幫到您,請按以下步驟操作:
1。按住ALT+F11鍵,然後打開MicrosoftVisualBasicforApplications窗口。
2。點擊插入>模塊,然後將以下宏粘貼到模塊窗口。
VBA代碼:在Excel中生成隨機密碼
FunctionRandomizeF(Num1AsInteger,Num2AsInteger)'UpdatebyExtendofficeDimRandAsStringApplication.VolatilegetLen=Int((Num2+1-Num1)*Rnd+Num1)Doi=i+1RandomizeRand=Rand&Chr(Int((85)*Rnd+38))LoopUntili=getLenRandomizeF=RandEndFunction3.然後關閉代碼並返回到工作表。在單元格中輸入此公式=RandomizeF(8,10)生成最小長度為8個字符,最大長度為10個字符的隨機文本字符串。
4.然後根據需要將公式拖動並複製到其他單元格。將創建長度在8到10之間的帶有字母數字和特定字符的隨機字符串。看截圖:
有沒有一種快速簡單的方法可以在Excel中產生多個隨機密碼?Excel的Kutools提供了一個很好的功能-插入隨機數據.使用此功能,您只需點擊幾下即可插入隨機密碼。
1.選擇要插入密碼的單元格範圍。
您是否嘗試過在Excel中隨機顯示或列出一些特定的文字值?例如,要在儲存格清單中隨機列出一些給定的文字(item1、item2、item3、item4、item5),以下兩個技巧可以幫助您解決此任務。
在Excel中,可以根據CHOOSE和RANDBETWEEN函數創建公式來隨機列出特定文本,通用語法為:
請將以下公式應用到空白單元格中,然後向下拖動填充手柄以隨機填充要列出特定值的單元格,請參見屏幕截圖:
如果你有Excel的Kutools,其插入隨機數據功能還可以幫助您在一系列單元格中隨機插入自定義文本值。
1.選擇要插入特定文本的單元格範圍。
3。然後,點擊Ok回到了插入隨機數據對話框中,您自己的自定義文本列表已顯示在列錶框中。現在,選擇新的列表項,單擊Okor申請按鈕將值隨機插入選定的單元格。
更多竅門:要隨機列出指定的文本而不重複,請檢查獨特價值選項。
假設你有一長串名字,從該清單中隨機挑選一些名字作為幸運名字或研究對象,如下圖所示。您如何在Excel中解決這個問題?
在Excel中,我們沒有直接的方法從列表中提取隨機值,但您可以創建基於INDEX、RANDBETWEEN和ROWS函數的公式來提取一些隨機值。
1.請將以下公式複製到要放置提取值的空白單元格中:
備註:在以上公式中,A2:A12是要從中獲取隨機值的值列表。
2.然後,將填充手柄向下拖動到要顯示隨機值的多個單元格,您將獲得如下屏幕截圖所示的結果:
使用上述公式時,會顯示一些重複的值。要跳過重複值,您應該首先創建一個輔助列,然後應用基於INDEX和RANK.EQ函數的公式。請按以下步驟操作:
1.在空白單元格中輸入以下公式以獲取隨機數列表,請參見屏幕截圖:
2.然後,將以下公式複製到要提取一些隨機值的另一列的單元格中,然後將此公式拖動並複製到以下單元格以顯示一些非重複隨機值,請參見屏幕截圖:
備註:在以上公式中,A2:A12是要從中生成一些隨機值的值列表,B2是輔助列的第一個單元格,B2:B12是您在步驟1中創建的輔助公式單元格。
在這裡,我將推荐一個有用的功能——隨機排序/選擇範圍ofExcel的Kutools.使用此功能,您可以根據需要選擇一些隨機單元格、行或列。
1.選擇要從中選擇一些隨機值的單元格列表。
2。然後,單擊庫工具>範圍>隨機排序/選擇範圍,請參見屏幕截圖:
3。在隨機排序/選擇範圍對話框,請執行以下操作:
4.選擇單元格後,您可以根據需要將它們複製並粘貼到其他單元格。
假設您有一個姓名列表,現在您想將姓名隨機分為三組(A組、B組、C組),如下圖所示。在本節中,我將討論在Excel中解決此任務的一些公式。
若要將人員隨機指派到指定組,可以將CHOOSE函數與RANDBETWEEN函數結合使用。
1.請將以下公式複製或輸入到要生成組的單元格中:
備註:在以上公式中,A組,B組和C組指明要分配的組名和編號3表示您要分配的組數。
2.然後,拖動填充柄將此公式填充到其他單元格,名稱將分為三組,如下圖所示:
如果您希望所有組具有相同數量的名稱,則上述公式將無法正常工作。在這種情況下,您可以通過RAND函數創建具有隨機值的輔助列,然後應用基於INDEX、RANK和ROUNDUP函數的公式。
例如,我在單元格F2:F4中列出了您想要分配的組名稱。將人分配到組(A組、B組、C組),每組有4名參與者,請按以下步驟操作:
1。輸入以下公式:=RAND()進入一個空白單元格以獲取隨機數列表,請參見屏幕截圖:
2.然後,在下一列中,例如,在單元格D2中,複製或鍵入以下公式:
備註:在以上公式中,C2是輔助列的第一個單元格,C2:C13是您在步驟1中創建的輔助公式單元格,數字4表示您希望每個組包含多少個名稱,F2:F4是包含您要為數據分配的組名稱的單元格範圍。
3.向下拖動填充手柄為數據列表生成隨機組,名稱將被分成相等的組,見截圖:
要產生兩個給定日期之間的任何日期,我將為您介紹一些方法。
例如,我想隨機生成2021-5-1和2021-10-15之間的一些日期。通常,在Excel中,您可以結合使用RANDBETWEEN和DATE函數來完成任務,請按以下步驟操作:
1.選擇要插入隨機日期的單元格,然後輸入以下公式:
備註:在此公式中,2021,5,1是開始日期,並且2021,10,15是結束日期,您可以根據需要替換它們。
2.然後,將此公式拖動並複製到要填充此公式的其他單元格,單元格中將顯示五位數,如下圖所示:
3.然後,您應該將數字格式化為日期格式。請選擇公式單元格,然後右鍵單擊,選擇單元格格式從上下文菜單。
4。在單元格格式對話框,單擊聯繫電話選項卡,然後選擇日期來自類別窗格,然後從類型下拉列表。看截圖:
5。點擊OK關閉對話框。現在,數字已轉換為正常日期。看截圖:
更多竅門:如果您想生成不包括週末的隨機工作日,以下公式可能對您有所幫助:
Excel的Kutools“插入隨機數據還提供了一個選項來幫助您在兩個給定日期之間生成隨機日期、工作日、週末。
1.選擇要插入隨機日期的單元格範圍。
更多竅門:要生成一些隨機的不同日期,請檢查獨特價值選項。
在插入隨機數、文本字符串和日期之後,在本節中,我將討論在Excel中生成隨機時間的一些技巧。
用公式生成隨機時間
要在單元格範圍內生成隨機時間,基於TEXT和RAND函數的公式可以幫到您。
請在空白單元格中輸入以下公式,然後將公式拖動並複製到您想要獲取時間的其他單元格中,請參見屏幕截圖:
使用公式在兩個給定時間之間生成隨機時間
如果您需要在兩個特定時間之間隨機插入一些時間,例如從10點到18點的時間,請應用以下公式:
備註:在上式中,數字18是結束時間,並且10代表開始時間。您可以更改它們以滿足您的需求。
然後,將公式拖動並複製到要在兩個給定時間範圍之間生成隨機時間的其他單元格,請參見屏幕截圖:
使用公式以特定間隔生成隨機時間
例如,如果您想要在Excel中以特定間隔產生隨機時間,例如以15分鐘的間隔插入隨機時間。為了處理這項工作,您可以使用TEXT函數中的RAND和FLOOR函數。
將下面的公式複製或輸入到空白單元格中,然後將此公式拖動並複製到要獲取隨機時間的單元格中,請參見屏幕截圖:
備註:公式中的數15是時間間隔,如果您需要以30分鐘為間隔的隨機時間,只需將15替換為30。
如果你有Excel的Kutools,其插入隨機數據功能還可以幫助您在工作表中的給定時間之間生成隨機時間。
1.選擇生成時間的單元格範圍。
2.然後點擊庫工具>插入>插入隨機數據,在彈出的對話框中進行如下操作:
如果您想一起生成隨機日期和時間,以下公式可以幫助您。
1.將以下公式輸入或複製到要生成隨機日期時間的單元格中:
備註:在此公式中,2021-10-1512:00:00是結束日期和時間,以及2021-1-19:00:00是開始日期和時間,您可以根據需要對其進行修改。
2.然後,將此公式拖動並複製到您希望顯示隨機日期時間的其他單元格,請參閱屏幕截圖:
本部分將展示如何在Excel365、Excel2021和未來版本中使用新的動態數組函數RANDARRAY產生隨機數、日期、進行隨機選擇以及將資料隨機分配到群組。
RANDARRAY函數用於返回您指定的任意兩個數字之間的隨機數數組。
RANDARRAY函數的語法是:
要在Excel365、Excel2021和未來版本中產生隨機整數或小數,可以使用這個新的RANDARRAY函數。
要創建特定範圍內的隨機數列表,請應用以下公式:
請根據需要輸入以下任何公式,然後按Enter得到結果的關鍵,看截圖:
當使用普通的RANDARRAY函數產生隨機數時,也可能會產生一些重複的數字。為了避免重複,在這裡,我將討論解決此任務的一些公式。
生成非重複隨機數列表
要隨機生成一列或一組唯一數字,通用語法是:
無重複的隨機整數:
無重複的隨機小數:
例如,在這裡,我將插入一個從8到50的100個隨機數列表,沒有重複,請應用以下任何您需要的公式,然後按Enter獲得結果的關鍵:
生成一系列不重複的隨機數
如果要在單元格範圍內生成不重複的隨機數,只需在SEQUENCE函數中定義行數和列數即可,通用語法為:
在這裡,我將使用從8到3的唯一隨機數填充50行和100列的範圍,請應用您需要的以下任何公式:
通過使用這個新的RANDARRAY函數,您還可以快速輕鬆地在Excel中生成多個隨機日期或工作日。
要在兩個特定日期之間創建隨機日期列表,您可以應用以下公式:
1.在空白單元格中輸入以下公式以生成隨機日期,然後按Enter獲取五位數字列表的鍵,請參見屏幕截圖:
2.然後,您應該將數字格式化為正常日期格式:選擇數字,然後右鍵單擊,然後選擇單元格格式從上下文菜單。在下面的單元格格式對話框,請這樣做:
3。然後,單擊OK按鈕,數字將按照您指定的日期格式進行格式化,請參見屏幕截圖:
更多竅門:當然,您也可以直接在公式中輸入開始日期和結束日期,如下所示:
若要在一系列儲存格中產生隨機工作日,請將RANDARRAY函數嵌入WORKDAY函數中。
1.將以下公式輸入或複製到空白單元格中,然後按Enter獲取數字列表的鍵,如下圖所示:
2.然後,根據需要將數字格式化為特定的日期格式單元格格式對話框,您將得到如下螢幕截圖所示的日期格式:
更多竅門:您也可以直接在公式中輸入開始日期和結束日期,如下所示:
在Excel365、Excel2021和未來版本(例如Excel2024)中,如果您想從儲存格清單中產生或傳回一些隨機值,本節將為您介紹一些公式。
要從單元格列表中提取隨機值,這個帶有INDEX函數的RANDARRY函數可以幫到你。通用語法是:
例如,要從名稱列表A3:A2中提取12個名稱,請使用以下公式:
然後,按Enter鍵,你會一次隨機得到3個名字,看截圖:
使用上述公式,您可能會在結果中發現重複項。要從不重複的列表中進行隨機選擇,通用語法是:
如果您需要從名稱列表A5:A2中隨機返回12個名稱,請輸入或複制以下公式之一:
然後,按Enter從列表A5:A2中獲取12個隨機名稱的鍵,沒有重複,看截圖:
有時,您可能需要從Excel中的一系列單元格中選取一些隨機行。為了完成這個任務,在這裡,我將講一些公式。
從一系列單元格生成隨機行的通用語法是:
要從區域A3:C2中提取12行數據,請使用以下任一公式:
然後,按Enter從範圍A3:C2中獲取12個隨機數據行的鍵,請參見屏幕截圖:
同樣,上述公式也可以產生重複數據。為防止出現重複行,您可以使用以下通用語法:
例如,要從區域A5:C2中提取12行數據,請使用以下任一公式:
然後,按Enter鍵,將從範圍A5:C2中提取沒有重複的12個隨機行,如下圖所示:
您可能已經注意到本文中的所有隨機化函數(例如RAND、RANDBETWEEN和RANDARRAY)都是不穩定的。每次換表時都會重新計算產生結果,並隨機產生新值。要阻止隨機值自動更改,這裡有兩個快速技巧。
通常,您可以應用複製和粘貼將動態公式複制並粘貼為值的功能,請執行以下操作:
1.選擇帶有隨機公式的單元格,然後按按Ctrl+C複製它們。
2.然後,右鍵單擊所選範圍,然後單擊價值觀選項從粘貼選項部分,請參見屏幕截圖:
更多竅門:您也可以按SHIFT+F10進而V激活此選項。
3.並且所有公式單元格都將轉換為值,隨機值將不再改變。
如果你已經安裝Excel的Kutools是,到實際功能可以幫助您一鍵將所有選定的公式單元格轉換為值。
1.選擇帶有隨機公式的單元格,然後單擊庫工具>到實際,請參見屏幕截圖: