从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))))