我有成千上萬的地址格式爲:獨立地址元素在Excel
123快樂街密蘇里州堪薩斯城64521
9812主街明尼阿波利斯,明尼蘇達62154
12佛吉尼亞Ave,Apt 8,Dallas,TX 54334
我想提取地址,城市,州,郵編到單個單元格(如果可能,不使用VB)。我已經嘗試過發佈其他方法的幾個變體,但是我無法得到理想的結果。
我有成千上萬的地址格式爲:獨立地址元素在Excel
123快樂街密蘇里州堪薩斯城64521
9812主街明尼阿波利斯,明尼蘇達62154
12佛吉尼亞Ave,Apt 8,Dallas,TX 54334
我想提取地址,城市,州,郵編到單個單元格(如果可能,不使用VB)。我已經嘗試過發佈其他方法的幾個變體,但是我無法得到理想的結果。
分析你的問題!
廣告1)正確的片段:你的位置逗號使用=FIND(",", A1)
,並在=LEFT(...)
和=RIGHT(...)
使用的結果 - 後者還需要字符串長度(=LEN(...)
)
=LEFT(A1;FIND(",";A1)-1)
=RIGHT(A1;LEN(A1)-LEN(B1)-2)
現在到了有趣的部分...在你的第三個例子,我們絕不能分裂的第一個逗號,但在第三個逗號......或更一般的規則,我們總是必須在最後一個逗號分割......但是我們如何找到字符串中有多少個逗號,以將它的位置作爲額外的參數輸入到=FIND(...)
函數中?
快速回答:看看Stackoverflow(確切地說是here)......非常聰明......用原始長度中刪除的所有逗號減去字符串的長度,然後用別的東西替換逗號的最後一次出現,因爲=SUBSTITUTE(...)
適用於發生,而=FIND()
只適用於職位。如果你將所有這此,你將有
=LEFT(A1;FIND("@";SUBSTITUTE(A1;",";"@"; LEN(A1)-LEN(SUBSTITUTE(A1;",";""))))-1)
- >詳細地址在這裏我們用 「@」作爲最終逗號的中性替換字符串,因爲我們假定沒有地址使用「@」廣告2):將上述內容(以空白而不是逗號)再次應用於右側部分。您可以使用公式的簡單的第一個版本,因爲它是清楚你想在第一空白
=LEFT(C1;FIND(" ";C1)-1)
- >狀態=RIGHT(C1;LEN(C1)-LEN(D1)-1)
- >郵政編碼
有沒有一種方法來提取城市 - 和使用邏輯來確定城市有兩個詞? (即堪薩斯城,舊金山等) – user2320271
從你的樣本數據我會說不,因爲你似乎沒有街道地址和城市之間的可靠分隔符,它要麼空白或逗號 – MikeD