我在一列中有地址。我只需要将该列中除一个之外的最后一个名称拆分为另一列。
除一个子字符串外的最后一个子字符串由左右两侧的空格分隔。
单元格A2中的内容是";经由米兰,25罗马RM";并且我在单元格B2中输入了下面的公式(我需要单元格B2中的"ROMA"(
我尝试使用以下公式:
=MID(A2,FIND(CHAR(1),SUBSTITUTE(A2," ",CHAR(1),LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))+1,LEN(A2))
但它返回给定字符串中的最后一个子字符串(在这种情况下为"RM"(。无法修改它以获得除一个子字符串之外的最后一个子字符串。如果有用:当前使用macOS Catalina 10.15.7。
编辑:字符串地址总是以相同的方式格式化";经由"街道名称""门牌号"comune"省";。
你可以做一些可怕的事情:
=LEFT(
RIGHT(
SUBSTITUTE(A2," ","!",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1),
LEN(SUBSTITUTE(A2," ","!",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))-
SEARCH("!", SUBSTITUTE(A2," ","!",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))),
SEARCH(" ",
RIGHT(SUBSTITUTE(A2," ","!",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1),
LEN(SUBSTITUTE(A2," ","!",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))-
SEARCH("!", SUBSTITUTE(A2," ","!",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1)))))
尽管我确信有更快/更干净的方法可以得到你想要的东西。注意"quot;只是被选为一个不会出现在字符串中的字符。还要注意,这就是为什么最佳实践是将最小的数据块存储为单独的项,而不是存储在一个字符串中!
请求编辑:如果你只是想把所有东西都放在逗号的右边和空格的左边(例如"25"来自"Via Milano,25 ROMA RM"(,你可以使用下面的
=LEFT(
TRIM(RIGHT(A2,LEN(A2)-SEARCH(",",A2))),
SEARCH(" ", TRIM(RIGHT(A2,LEN(A2)-SEARCH(",",A2)))))