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]
。
您可以使用 MID
和 SEQUENCE
来查找单词:
=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
是每个单词的大概长度。使用 TRIM
和 SUBSTITUTE
删除分隔符和任何额外的空格。
我有这个 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]
。
您可以使用 MID
和 SEQUENCE
来查找单词:
=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
是每个单词的大概长度。使用 TRIM
和 SUBSTITUTE
删除分隔符和任何额外的空格。