如何生成指定年份的随机日期? RAND和RANDBETWEEN很专业!
作者:老菜鸟来源:部落窝教育发布时间:2022-02-24 18:52:23点击:3126
编按:
在Excel里有两个专门生成随机数的函数:RAND和RANDBETWEEN。今天通过几个示例来和大家分享一下随机数的妙用。
示例1:生成指定年份的随机日期
在Excel中,日期的本质是数值,因此可以使用随机数来生成随机日期。
有三个公式都可以实现这个功能。
公式1:=RANDBETWEEN(DATE($A$2,1,1),DATE($A$2,12,31))
公式1中设置2019年1月1日作为随机整数的下限,设置2019年12月31日作为随机
整数的上限,然后利用RANDBETWEEN函数产生随机整数,即可得到2013年的随机日期。
公式2:=DATE($A$2,1,RANDBETWEEN(1,365))
公式2将随机数作为date函数的第三参数,也可以生成指定年份的随机日期。需要注意平年和闰年的差别,平年为365天,闰年为366天。
公式3:=RANDBETWEEN(A$2&-1,(A$2+1&-1)-1)
公式3利用文本合并符&将A2单元格的年份与-1合并,得到字符串“2013-1”,意思是2013年1月1日。同理A2+1&-1得到字符串“2014-1”,再将字符串-1,得到2013年12月31日。按照运算符的运算顺序,+、-号优先于&号,所以(A2+1&-1)需要加括号。这个公式对于Excel公式的计算顺序和日期原理要比较熟悉,不然就不太好理解。
示例2:生成一组不重复的随机整数
有两种方法可以实现这种功能,方法1使用辅助列,方法2使用数组公式。
方法1:使用RAND函数作辅助列,用RANK函数排序生成不重复的随机整数。
B列使用公式=RAND()得到一组随机数,C列使用公式=RANK(B2,$B$2:$B$13)得到每个随机数的排名,这样就间接得到了一组不重复的随机整数。
方法2:使用数组公式=SMALL(IF(COUNTIF($E$1:E1,ROW($1:$10))=0,ROW($1:$10)),INT(RAND()*(11-ROW(1:1))+1))生成10个不重复的随机整数。
如果要生成的随机整数不是10个,就需要修改箭头所指的三个地方。
这个公式的原理比较复杂,就不赘述了。
示例3:生成一组随机的英文字母
思路是使用随机函数产生字母的数字代码,然后使用CHAR函数将其全部转换为英文字母。
首先必须知道大写英文字母的数字代码为65~90,小写英文字母的数字代码为97~122,使用RANDBETWEEN函数产生65~90的随机整数。
然后使用INT(RAND()*2)*32随机返回0或32,目的是实现大小写字母均有50%的出现概率。
最后使用CHAR函数将数字代码转换为英文字母。
最终的公式是:=CHAR(INT(RAND()*2)*32+RANDBETWEEN(65,90))
示例4:利用随机数制作加减乘除练习题
需要5个步骤:
步骤 1:制作题目的编号,使用 TEXT 函数将编号设置为带括号的数字。
公式为=TEXT(ROW(A1),"(0)")
步骤 2:制作随机的加、减、乘、除符号。
公式为=MID("+-×÷",RANDBETWEEN(1,4),1)
步骤 3 :首先判断 C 列是否为乘或除符号,如果是,则产生 1~10 的随机整数,否则产生 0~99 的随机整数。
公式为:=IF(OR(C3={"×";"÷"}),INT(SQRT(RAND()*99))+1,RANDBETWEEN(0,99))
步骤 4 :使用 FIND 函数查询加、减、乘、除符号的位置,通过 CHOOSE 函数选择对应的随机数范围。
公式为:
=CHOOSE(FIND(C3,"+-×÷"),RANDBETWEEN(0,99-D3),RANDBETWEEN(D3,99),RANDBETWEEN(0,INT(99/D3)),RANDBETWEEN(0,INT(99/D3))*D3)
步骤5:最后一列输入=即可,完成后效果见下图。
特别说明:这个例子只是为了学习公式函数之用,并不一定符合实际使用的要求。
本文配套的练习课件请加入QQ群:902294808下载。
做Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和《Excel极速贯通班》直播课全心为你!
扫下方二维码关注公众号,可随时随地学习Excel:
相关推荐:
将excel中的数据按照指定数量进行重复,非得用VBA才能实现吗?
Power Query的数据替换技巧比Excel函数更万能!
版权申明:
本文作者老菜鸟;同时部落窝教育享有专有使用权。若需转载请联系部落窝教育。