从Excel中最后一个位置的包机中删除下一个子string
我有Excel工作表,其中包含类似的数据
地址
XYZ,ABC,口腔白斑
OPN,OPK,PRT
我们-YLJ,TYF,uyfas
oiui,ytfy,tydry – 我们也在bla,bla,bla工作
ytfyt,tyfyt,ghfyt i-hgsd,gsdf-hgd,sdgh, – 我们也在xxx,yy,zzz
ytsfgh,gfasdg,tydsfyt
我想删除字符“ – ”旁边的所有子string,只要它在最后一个位置。
结果应该是这样的
XYZ,ABC,口腔白斑
OPN,OPK,PRT
我们-YLJ,TYF,uyfas
oiui,ytfy,tydry
ytfyt,tyfyt,ghfyt i-hgsd,gsdf-hgd,sdgh
ytsfgh,gfasdg,tydsfyt
我试着用=替代函数,但不能replace数据,因为从“ – ”分隔的最后一个子string是不相似的。
按照你的规格,我会用两列,所以它不是一个很长的公式:
在B1中:
=IFERROR(FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))-1,LEN(A1))
这得到最后一个位置或者全文的长度。
然后在C1:
=LEFT(A1,IF(FIND(",",A1)<B1,B1,LEN(A1)))
这在最后一个检查是否有一个。 如果没有,
那么全文被采取。
编辑:我只现在注意到你编辑的评论。 如果这只是之后的一切- We
,那么我会用这个:
=TRIM(LEFT(A1,IFERROR(FIND("- We",A1)-2,LEN(A1))))