EXCEL如何随机组合几个单元格内的文字 且不重复

EXCEL如何随机组合几个单元格内的文字 且不重复,第1张

每个单元格一个文字,可以取出随机不重复的内容。形如下表:

A列为随机来源数量的自然数序列

B列为随机数:=RAND()

C列为随机需求数量的自然数序列

D列为结果:D2=INDEX($A$2:$A$61,MATCH(SMALL($B$2:$B$61,C2),$B$2:$B$61,))

打开wps office; 在A1单元格输入=rand();输入完成,下拉单元格,生成随机数;在B1单元格输入=rank(a1,a:a),单元格下拉(按照需要的量);生成随机不重复的整数,详细步骤:

1、打开wps office。

2、在A1单元格输入=rand()。

3、输入完成,下拉单元格,生成随机数。

4、在B1单元格输入=rank(a1,a:a),单元格下拉(按照需要的量)。

5、生成随机不重复的整数。

不重复可能有点难,生成公式如下:

=CHAR(RANDBETWEEN(65,91))&TEXT(RANDBETWEEN(1,99),"00")

输入公式到一个单元格,复制并下拉即可

1、生成随机数字

(1)生成随机数比较简单,=rand()即可生成0-1之间的随机数;

(2)如果要是整数,就用=int(rand())10,表示0至9的整数,以此类推;

(3)如果要生成a与b之间的随机实数,就用=rand()(b-a)+a,如果是要整数就用=int(rand()(b-a))+a;稍微扩充一下,就能产生固定位数的整数了。

注意:如果要使用函数rand()生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=rand()”,保持编辑状态,然后按F9,将公式永久性地改为随机数。不过,这样只能一个一个的永久性更改,如果数字比较多,也可以全部选择之后,另外选择一个合适的位置粘贴,粘贴的方法是点击右键,选择“选择性粘贴”,然后选择“数值”,即可将之前复制的随机数公式产生的数值(而不是公式)复制下来!

2、产生随机字母

随机小写字母:=CHAR(INT(RAND()26)+97)

随机大写字母:=CHAR(INT(RAND()26)+65)

随机大小写混合字母:=CHAR(INT(RAND()26)+if(INT(RAND()2)=0,65,97))

3、产生随机的六位数的字母和数字混合

=CONCATENATE(IF(INT(RAND()2)=0,CHAR(INT(RAND()9+48)),IF(INT(RAND()2)=0,CHAR(INT(RAND()25+65)),CHAR(INT(RAND()25+97)))),IF(INT(RAND()2)=0,CHAR(INT(RAND()9+48)),IF(INT(RAND()2)=0,CHAR(INT(RAND()25+65)),CHAR(INT(RAND()25+97)))),IF(INT(RAND()2)=0,CHAR(INT(RAND()9+48)),IF(INT(RAND()2)=0,CHAR(INT(RAND()25+65)),CHAR(INT(RAND()25+97)))),IF(INT(RAND()2)=0,CHAR(INT(RAND()9+48)),IF(INT(RAND()2)=0,CHAR(INT(RAND()25+65)),CHAR(INT(RAND()25+97)))),IF(INT(RAND()2)=0,CHAR(INT(RAND()9+48)),IF(INT(RAND()2)=0,CHAR(INT(RAND()25+65)),CHAR(INT(RAND()25+97)))),IF(INT(RAND()2)=0,CHAR(INT(RAND()9+48)),IF(INT(RAND()2)=0,CHAR(INT(RAND()25+65)),CHAR(INT(RAND()25+97)))))

4、随机不重复数字序列的生成方法

有些情形下,我们需要生成一个不重复的随机序列。

比如:我们要模拟洗牌,将一副扑克牌去掉大小怪后剩下的52张打乱。

比较笨的方法是在1-52间每生成一个随机数后,检查该随机数是否出现过,如果是第一次出现,就放到序列里,否则重新生成一个随机数作检查。在 excel worksheet里面用这种办法,会造成if多层嵌套,不胜其烦,在VBA里面做简单一些,但是效率太差,越到序列的后端,效率越差。

当然也有比较好的办法,在VBA里面,将a(1)-a(52)分别赋予1-52,然后做52次循环,例如,第s次生成一个1-52间的随机数r,将a(s)与a(r)互换,这样的话,就打乱了原有序列,得到一个不重复的随机序列。

VBA里这个算法是很容易实现的,但是,出于通用性和安全考虑,有的时候我们并不希望用VBA,我们来看看在worksheet里面如何利用内置函数实现这个功能。

(1)在A1-A52间填入"=INT(RAND()52)+1",产生1-52间的随机数,注意这里是有重复的

(2)在B1-B52间填入1-52

(3)在C54-BB54填入1-52

(4)在C1填入"=IF(ROW()=C$54,INDEX(B$1:B$52,INDEX($A$1:$A$52,C$54)),IF(ROW()=INDEX($A$1:$A$52,C$54),INDEX(B$1:B$52,C$54),B1))"。

分项解释:

a:ROW()=C$54,如果当前行等于当前交换所排的序号

b:INDEX(B$1:B$52,INDEX($A$1:$A$52,C$54)),返回在B1到B52中选择A1:A52中的第C54个值

c:IF(ROW()=INDEX($A$1:$A$52,C$54),否则的话,如果当前行等于A1:A52中第C54个值,则:

d:INDEX(B$1:B$52,C$54),返回B1:B52中的第C54个值

e:若以上条件都不满足,则返回B1

(5)将C1复制到C1:BA52这个区域里面

(6)在BA1:BA52中,我们就得到了一个不重复的随机序列,按F9可以生成一个新序列。

可以使用EXCEL自带的函数公式来实现,选择一个单元格在单元格中输入=RANDBETWEEN,即可实现,具体的 *** 作方法如下:

1、在电脑上打开EXCEL文件,选择一个空白的单元格,在单元格中输入=RANDBETWEEN。

2、可以看到当前显示的为未识别结果,在该公式的后面输入(1,100)即表明产生的数据在1和100之间随机出现。

3、在生成结果的单元格的右下角可以看到有个断电的小黑方格,用鼠标拉动该黑方格,即可看到在停止的区域内随机生产的相关数据。

4、如将结果定义为随机生成100到200的数据,改动该公示后面小括号的内容即可。

注意事项:

该种公式所生成的随机数据如出现在多格单元格里面时,是会有重复数据出现的。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11677451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存