我有一个地址列表,这些地址是Excel spreadsheet
中的单个字符串:
123 Sesame St New York, NY 00000
123 Sesame Ct Atlanta, GA 11111
100 Sesame Way, 400 Jacksonville, FL 22222
如上所示,第三个地址不同。它的套件号为400
,通常为street line 2
行。我无法提出将上述地址解析为单个单元格的公式:Street 1
(此行中包含street 2
或套件信息),City
,{{1} }和State
。
我的想法是从右边开始并根据空格分隔符提取信息,但我不知道如何做到这一点。我该怎么做呢?
答案 0 :(得分:0)
我想你可以做MID和amp;的组合寻找提取部分地址,
e.g。
=IF(IFERROR(MID(A1,1,FIND(",",A1,FIND(",",A1)+1)),1)=1,MID(A1, 1, FIND(",",A1)-1),MID(A1,1,FIND(",",A1,FIND(",",A1)+1)-1))
将从单元格A1中提取地址,具体取决于它找到的逗号数量(1或> 1)。
按照上述模式,ZIP和州不会太困难。我认为问题在于提取城市,因为你不知道在哪里设置城市名称和街道之间的限制,除非你有一组有限的街道类型,例如: ct,st,way等。
答案 1 :(得分:0)
除了SUBSTITUTE()
和LEN()
之外,您还可以使用FIND()
和LEFT()
使用略短的公式:
=LEFT(A1,FIND("@",SUBSTITUTE(A1,",","@",LEN(A1)-LEN(SUBSTITUTE(A1,",",""))))-1)
执行的第一部分是:
LEN(A1)-LEN(SUBSTITUTE(A1,",",""))
这基本上计算输入字符串中的逗号数。然后进入下一个公式:
SUBSTITUTE(A1,",","@",[1])
用@
代替最后一次出现的逗号(如果地址有这个,请使用你在地址中找不到的另一个字符)。
=LEFT(A1,FIND("@",[2])-1)
最后一部分将角色带到我们刚插入的@
。