在前面的函数讲解中,我们谈到了RAND函数,它可以生成从0到1的随机数。我在之前的文章《RAND()函数和TIME()函数,随机事件的偶然发生及实现的可能过程》中也详细解释了这个函数的用法。有热心读者提问:如何在EXCEL中随机生成字母和数字的序列?我们今天就来回答这个问题。
在回答这个问题之前,请先回顾一下RAND函数。这个函数会生成一个随机数,大于等于0小于1,是十进制数。同时也讲了这个函数的两种使用方法:一种是生成A和B之间的随机数(A随机数B):公式=RAND()*(B-A) A如:输入:=RAND()*9 1生成1到10之间的随机数,
第二种是生成A和B之间的随机整数(A随机数B):公式=INT(RAND()*(B-A) A)
例如,输入:=INT(RAND()*9 1)生成一个介于1和10之间的随机整数。
那么我们可以用这个函数来解决上面的问题吗?是的,但是今天我要讲的是RAND函数的一个扩展函数:RANDBETWEEN。
RANDBETWEEN函数3360返回两个指定数字之间的随机整数。每次计算工作表时,都会返回一个新的随机整数。语法RANDBETWEEN(bottom,top)Bottom参数:RANDBETWEEN将返回的最小整数。Top参数:RANDBETWEEN将返回的最大整数。
但需要注意的是,EXCEL 03版的设置如下:点击工具、外接程序、弹出外接程序,查看分析工具库,确认并退出,然后重启EXCEL。
示例:=RANDBETWEEN(1,100)将返回大于或等于1且小于或等于100的随机整数(变量)。其实这是上面RAND函数的扩展应用。
那么字母是如何产生的呢?这个问题我之前的文章《CHAR函数实现将数字转字母,结合IF()等函数实现多种实用功能》也有提到。今天我只是简单回顾一下CHAR函数。
CHAR函数:返回数字代码对应的字符。语法:CHAR(数字)。参数:Number是用于转换的字符代码,范围从1到255(使用当前计算机字符集中的字符)。当数字65=CHAR(65)时,结果是字母' A ',数字' 65~90 '是大写字母(A~Z)。只要我们定义了CHAR的可变范围,就很容易随机生成字母。
为了实现随机生成数字和字母组合的问题,我们不得不解决每个数字填充的是字母还是数字的问题,这也是通过随机事件来解决的。既然各有50%的概率,我们不妨以50%作为认识这种随机性的基础。
现在所有的问题都解决了,让我们看看最终的实现:
第一位数为1时生成方案的实现:
公式
=IF(RAND()0.5,CHAR(RANDBETWEEN(65,90)),RANDBETWEEN(0,9))
说明:CHAR(RANDBETWEEN(65,90))会产生字母A到Z,
RANDBETWEEN(0,9)将产生0到9之间的数字。
If (rand () 0.5,char (rand between (65,90)),rand between (0,9))随机数大于0.5时产生字母,小于0.5时产生数字。
假设需要生成6位数字和字母的随机字符,然后重复上述公式6次,中间用''连接。看下面的公式截图。由于篇幅原因,我只做了部分截图:
查看下面的输出结果:
按F9刷新,看结果随机变化。
至此,问题圆满解决。