通过公式从单元格中提取数据但不提取部分数据

Extracting Data from the Cell Through Formula But does not pull some of the data

我一直在从我需要更多结果的单元格中提取数据,但我的公式正在提取一些数据,而不是我需要的全部数据。

我在下面附上了 sheet 如果能得到帮助,我将不胜感激。

我的公式。

=ArrayFormula(TRIM(REGEXREPLACE(A3:A,"\.\.\.(.*)|\*\*\*","")))
=ArrayFormula(IFERROR(TRIM(REGEXEXTRACT(A3:A, "DONE=>\s*.+\b"))))

https://docs.google.com/spreadsheets/d/1MKC1OWIj64v_mmuNM6mLFY9wMgLwl2mUxm6KnsM5arE/edit#gid=0

您可以使用的正则表达式是

=ArrayFormula(TRIM(REGEXREPLACE(A3:A,"(\*{3}.*?)(?:\s*\.{3}DONE=>.*)?(\*{3})$"," ")))
=ArrayFormula(IFERROR(TRIM(REGEXEXTRACT(REGEXREPLACE(A3:A, "^([^-]*-)[^-]+-", ""), ".*DONE=>.*"))))

参见first regex demo and the second regex demo。第三个 - .*DONE=>.* - 只是 returns 所有包含 DONE=> 的字符串。

详情:

  • (\*{3}.*?) - 第 1 组 (</code>):三个 <code>* 个字符,然后是除换行符以外的任何零个或多个字符,尽可能少
  • (?:\s*\.{3}DONE=>.*)? - 零个或多个空格的可选字符串,***DONE=>,然后是字符串的其余部分
  • (\*{3}) - 第 2 组 (</code>):<code>*** 字符串
  • $ - 字符串结尾。

^([^-]*-)[^-]+- 匹配

  • ^ - 字符串开头
  • ([^-]*-) - 第 1 组 (</code>):除 <code>- 之外的任何零个或多个字符,然后是 -
  • [^-]+- - - 以外的一个或多个字符,然后是 - 个字符。

你说“谢谢,但它包括 ? 最后的值”

满足您需求的全新配方
我们把前半部分和后半部分放在一起 &

=ArrayFormula(IF(REGEXMATCH(A2:A,"MUKHML"),TRIM((REGEXEXTRACT(A2:A,"^[^-]*")&REGEXREPLACE(A2:A,".*\?|.* COMPLEXIES",""))),""))


像 Wiktor 一样使用这个新公式

=ArrayFormula(IF(REGEXMATCH(A2:a,"MUKHML"),REGEXREPLACE(A2:a,"^([^-]*-)[^-]+-",""),""))