Excel公式获取2个字符之间的string

我试图dynamic提取Excel中的2个字符之间的string使用公式(没有文本到列)。 示例数据是:

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

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

我尝试使用一个公式,但我想我错过了一些东西,因为这也返回最后一个string。

式:

 =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 

尝试这个:

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

如果硬编码6不好,你可以用FIND(“ – ”,A2)+ 1代替。

你可以从下面的链接获得帮助,它非常有用,

http://www.mrexcel.com/forum/excel-questions/444266-extract-string-between-two-characters.html

我用这个和工作。

 =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)))," ","")) 

你会得到:

蓝色的小部件
绿色

是你想得到最后一部分,我的意思是在第二个string“ – ”之后使用这个

 =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)))," ","")) 

你会得到:



苹果

最好的队友