谁可以为我解答这个公式 =MID($B$2,ROUND(RAND()*LEN($B$2),0)+1,1)&MID($B$

问题描述:

谁可以为我解答这个公式 =MID($B$2,ROUND(RAND()*LEN($B$2),0)+1,1)&MID($B$3,ROUND(RAND()*LEN($B$3),0)+
=MID($B$2,ROUND(RAND()*LEN($B$2),0)+1,1)&MID($B$3,ROUND(RAND()*LEN($B$3),0)+1,1)&IF(RAND()>0.3,MID($B$3,ROUND(RAND()*LEN($B$3),0)+1,1),"")完成公式是这样的,目的是用来自动化生成姓名,但是在产成的过程中,有单个字的,是否哪里有出错,请高手回答.
1个回答 分类:数学 2014-10-18

问题解答:

我来补答
公式是在B2单元格中取出姓,在B3单元格中取出名.三段公式是相似的,
MID($B$2,ROUND(RAND()*LEN($B$2),0)+1,1)
就是用RAND生成随机数,与B2长度相乘后,四舍五入,得出一个整数;然后在B2中,以这个整数为起点,取1个汉字(或字符).
由于RAND()返回的是大于等于0而小于1的小数,当返回0时,在B2的0位取字符,返回空白;同样当RAND函数返回0.99时,返回结果大于B2的长度,结果也是取出回白字符.如果三段函数中有两段同时返回空白,得出的姓名就只有一个字了.
取姓氏这段函数可改为:MID($B$2,INT(RAND()*LEN($B$2))+1,1)
同样,后面的也可以考虑用INT.
=MID($B$2,INT(RAND()*LEN($B$2))+1,1)&MID($B$3,INT(RAND()*LEN($B$3))+1,1)&IF(RAND()>0.3,MID($B$3,INT(RAND()*LEN($B$3))+1,1),"")
再问: 用你下面的公式试了,还是有单字出现哦。
 
 
展开全文阅读
剩余:2000