代码之家  ›  专栏  ›  技术社区  ›  DanCue

拆分如果不是某个单词,也不是前4个字符

  •  -2
  • DanCue  · 技术社区  · 4 月前

    我有一个使用以下结构的列:

    YYYY Month Corporate Word1 Word2
    YYYY Month Corporate Word1 Word2 Word3
    YYYY Month Word1 Word2
    YYYY Month Word1 Word2 Word3
    

    我目前有一个公式,可以将字符串中的每个单词拆分为单独的单元格。

    =IFERROR(SPLIT(A2," "),"")

    这就是我现在得到的:

    字符串 拆分公式 拆分结果2 拆分结果3 拆分结果4 拆分结果5 拆分结果6
    YYYY月公司用语1用语2 YYYY 月份 公司 单词1 文字2
    YYYY月公司用语1用语2用语3 YYYY 月份 公司 单词1 文字2 文字3
    YYYY月份单词1单词2 YYYY 月份 单词1 文字2
    YYYY月份单词1单词2单词3 YYYY 月份 单词1 文字2 文字3

    我想忽略年份和任何提到“公司”的地方。还希望有一个填充整个列的公式,而不必复制相同的公式。当我尝试以下操作时:

    =ARRAY_CONSTRAIN(MAP(A2:A,LAMBDA(x,IFERROR(SPLIT(x," "),""))),COUNTA(A2:A),1)

    它只返回年份。没有提取其他单词。

    这就是我希望的最终结果:

    字符串 拆分公式 拆分结果2 拆分结果3 拆分结果4
    YYYY月公司用语1用语2 月份 单词1 文字2
    YYYY月公司用语1用语2用语3 月份 单词1 文字2 文字3
    YYYY月份单词1单词2 月份 单词1 文字2
    YYYY月份单词1单词2单词3 月份 单词1 文字2 文字3
    1 回复  |  直到 4 月前
        1
  •  1
  •   z..    4 月前

    试试这个:

    =ARRAYFORMULA(
       IFERROR(
         SPLIT(REGEXREPLACE(A2:A, "\d{4}|Corporate", ), " ")
       )
     )