Excel公式,以获取2个字符之间的字符串

时间:2014-07-21 17:57:00

标签: excel google-docs

我正在尝试使用公式(没有文本到列)在Excel中动态提取2个字符之间的字符串。样本数据是:

US - Blue Widgets - Net
UK - Green - Grass
UAE - Red - Apples

*请注意,数据没有固定长度

我尝试使用公式,但我认为我遗漏了一些东西,因为它也会在最后-之后返回字符串。

公式:

=TRIM(LEFT(SUBSTITUTE(MID(A2,FIND("|",SUBSTITUTE(A2,"-","|",1))+1,LEN(A2)),"_",REPT(" ",LEN(A2))),LEN(A2)))

返回的是:

Blue Widgets - Net
Green - Grass
Red - Apples

这是我希望它返回的内容:

Blue Widgets
Green
Red

3 个答案:

答案 0 :(得分:6)

试试这个:

=TRIM(MID(A2, 6, FIND("-",A2,6) - FIND("-",A2) - 2))

如果硬编码6不正常,您可以用FIND(“ - ”,A2)+ 1替换它。

答案 1 :(得分:0)

答案 2 :(得分:0)

我用过这个并且工作过。

=IF(ISERROR(SUBSTITUTE(TRIM(LEFT(SUBSTITUTE(MID(A3,FIND("|",SUBSTITUTE(A3,"-","|",1))+1,LEN(A3)),"-",REPT(" ",LEN(A3))),LEN(A3)))," ","")),"",SUBSTITUTE(TRIM(LEFT(SUBSTITUTE(MID(A3,FIND("|",SUBSTITUTE(A3,"-","|",1))+1,LEN(A3)),"-",REPT(" ",LEN(A3))),LEN(A3)))," ",""))

你会得到:

蓝色小部件
绿色
红色

你想得到最后一部分,我的意思是第二部分之后的字符串" - " 使用这个

=IF(ISERROR(SUBSTITUTE(TRIM(LEFT(SUBSTITUTE(MID(A3,FIND("|",SUBSTITUTE(A3,"-","|",2))+1,LEN(A3)),"-",REPT(" ",LEN(A3))),LEN(A3)))," ","")),"",SUBSTITUTE(TRIM(LEFT(SUBSTITUTE(MID(A3,FIND("|",SUBSTITUTE(A3,"-","|",2))+1,LEN(A3)),"-",REPT(" ",LEN(A3))),LEN(A3)))," ",""))

你会得到:



苹果

最好的注册。