通过公式从单元格中提取数据但不提取部分数据
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,"^[^-]*")®EXREPLACE(A2:A,".*\?|.* COMPLEXIES",""))),""))
像 Wiktor 一样使用这个新公式
=ArrayFormula(IF(REGEXMATCH(A2:a,"MUKHML"),REGEXREPLACE(A2:a,"^([^-]*-)[^-]+-",""),""))
我一直在从我需要更多结果的单元格中提取数据,但我的公式正在提取一些数据,而不是我需要的全部数据。
我在下面附上了 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,"^[^-]*")®EXREPLACE(A2:A,".*\?|.* COMPLEXIES",""))),""))
像 Wiktor 一样使用这个新公式
=ArrayFormula(IF(REGEXMATCH(A2:a,"MUKHML"),REGEXREPLACE(A2:a,"^([^-]*-)[^-]+-",""),""))