如何从Excel中的单个细胞成单个细胞分析一个街道地址时,地址格式并不一致?

问题描述 投票:0回答:2

我这是在一个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或套房信息),CityStateZip

我的想法是从右边开始并提取基于空间分隔符的信息,但我不知道如何做到这一点。我将如何去吗?

excel excel-formula
2个回答
0
投票

我想你可以做MID的组合与查找,提取部分地址,

EG

=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,方式等。


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)

而最后一部分是需要的字符,直到达到我们刚插入的@


推荐问答