资源描述:
《Excel-随机生成英数字.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Excel-随机生成英数字 在Excel的工作表中,如果想要随机生成一个可能是英文字或是数字,该如何处理? 【基本概念】 参考下图左,可知数字的ASCII码,位于48~57,大写字母位于65~90,小写字母位于97~122。 【设定公式】 先想想以下的公式: 生成随机0~9:{=CHAR(LARGE(ROW($48:$57),INT(RAND()*10+1)))} 生成随机A~Z:{=CHAR(LARGE(ROW($65:$90),INT(RAND()*26+1)))} 生成随机a~z:{=CHAR(LARGE(ROW($97:$1
2、22),INT(RAND()*26+1)))} 这三个是数组公式,输入完成要按Ctrl+Shift+Enter键。 本例可以如下做法: 单元格L2:=CHAR(LARGE(ROW($1:$26)+{31,64,96},INT(RAND()*62+1))) 这是数组公式,输入完成要按Ctrl+Shift+Enter键。 复制单元格L2,往下各行粘贴。 【原理解析】 公式中: 使用CHAR函数可以将一个10进制数,找出对应的字符。 ROW($1:$26):生成1~26的数列。 ROW($1:$26)+{31,64,96}:可以生成3
3、2~57、65~90、97~122的数列。 因为数字的ASCII码,位于48~57,大写字母位于65~90,小写字母位于97~122。 所以33~47之间数列,并不是我们想要的范围。 INT(RAND()*62+1):生成1~62之间的随机整数。 配合LARGE函数,可以取122~48之间的数。 【列举】 单元格L2:{=CHAR(LARGE(ROW($1:$26)+{31,64,96},INT(RAND()*62+1)))} 假设INT(RAND()*62+1)随机数生成10。公式要找数列中第10个大的数字: 33,65,97;3
4、4,66,98;35,67,99;36,68,100;37,69,101;38,70,102;39,71,103;40,72,104;41,73,105;42,74,106;43,75,107;44,76,108;45,77,109;46,78,110;47,79,111;48,80,112;49,81,113;50,82,114;51,83,115;52,84,116;53,85,117;54,86,118;55,87,119;56,88,120;57,89,121;58,90,122; 由式中由大到小的第10个为“113”,对应的字符为“q”
5、。 因为随机数的最大值是62,也就是说只有由大到小的前62个数字有机会被挑选到。因此33~47永远不会被挑选到。