按最后一个分隔符拆分 Excel 单元格

按最后一个分隔符拆分 Excel 单元格

我需要按第一个分隔符(从右到左读取)拆分一个单元格,以便可以将该值放入另一个单元格中。

例如,单元格 A1 中的数据可能如下所示:

"something - more something - a lot more of something - (this is the text I need)"

单元格 B1 需要值“(这是我需要的文本)”

到目前为止我所拥有的是:

=RIGHT(a1,LEN(FIND(RIGHT("-"),a1)))

但这似乎只返回最后一个字符:“)”。

答案1

你需要这个公式:

=MID(A1,FIND("~~~~~",SUBSTITUTE(A1,"-","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,LEN(A1))

分解:

LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))

计算单元格中“-”出现的次数,

SUBSTITUTE(A1,"-","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1,"-","")))

然后将最后一次出现的“-”替换为“~~~~~”。如果“~~~~~”可能在您的输入中正常出现,请在此处使用其他值。

FIND("~~~~~",SUBSTITUTE(A1,"-","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1

找到我们刚刚创建的“~~~~~”的位置,并添加一个,以便我们从其后开始。最后,完整公式使用该位置并MID()提取所需的文本。

答案2

以上两种方法都可以,但这里有一些更容易理解的方法:

=TRIM(RIGHT(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),LEN(A1)))

答案3

尝试一下:

=TRIM(IF(ISERROR(FIND("-",A1)),"",MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,255)))

在此处输入图片描述

相关内容