跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

如何在Excel中从地址列表提取邮政编码?

Author Sun Last modified

在Excel中管理客户信息时,通常会有一个完整的地址列表,每个条目既包含街道详情也包含邮政编码(邮编)。如果你需要从这些地址中单独提取邮政编码——例如用于邮件列表、区域分析或数据格式化——手动逐一分离它们可能会非常繁琐且容易出错,特别是当处理大量数据时。幸运的是,Excel提供了实用的方法可以快速高效地一次性提取多个邮政编码,而无需手动操作。本文将提供使用Excel公式和VBA宏解决方案提取邮政编码的逐步指导。

使用公式在Excel中提取邮政编码

使用用户定义函数在Excel中提取邮政编码


使用公式在Excel中提取邮政编码

在许多常见的地址列表中,邮政编码位于地址字符串的末尾,并且长度不超过8个字符。此方法最适合于列表中的所有地址都遵循一致格式,并且邮政编码作为每个地址的最后一项,由空格分隔的情况。

要使用公式快速提取邮政编码,请按照以下步骤操作:

1. 选择一个空白单元格以显示邮政编码(例如,如果您的地址在A1,则选择B1)。输入以下公式:

=MID(A1,FIND("zzz",SUBSTITUTE(A1," ","zzz",SUMPRODUCT(1*((MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))=" "))-1))+1,LEN(A1))

2. 按下Enter键。A1中的地址邮政编码将显示在所选单元格中。

3. 要将此公式应用于其他地址,请选择带有公式的单元格,沿列向下拖动填充柄以覆盖所有地址行,Excel将自动为每个地址提取邮政编码。

a screenshot of extracting postcode from address list with formula

提示:此公式假设邮政编码是地址字符串中最后一个空格之后的最后一项。如果您的地址结构不同,例如邮政编码出现在中间或由逗号分隔,此公式可能无法返回正确结果。为了扩展此方法以适应国际邮政编码或自定义格式,您可能需要采用不同的或更高级的公式方法,或者尝试下面的VBA解决方案。


使用用户定义函数在Excel中提取邮政编码

如果您的地址数据更为复杂、不一致或包含各种格式和位置的邮政编码,如以下截图所示,VBA宏可以提供更灵活的提取选项。这种自动化方法可以快速处理整个地址列,仅分离并返回邮政编码,从而节省大量时间并减少手动操作。

 extract various postcodes from address list

1. 按Alt + F11打开Microsoft Visual Basic for Applications窗口。

2. 在VBA窗口中,点击插入 > 模块以创建新模块。将以下VBA代码复制并粘贴到模块窗口中:

Public Function ExtractPostcode(text As String) As String
    Dim reg As New RegExp
    Dim m As MatchCollection
    reg.Pattern = "\b([A-Z]{1,2}\d{1,2}[A-Z]?\s*\d[A-Z]{2}|\d{5}(?:-\d{4})?|\d{6})\b"
    reg.IgnoreCase = True
    reg.Global = False
    
    If reg.Test(text) Then
        Set m = reg.Execute(text)
        ExtractPostcode = m(0).Value
    Else
        ExtractPostcode = ""
    End If
End Function

3. 粘贴代码后,在VBA编辑器窗口中,选择工具 > 引用。参见截图:

click Tools > References

4. 在“引用”对话框中,勾选Microsoft VBScript Regular Expressions 5.5并点击确定

check Microsoft VBScript Regular Expressions 5.5

5. 返回工作表,并输入此公式:=ExtractPostcode(A2),向下拖动填充柄到其他单元格。所有邮政编码立即显示,参见截图:

tye a formula to get the result

提示:通过此代码,您可以自动在Excel中几秒钟内提取任何国家或地区的邮政编码;只需简单调整正则表达式以匹配目标区域的邮政编码规则,即可快速适应不同的格式——例如英国的“SW1A 1AA”,美国的“12345-6789”,或中国的“100000”——极大地提升您的数据清理和分析效率。


相关文章:


最佳Office办公效率工具

🤖 Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件VLookup|多值VLookup|多表查找|模糊查找……
高级下拉列表快速创建下拉列表 |依赖下拉列表 | 多选下拉列表……
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列……
特色功能网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)……
15大工具集12项 文本工具添加文本删除特定字符等)|50+种 图表 类型甘特图等)|40+实用 公式基于生日计算年龄等)|19项 插入工具插入二维码从路径插入图片等)|12项 转换工具小写金额转大写汇率转换等)|7项 合并与分割工具高级合并行分割单元格等)| ……
Kutools支持多种语言——可选择英语、西班牙语、德语、法语、中文等40多种语言!

通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……


Office Tab为Office带来多标签界面,让您的工作更加轻松

  • 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读
  • 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
  • 可提升50%的工作效率,每天为您减少数百次鼠标点击!

所有Kutools加载项,一键安装

Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。

Excel Word Outlook Tabs PowerPoint
  • 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
  • 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
  • 协同更高效——提升Office应用间的整体工作效率
  • 30天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠