我想提取字符串中第二个“-”之后的文本举个例子原文|后萃取8L47-C822O26-KMIX|-KMIX9L47-C822M26-BFX|-BFX6L47-C822N27-GLKX|-GLKX使用下面列出的功能,仅左,右,中,镜头,查找,搜索和修剪
raogr8fs1#
=RIGHT(A2,LEN(A2)-FIND("-",A2,FIND("-",A2)+1)+1)
为了防止#VALUE!当没有足够的破折号,你可以使用IFERROR...
#VALUE!
IFERROR
=IFERROR(RIGHT(A2,LEN(A2)-FIND("-",A2,FIND("-",A2)+1)+1),"")
...或者对于更旧版本的Excel,您可以使用...
=IF(ISERROR(FIND("-",A3,FIND("-",A3)+1)),"",RIGHT(A3,LEN(A3)-FIND("-",A3,FIND("-",A3)+1)+1))
...揭示了表达式FIND("-",A3,FIND("-",A3)+1)的重要性,第二次出现的位置。
FIND("-",A3,FIND("-",A3)+1)
o75abkj42#
如果你是在***Microosft-365***然后可以尝试-
=TAKE(TEXTSPLIT(A2,"-"),,-1)
对于Excel-2013和更高版本,请使用FILTERXML()。
FILTERXML()
=FILTERXML("<t><s>" &SUBSTITUTE(A2,"-","</s><s>") & "</s></t>","//s[last()]")
对于所有版本-
=TRIM(RIGHT(SUBSTITUTE(A2,"-",REPT(" ",100)),100))
zfycwa2u3#
这些是真正的老派电子表格方法:
搜索、镜头、右镜头、修剪:
=TRIM(RIGHT(A2,(LEN(A2))-(SEARCH("-",A2,(SEARCH("-",A2))+1))+1))
查找、镜头、中间、修剪:
=TRIM(MID(A2,FIND("-",A2,FIND("-",A2)+1),(LEN(A2))-(FIND("-",A2,FIND("-",A2)+1))+1))
样本
a14dhokn4#
像这样使用find():
=find("-",A1,find("-",A1,1)+1)
内部查找将返回第一个“-”的位置,而加1使外部查找查找第二个。然后在MID()中使用该结果,如下所示:
=mid(A1,find("-",A1,find("-",A1,1)+1)+1,100)
这将在第二个“-”之后返回100个字符。幸运的是,mid()和find()是与版本无关的,它们在你列出的函数列表中。
6kkfgxo05#
=MID(A2,FIND("-",A2,FIND("-",A2)+1),LEN(A2)-FIND("-",A2,FIND("-",A2)+1)+1)
5条答案
按热度按时间raogr8fs1#
第二次出现破折号后(含)
为了防止
#VALUE!
当没有足够的破折号,你可以使用IFERROR
......或者对于更旧版本的Excel,您可以使用...
...揭示了表达式
FIND("-",A3,FIND("-",A3)+1)
的重要性,第二次出现的位置。o75abkj42#
如果你是在***Microosft-365***然后可以尝试-
对于Excel-2013和更高版本,请使用
FILTERXML()
。对于所有版本-
zfycwa2u3#
这些是真正的老派电子表格方法:
搜索、镜头、右镜头、修剪:
=TRIM(RIGHT(A2,(LEN(A2))-(SEARCH("-",A2,(SEARCH("-",A2))+1))+1))
查找、镜头、中间、修剪:
=TRIM(MID(A2,FIND("-",A2,FIND("-",A2)+1),(LEN(A2))-(FIND("-",A2,FIND("-",A2)+1))+1))
样本
a14dhokn4#
像这样使用find():
内部查找将返回第一个“-”的位置,而加1使外部查找查找第二个。
然后在MID()中使用该结果,如下所示:
这将在第二个“-”之后返回100个字符。
幸运的是,mid()和find()是与版本无关的,它们在你列出的函数列表中。
6kkfgxo05#