Excel 来自包含子字符串的字符串的随机值

Excel random value from a string containing substrings

我有这个 table 定义为“Table1”。

我还有一个字符串,其中包含带有分隔符“,”(逗号 + space)的子字符串

我想得到一个公式来随机

Excel版本:Excel365

提前致谢。

我们可以使用 FILTERXML 拆分字符串,使用 RANDBETWEEN INDEX 随机 select 其中一项:

=LET(valarr,FILTERXML("<t><s>"&SUBSTITUTE(A2,",","</s><s>")&"</s></t>","//s"),INDEX(valarr,RANDBETWEEN(1,COUNTA(valarr))))

您可以将结构化引用的 A2 更改为 [@string containing substring]

您可以使用 MIDSEQUENCE 来查找单词:

=LET(
    Txt, "Apple, Orange, Banana, Peach",
    Delim, ",",

    Seq, SEQUENCE(LEN(Txt)),
    TxtArr, MID(Txt, Seq, 1),
    StartArr, FILTER(Seq, (TxtArr = ",") + (Seq = 1)),
    EndArr, FILTER(Seq, (TxtArr = ",") + (Seq = LEN(Txt))),
    LenArr, EndArr - StartArr + 1,
    WordArr, TRIM(SUBSTITUTE(MID(Txt, StartArr, LenArr), Delim, "")),
    INDEX(WordArr, RANDBETWEEN(1, COUNTA(WordArr)))
)

这将创建一个名为 TxtArr 的所有字符串字符数组,然后使用 Filter 查找分隔符。 StartArr(也)包括第一个索引,EndArr 还包括最后一个索引。 LenArr是每个单词的大概长度。使用 TRIMSUBSTITUTE 删除分隔符和任何额外的空格。