2010-10-10 39 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