|
- =CHAR(LARGE(ROW(INDIRECT("1:26"))+{31,64,96},INT(RAND()*62+1)))
复制代码 数组公式:Ctrl+Shift+Enter结束
思路解析:
在ANSI字符集里,数字0~9的代码为48~57,A~Z的代码为65~90,a~z的代码为97~122
因此,利用ROW函数产生的1~26分别加上{31,64,96}就可以产生32~57、65~90、97~122的字符代码数字集合,
再利用LARGE函数从大到小利用随机数1~62的随机数,自动过滤掉32~47之间的代码值,就必定包含所有数字和字母的代码值,最后通过CHAR函数转化得到结果
上面的公式还可以简化为:
- =CHAR(-SMALL(-ROW(1:26)-{31,64,96},RAND()*62+1))
复制代码
|
|