2013-07-02 70 views
0

我這是在一個Excel spreadsheet個體串地址列表:當地址格式不一致時,如何將Excel中單個單元格的街道地址解析爲單個單元格?

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,StateZip

我的想法是從右側開始並根據空格分隔符提取信息,但我不確定如何執行此操作。我將如何去做這件事?

+0

根據您非常有限的示例,首先使用逗號分隔符進行解析。接下來,對部分空白且部分佔據的列進行排序。然後分割基於空格分隔的選擇? – pnuts

回答

0

我想你可以做MID & FIND提取部分地址的組合,

例如

=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) 

而最後一部分是我們剛剛插入的@字符。

相關問題