Excel提取手机号技巧详解
时间:2026-04-29 16:01:48 456浏览 收藏
面对Excel中混杂在大段文字里的手机号提取难题,本文为你揭秘四种高效实用的解决方案:从无需编程的SUBSTITUTE+MID定位法、灵活精准的VBA正则自定义函数GetPhone,到适合大批量非结构化数据的Power Query逐字符智能筛选,再到仅限Windows版Excel的TEXTJOIN+FILTERXML伪XML解析技巧——无论你是否熟悉编程、处理数据量大小如何、原始文本格式多混乱,总有一种方法能帮你一键揪出11位手机号,省时省力又稳定可靠。

如果您在Excel表格中面对包含大量杂乱文字的单元格,需要从中快速提取出11位手机号码,则可能是由于手机号被嵌入在句子、地址、备注等非结构化文本中。以下是多种可直接在Excel中实施的提取方法:
一、使用SUBSTITUTE与MID组合配合FIND定位
该方法适用于手机号固定出现在某类分隔符(如冒号、顿号、括号)之后且位置相对稳定的情况,通过替换干扰字符并结合位置偏移提取目标数字串。
1、在空白列输入公式:=MID(SUBSTITUTE(A1,"电话:",""),FIND("1",SUBSTITUTE(A1,"电话:","")),11),其中A1为含手机号的原始单元格。
2、按Enter确认后,检查结果是否为11位连续数字;若出现错误,说明“1”开头位置不唯一,需改用更精确的定位方式。
3、将公式向下填充至整列,完成批量提取。
二、利用正则表达式(通过VBA自定义函数)
Excel原生函数不支持正则匹配,但可通过启用VBA编写RegEx函数,实现对11位以1开头的手机号(1[3-9]\d{9})的精准捕获,不受前后文字干扰。
1、按Alt+F11打开VBA编辑器,插入新模块,粘贴以下代码:Function GetPhone(str As String) As String Dim reg As Object Set reg = CreateObject("VBScript.RegExp") With reg .Pattern = "1[3-9]\d{9}" .Global = True End With If reg.Test(str) Then GetPhone = reg.Execute(str)(0).Value Else GetPhone = "" End If End Function
2、返回Excel界面,在空白单元格输入公式:=GetPhone(A1),A1为待处理文本所在单元格。
3、按Enter确认,并向下填充公式,所有符合规则的手机号将被单独提取出来。
三、使用Power Query按字符筛选提取
Power Query具备强大的文本分列与条件筛选能力,可将字符串逐字符拆解后识别连续数字段,再筛选长度为11且首位为1的组合,适合处理格式极不统一的大批量数据。
1、选中数据列,点击【数据】→【从表格/区域】,勾选“表包含标题”,进入Power Query编辑器。
2、右键该列→【转换】→【拆分为列】→【按每个字符】,生成多列单字符字段。
3、全选所有新列,点击【转换】→【数据类型】→【整数】,无法转为整数的自动变为null。
4、点击【转换】→【填充】→【向下】,使数字连续段形成完整行块。
5、添加自定义列,输入公式:=Text.Combine(List.RemoveNulls(Record.FieldValues(_)),""),再添加筛选条件:该列长度等于11且首字符为"1"。
四、借助TEXTJOIN与FILTERXML(仅限Windows版Excel 2013+)
该方法利用FILTERXML解析伪XML结构,将文本中所有数字序列分离,再用TEXTJOIN拼接符合条件的11位项,无需VBA且公式可复用。
1、在目标单元格输入以下数组公式(按Ctrl+Shift+Enter):=TEXTJOIN("",TRUE,IF(LEN(FILTERXML(""&SUBSTITUTE(SUBSTITUTE(A1," ",""),".","")&""&SUBSTITUTE(SUBSTITUTE(A1," ",""),".","")&""&SUBSTITUTE(SUBSTITUTE(A1," ",""),".","")&"
2、公式会自动遍历A1中所有由空格或英文句点分隔的片段,筛选出长度为11的纯数字字符串。
3、若原始文本含中文标点(如顿号、逗号),需先在SUBSTITUTE中追加对应替换项,例如增加SUBSTITUTE(...,"、","")。
今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
262 收藏
-
375 收藏
-
172 收藏
-
367 收藏
-
243 收藏
-
157 收藏
-
221 收藏
-
104 收藏
-
380 收藏
-
467 收藏
-
465 收藏
-
123 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习