我正在尝试使用公式(没有文本到列)在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
答案 0 :(得分:6)
试试这个:
=TRIM(MID(A2, 6, FIND("-",A2,6) - FIND("-",A2) - 2))
如果硬编码6不正常,您可以用FIND(“ - ”,A2)+ 1替换它。
答案 1 :(得分:0)
您可以从以下链接获得帮助,非常有用,
http://www.mrexcel.com/forum/excel-questions/444266-extract-string-between-two-characters.html
答案 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)))," ",""))
你会得到:
净
草
苹果
最好的注册。