用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的下拉自動生成公式的功能,我們就可以快速的獲取成百上千的隨機資料了。
覺得不錯,歡迎分享給更多朋友。