随机添加选定的字符填充四个和五个长码到十个长度
我有一些价格代码,例如BBAXV
和GGZT
。 我想通过预先将字母F,B,A,G,O,J,L,C,E以外的字母随机地加长到10个字符。 例如:
BBAXV to ZKXMIBBAXV GGZT to VWWPDRGGTZ
我试着用Len
和CHAR(RANDBETWEEN(65,90)
…
有什么办法从select的字母中生成随机string,然后将其与当前的价格代码结合起来?
使用RANDBETWEEN的MID函数为未分配字母列表中的每个附加字母提供起始位置。
=mid("DHIKMNPQRSTUVWXYZ", randbetween(1, 17), 1)
然而,你将不得不知道有多less个字符开始,或者只是提供太多的字符而截断多余的字符。
=RIGHT(MID("DHIKMNPQRSTUVWXYZ", RANDBETWEEN(1, 17), 1)& MID("DHIKMNPQRSTUVWXYZ", RANDBETWEEN(1, 17), 1)& MID("DHIKMNPQRSTUVWXYZ", RANDBETWEEN(1, 17), 1)& MID("DHIKMNPQRSTUVWXYZ", RANDBETWEEN(1, 17), 1)& MID("DHIKMNPQRSTUVWXYZ", RANDBETWEEN(1, 17), 1)& MID("DHIKMNPQRSTUVWXYZ", RANDBETWEEN(1, 17), 1)& MID("DHIKMNPQRSTUVWXYZ", RANDBETWEEN(1, 17), 1)& MID("DHIKMNPQRSTUVWXYZ", RANDBETWEEN(1, 17), 1)& MID("DHIKMNPQRSTUVWXYZ", RANDBETWEEN(1, 17), 1)& MID("DHIKMNPQRSTUVWXYZ", RANDBETWEEN(1, 17), 1)& A1&"", 10)
这可能看起来很复杂,但事实上,它比您使用INDIRECT收到的其他数组公式的工作量less得多。 是的,您可以完全按照原样使用该公式,以便换行可以提高可读性。
作为您的想法,请尝试:
=CHAR(RANDBETWEEN(80,90))&CHAR(RANDBETWEEN(80,90))&CHAR(RANDBETWEEN(80,90))&CHAR(RANDBETWEEN(80,90))&CHAR(RANDBETWEEN(80,90))&IF(LEN(A1)=4,CHAR(RANDBETWEEN(80,90)),"")&A1