Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5039|回复: 12

[分享] 仅随机产生字母和数字的技巧

[复制链接]
发表于 2011-7-17 12:34 | 显示全部楼层 |阅读模式
  1. =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函数转化得到结果

上面的公式还可以简化为:

  1. =CHAR(-SMALL(-ROW(1:26)-{31,64,96},RAND()*62+1))
复制代码

发表于 2011-7-22 23:27 | 显示全部楼层
回复

使用道具 举报

发表于 2011-7-23 07:36 | 显示全部楼层
回复

使用道具 举报

发表于 2011-7-23 08:48 | 显示全部楼层
学习了,谢谢!
回复

使用道具 举报

发表于 2011-7-24 09:59 | 显示全部楼层
O(∩_∩)O谢谢
回复

使用道具 举报

发表于 2011-7-24 10:22 | 显示全部楼层
学习了,谢谢!
{:171:}
回复

使用道具 举报

发表于 2011-7-28 23:53 | 显示全部楼层
学习中……
回复

使用道具 举报

发表于 2011-7-29 15:30 | 显示全部楼层
  1. =CHAR(LARGE(ROW(1:26)+{31,64,96},INT(RAND()*62+1)))
复制代码
回复

使用道具 举报

发表于 2011-8-26 09:06 | 显示全部楼层
辛苦了,多谢分享!
回复

使用道具 举报

发表于 2011-9-8 16:34 | 显示全部楼层
谢谢分享。数组是我最不懂得{:021:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-6 11:15 , Processed in 0.248329 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表