如何从字母表中创建随机长度的随机字符串?

Jen*_*ang 12 string-manipulation microsoft-excel

我想从 Excel 中的字母表中创建一个随机长度的随机字符串。例如,“jlskdjf”、“kjlk”、“kljsodif”等。我该怎么做?

wil*_*son 15

基本的

假设您要从小写字母 (az) 生成随机长度(1-8 个字符)的字符串。

=LEFT( CHAR(RAND()*26+97) & CHAR(RAND()*26+97) & 
       CHAR(RAND()*26+97) & CHAR(RAND()*26+97) & 
       CHAR(RAND()*26+97) & CHAR(RAND()*26+97) & 
       CHAR(RAND()*26+97) & CHAR(RAND()*26+97),
       RAND()*8+1)
Run Code Online (Sandbox Code Playgroud)

每个CHAR(...)生成 1 个随机小写字母。

要使用大写字母 (AZ) 而不是小写字母,您可以替换CHAR(RAND()*26+97)CHAR(RAND()*26+65). 因为AZ的ASCII码是65-90,az的ASCII码是97-122。

为了简单的公式,你可以使用RANDBETWEEN()分析工具库来替代RAND()*xx+yy


先进的

假设您要从特定字符生成随机长度(1-8 个字符)的字符串。

您可以在单元格A1 中输入所需的字符,例如:

abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()
Run Code Online (Sandbox Code Playgroud)

然后,

=LEFT( MID($A$1,RAND()*LEN($A$1)+1,1) & MID($A$1,RAND()*LEN($A$1)+1,1) & 
       MID($A$1,RAND()*LEN($A$1)+1,1) & MID($A$1,RAND()*LEN($A$1)+1,1) &
       MID($A$1,RAND()*LEN($A$1)+1,1) & MID($A$1,RAND()*LEN($A$1)+1,1) &
       MID($A$1,RAND()*LEN($A$1)+1,1) & MID($A$1,RAND()*LEN($A$1)+1,1),
       RAND()*8+1)
Run Code Online (Sandbox Code Playgroud)

每个MID(...)人从 A1 中获得 1 个随机字符。