用excel生成隨機數的公式(表格如何生成隨機數)

做資料分析的同學,可能經常會遇到造資料的問題。一個個手工造那可真是累死人了,去網上找又不一定能找到合適的。

今天教大家如何快速生成隨機測試資料。

先給大家看一下我生成的隨機資料,如下圖:

(有人肯定看到Name列怎麼這麼奇怪,稍後給大家解釋。)

要生成隨機資料,肯定需要使用到隨機函式,而隨機函式我們知道的有RAND()和RANDBETWEEN(),今天我們的主角就是他們哥倆了。

RAND()函式

RAND()函式返回的隨機數是大於等於 0 及小於 1 的均勻分佈隨機實數,RAND()函式每次計算工作表時都將返回一個新的隨機實數。也就是每重新整理一次,資料就會更新。

RANDBETWEEN()函式

返回大於等於指定的最小值,小於等於指定最大值之間的一個隨機整數。每次計算工作表時都將返回一個新的數值。

例如:

RANDBETWEEN(1,100) 返回一個介於1到100之間的隨機整數。

上面兩個函式都是生成隨機數值的函式,它是怎麼生成中文和日期的呢?下面針對每一列的測試資料,我們來看看是如何做到的。

ID列

這一列沒什麼難度,在第2行和第3行依次輸入1,2然後往下拉,就可以自動生成自增長的整數了。

Name列

首先我們需要知道字元其實是數字程式碼存在系統中的,這裡我們就是要計算出中文在系統中的一個數字範圍,知道這個數字範圍後,我們將這個數字再轉換成字元型別,就是我們的中文了。

以下是中文字元的完整公式:

=CHAR((INT(16 RAND()*38 160)*256) INT(94*RAND()) 160)

   

上面的公式會返回一個隨機的中文字元,而我們的Name列則是將上面的這個公式拼接了3次,所以返回的字元是3個。

具體公式如下:

=CHAR((INT(16 RAND()*38 160)*256) INT(94*RAND()) 160)&CHAR((INT(16 RAND()*38 160)*256) INT(94*RAND()) 160)&CHAR((INT(16 RAND()*38 160)*256) INT(94*RAND()) 160)

   

當然如果你需要姓存在於百家姓之中,就需要先將百家姓額外做成一個資料字典來取其中的某一個,然後再拼接名。

Age列

這個列我們取一個整數範圍即可,這裡我們取的是20到30歲之間。

具體公式如下:

=RANDBETWEEN(20,30)

   

Sex列

性別只有男和女,我們只需要隨機選擇一個即可,

具體公式如下:

=MID("男女",RANDBETWEEN(1,2),1)

   

Phone列

手機號固定是11位,其實我們可以簡單的取10000000000到99999999999即可,但是這裡為了更加的接近現實,我們將公式稍作修改,

具體公式如下:

=1&MID("358",RANDBETWEEN(1,3),1)&RANDBETWEEN(100000000,999999999)

   

Createtime列

取時間的思路是使用系統自帶的NOW()函式,先獲取一個日期格式,然後對這個日期格式進行隨機的增加,就可以得出一系列的隨機日期了。

具體公式如下:

=NOW()-RAND()-RANDBETWEEN(1,500)

   

只要將以上這些公式複製到對應的單元格,再利用Excel的下拉自動生成公式的功能,我們就可以快速的獲取成百上千的隨機資料了。

覺得不錯,歡迎分享給更多朋友。