SQL专栏

SQL数据库基础知识汇总

SQL数据库高级知识汇总

做数据分析的同学,可能经常会遇到造数据的问题。一个个手工造那可真是累死人了,去网上找又不一定能找到合适的。

今天教大家如何快速生成随机测试数据。

先给大家看一下我生成的随机数据,如下图:

(有人肯定看到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(94RAND())+160)&CHAR((INT(16+RAND()38+160)256)+INT(94RAND())+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的下拉自动生成公式的功能,我们就可以快速的获取成百上千的随机数据了。

觉得不错,欢迎分享给更多朋友。

©著作权归作者所有:来自51CTO博客作者mb5fd8698f60f87的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. C++入门第一课(命名空间;输入输出;缺省参数;函数重载)
  2. python实现域名解析
  3. 子类初始化父类的二种方法
  4. python获取文件md5
  5. C语言学习第八天【函数递归】
  6. C语言
  7. js事件与常用函数
  8. Python中的arange是什么?和range有什么不同?
  9. VS库函数的找寻

随机推荐

  1. android httpclient基本用法
  2. Android 应用程序签名、发布
  3. 获取Android SDK 源代码并在Eclipse中关
  4. Android下基于XML的Graphics
  5. Android AsyncTask理解及简单用法
  6. 图解YU12、I420、YV12、NV12、NV21、YUV4
  7. Android数据存储方式:SharePreference、SQ
  8. Android学习笔记: Android动画特效
  9. BaseRecyclerViewAdapterHelper
  10. android 关于自定义Application的使用