如何从 Excel 中的一组可用字符串生成随机字符串?

Ash*_*osh 10 microsoft-excel-2007 worksheet-function microsoft-excel microsoft-excel-2010

我想生成一个以任何顺序具有随机字符串值的列。这些字符串值必须来自 ('New', 'Mint', 'Very Good', 'Good', 'Acceptable', 'Poor') 字符串?任何人都可以让我知道如何使用RANDBETWEEN函数来用括号中提到的数据填充我的列?

And*_*ohr 15

如果你只有几个字符串

如果您的字符串在第一列中,您可以使用如下CHOOSE()函数:

=CHOOSE(RANDBETWEEN(1,6),$A$1,$A$2,$A$3,$A$4,$A$5,$A$6)
Run Code Online (Sandbox Code Playgroud)

RANDBETWEEN(1,6)将从 1 到 6 中随机选择一个数字n -CHOOSE然后计算您列出的所有参数(A 列中的字符串)并显示第n项。

在此处输入图片说明

但是,如果你有很多字符串

如果您有多个项目要处理CHOOSE,那么维护这个公式就会变得笨拙。

在这种情况下,插入一个表(我们称之为MyStrings),使用在 A 列中创建一个 ID 列=ROW()-1并将我们的公式切换到 a可能是个好主意VLOOKUP。我们可以使用MIN&MAX结构化引用来动态计算表中有多少个术语,用于RANDBETWEEN

=VLOOKUP(RANDBETWEEN(MIN(MyStrings[ID]),MAX(MyStrings[ID])),MyStrings,2,0)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

现在小心

RANDBETWEEN是一个 volatile 函数,这意味着它会在每次任何其他单元格更改时(工作簿中的任何位置)重新计算。如果您需要将随机生成的字符串在生成后保持不变,则需要复制并粘贴特殊值作为值

如果您使用大量 volatile 函数,它可能会减慢您的工作簿速度,但您可以采取一些措施来缓解这种情况


Exc*_*lll 10

您可以使用INDEXwithRANDBETWEEN来执行此操作。

=INDEX({"New","Mint","Very Good","Good","Acceptable","Poor"},RANDBETWEEN(1,6))
Run Code Online (Sandbox Code Playgroud)

只需在您的列中填写此公式即可。