【问题标题】:Excel random value from a string containing substrings来自包含子字符串的字符串的 Excel 随机值
【发布时间】:2021-10-28 16:12:23
【问题描述】:

我有这个定义为“Table1”的表。

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

我想获得一个公式来随机获取其中一个子字符串。

Excel 版本:Excel 365

提前致谢。

【问题讨论】:

    标签: excel random excel-formula textjoin


    【解决方案1】:

    我们可以使用 FILTERXML 分割字符串,使用 INDEX 与 RANDBETWEEN 随机选择其中一项:

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

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

    【讨论】:

      【解决方案2】:

      您可以使用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 会删除分隔符和任何多余的空格。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多