从 Excel 中的括号中提取文本
Extract text from parentheses in Excel
我有一个 Excel 列表,其中我需要括号内的文本。
例如
From
Gene name
Column I need
O70257
syntaxin 7(Stx7)
Stx7
Q7TQ90
alcohol dehydrogenase 5 (class III), chi polypeptide(Adh5)
Adh5
我尝试了以下功能,正如此处先前答案中所建议的那样:
=MID(text,SEARCH("(",text)+1,SEARCH(")",text)-SEARCH("(",text)-1)
它适用于第一行,但对于第二行它仅 returns 第一个括号内容 (class III)。有没有办法只取最后括号中的文字?
您可以尝试如下图所示,
单元格中使用的公式 C2
=SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(B2,"(",REPT(" ",100)),100)),")","")
另一种方式,
=SUBSTITUTE(FILTERXML("<t><s>"&SUBSTITUTE($B2,"(","</s><s>")&"</s></t>","//s[last()]"),")","")
所以这是一个不同的版本:
没有错误检查,非常简单,使用两次查找来获取第二个括号的位置。
Mid 使用 find 来获取开始和结束。
万一可以使用新功能(目前处于 Beta 阶段):
=TEXTBEFORE(TEXTAFTER(A1,"(",-1),")")
或者:
=TAKE(TEXTSPLIT(A1,{"(",")"},,1),,-1)
或者:
=TEXTAFTER(SUBSTITUTE(A1,")",""),"(",-1)
都行。
我有一个 Excel 列表,其中我需要括号内的文本。 例如
From | Gene name | Column I need |
---|---|---|
O70257 | syntaxin 7(Stx7) | Stx7 |
Q7TQ90 | alcohol dehydrogenase 5 (class III), chi polypeptide(Adh5) | Adh5 |
我尝试了以下功能,正如此处先前答案中所建议的那样:
=MID(text,SEARCH("(",text)+1,SEARCH(")",text)-SEARCH("(",text)-1)
它适用于第一行,但对于第二行它仅 returns 第一个括号内容 (class III)。有没有办法只取最后括号中的文字?
您可以尝试如下图所示,
单元格中使用的公式 C2
=SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(B2,"(",REPT(" ",100)),100)),")","")
另一种方式,
=SUBSTITUTE(FILTERXML("<t><s>"&SUBSTITUTE($B2,"(","</s><s>")&"</s></t>","//s[last()]"),")","")
所以这是一个不同的版本:
没有错误检查,非常简单,使用两次查找来获取第二个括号的位置。 Mid 使用 find 来获取开始和结束。
万一可以使用新功能(目前处于 Beta 阶段):
=TEXTBEFORE(TEXTAFTER(A1,"(",-1),")")
或者:
=TAKE(TEXTSPLIT(A1,{"(",")"},,1),,-1)
或者:
=TEXTAFTER(SUBSTITUTE(A1,")",""),"(",-1)
都行。