我需要按第一个分隔符(从右到左读取)拆分一个单元格,以便可以将该值放入另一个单元格中。
例如,单元格 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)))