微信公众号:yhjbox(永恒君的百宝箱),获取最新文章、资源。

这样做,快速提取省份信息!

Excel VBA 实例 永恒君 1245℃ 0评论
周末的时候,有位朋友提问了一个这样的需求,如下图:图片

单元格中有一长串内容,需要从中提取变更前和变更后权利人的省份信息,也就是图中标红的信息。

为了简化说明,永恒君把上面的问题修改成下图:

图片

思路方案

如果能有两个函数sf()、sfe(),直接调用sf(D6)、sfe(D6),就可以得出变更前、变更后的省份信息,然后再向下拖动,这样是不是就比较方便了?

那这两个函数用什么思路来提取呢?

永恒君觉得,正则表达式可能会比较方便。永恒君把整个提取的过程写成了一个自定义函数,如下

这个是sf()函数

Function sf(i As String) As String
  Dim a As Object
  Set a = CreateObject("VBSCRIPT.REGEXP")
  a.Pattern = " (\S)+省|(\S)+自治区|上海市|北京市|天津市|重庆市"
  a.Global = True
  sf = a.Execute(i)(0)
  Set a = Nothing
End Function

其中a.Pattern = " (\S)+省|(\S)+自治区|上海市|北京市|天津市|重庆市"
则是我们需要的正则表达式。

这个是sfe()函数

Function sfe(i As String) As String
  Dim a As Object
  Set a = CreateObject("VBSCRIPT.REGEXP")
  a.Pattern = " (\S)+省|(\S)+自治区|上海市|北京市|天津市|重庆市"
  a.Global = True
  sfe = a.Execute(i)(1)
  Set a = Nothing
End Function

写好之后,展示一下效果:

图片

这样就可以快速的将里面的省份信息提取出来了。

如果你要提取其他格式的内容,也可以修改a.Pattern后面的内容,一样可以得到想要的结果。

相关阅读:

正则表达式,查找、筛选数据的又一利器!
这个查找、筛选数据的利器,你不能不会!
技巧 | 正则表达式实例 – 快速提取爱奇艺视频目录
Excel vba 实例(8)- 利用正则表达式进行定向提取

欢迎交流!

转载请注明:永恒君的百宝箱 » 这样做,快速提取省份信息!

喜欢 (5)
发表我的评论
取消评论
表情