2010-10-10 40 views
1

我們有Excel文件。該文件位於包含該行的名稱爲「地址」的單元格中,例如:解析excel單元格。怎麼樣?

The Accounts Department, National Bank Ltd, 20 Lombard Str., London 3 WRS, England 

需要共享單元組中的信息。也就是說,我們必須具有以下單元格:

「country」:England 「city」:倫敦 「street」:Lombard Str。 ..... 和其他

這是分析單元格內容並將內容劃分爲邏輯部分所必需的。 你可以從我開始的事情中知道嗎?

回答

2

沒有確定的方法來做到這一點。假設(假設這是一個假設)即逗號爲只有用於分隔單元格,您可以在Data菜單中選擇Text To Columns,並選擇comma作爲您的分隔符。

這應該給你類似以下內容:

A1      | B1    | C1    | D1   | E1  
The Accounts Department | National Bank Ltd | 20 Lombard Str. | London 3 WRS | England 

從那裏,在小區F1,你可以做以下嘗試提取街道名稱:

=RIGHT(C1,LEN(TRIM(C1))-FIND(" ",TRIM(C1))) 

您可以使用這找到城市:

=LEFT(D1,FIND(" ",TRIM(D1))) 

你可能會發現我的公式的例外,你會我只需要解決這個問題。

如果我的第一個假設是錯誤的,並且逗號在字段分隔符以外的文本中,我會要求使用不同的分隔符(例如管道)返回文件。

+1

應謹慎考慮提取城市和街道名稱的目的公式。根據數據標準化,通常需要執行字典查找來識別名稱。 – 2010-10-10 14:58:39

+0

具有不同行數或不同地址組件的地址如何?那麼你的專欄不會排隊。 – 2010-10-10 15:35:34

3

這實際上取決於您的「邏輯部分」是否以某種方式分隔,以便您可以分別標識每個部分。我懷疑你可以使用逗號「,」作爲分隔符,因爲地址組件本身可能包含逗號(例如公司/企業的名稱)。此外,您可能會遇到數據清潔問題 - 即逗號可能會丟失,或者出現在錯誤的地方或其他地方。

如果您有分隔的數據,您的工作會有所簡化,因爲您可以獨立標識每個字段。然而,這仍然不是直截了當的。如果你沒有分隔的數據,這將是非常困難的。不管怎麼說,場的鑑定將可能是沿着這些線路:

1)郵政編碼(有這個衆所周知的正則表達式 - 但是你又可能需要處理格式不正確或無效的郵政編碼或錯別字)

2)國家&鎮,城市 - 你可以得到這些與英國城鎮&城市的字典。有一個谷歌。

3)村莊 - 更難,但字典會讓你98%的路上。

4)街道,道路等:不能真正使用這個字典。您需要根據關鍵字進行某種識別 - 如果該字段在街道,道路,車道或其他地方結束。然而,這些有很多。您可能會發現貝葉斯方法適用於此。

5)公司名稱,部門等仍然較難。某些關鍵詞可以標記這些(例如「ltd」),但我猜你的大部分條目都不能保證包含法律實體。部門可以是任何東西。

另外 - 人名呢?你能認出那些人嗎?

總之,這是一個相當重要的工作,需要正確完成。沒有簡單/簡單的答案。

順便說一句 - 如果你訪問PAF,可以幫助你:http://www.royalmail.com/portal/rm/jump2?mediaId=400085&catId=400084&campaignid=paf_redirect

但是,這仍然不會幫助你與部門,企業或人名。

+0

+1顯示工作的困難部分。一種天真的做法註定了。 – 2010-10-10 17:20:36