回答

回答

我有以下字符串:

AA_Foo_Bar - ABC123.blah.com

我想要检索Bar. 即第二个下划线和该下划线后的空格之间的文本。

我有这个,但它不太正确(其中 A2 是值):

=MID(A2, SEARCH("_",A2) + 1, SEARCH("_",A2,SEARCH("_",A2,)+1) - SEARCH(" ",A2) - 1)

答案1

回答

=MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"_",CHAR(1),2))+1,FIND(CHAR(1),SUBSTITUTE(A1," -",CHAR(1),1))-FIND(CHAR(1),SUBSTITUTE(A1,"_",CHAR(1),2)))

解释

首先找到第二个下划线的索引(答案 = 7)

=FIND(CHAR(1),SUBSTITUTE(A1,"_",CHAR(1),2))

接下来找到空格 + 破折号 ( ) 的第一个实例的索引" '"(答案 = 11):

=FIND(CHAR(1),SUBSTITUTE(A1," -",CHAR(1),1))

现在从第一个索引 (+1 以切掉下划线) 获取字符串,这意味着:

=MID(A1,7+1,11-7)

现在只需7FIND(CHAR(1),SUBSTITUTE(A1,"_",CHAR(1),2))11替换FIND(CHAR(1),SUBSTITUTE(A1," -",CHAR(1),1)),Bob 就是你妈妈的兄弟。

答案2

尝试:

=FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A1," - ","_"),"_","</s><s>")&"</s></t>","//s[3]")

不太优雅的(在我看来)可能是:

=TRIM(MID(SUBSTITUTE(SUBSTITUTE(A1," - ","_"),"_",REPT(" ",100)),200,100))

相关内容