excel提取手机号码也是一个比较常见的运用。但是根据数据源的不同,相应的提取手机号码的方法也不尽相同。
excel提取手机号码案例一:
下图所示A列是一些电话号码,需要提取其中的电话号码,效果如B列所示。
这个案例可以考察大家对分列命令的掌握程度。
操作方法是:选择A2:A5区域,单击数据——分列,弹出“文本分列向导”,选择“分隔符号”,单击“下一步”。
然后分隔符号勾选“其他”,输入“-”,并勾选“连续分隔符号视为单个处理”。单击“下一步”。
选中第一列,“列数据格式”选择“不导入此列”。选中第二列,“列数据格式”选择“文本”(这样才能确保A5中的013678354348正常显示出来)。选中第三列,“列数据格式”选择“不导入此列”。
然后,将“目标区域”设定为B2单元格,单击“完成”即可。
excel提取手机号码案例二:
下图所示,由于输入的客户资料不规范,导致提取手机号码难度增大很多。A列的电话号码为8位和11位两种情况。分别将号码提取放到BCD列,比如A4单元格有两个号码,就分别放在B4和C4单元格。
答案:B2单元格输入公式:=TEXT(LARGE(--TEXT(MID(TEXT(MID($A2&"@",ROW($1:$28),{9,12}),),2,11),"[>2e7]0;!0;!0;!0"),COLUMN(A1)),"0;;"),然后按ctrl+shift+enter键结束,将公式右拉下拉即可提取所有的电话号码。
此题还可以使用自定义函数来做。
在工作表标签,单击右键,选择“查看代码”,打开VBE编辑器,单击插入——模块,复制下面的代码,关闭VBE,回到excel工作表,B2单元格输入公式:=提取号码($A2,COLUMN(A2)),右拉下拉,也可以提取所有的电话号码。
Public Function 提取号码(单元格, Optional 第几个 = 1)
Dim wu(1 To 5)
w = 单元格
For c = 1 To Len(w)
If Mid(w, c, 1) Like "[0-9]" = 0 Then w = Application.WorksheetFunction.Replace(w, c, 1, "x")
Next
y = Split(w, "x")
r = 1
For c1 = 0 To UBound(y)
If Len(y(c1)) = 11 Or Len(y(c1)) = 8 Then wu(r) = y(c1): r = r + 1
Next
提取号码 = wu(第几个) & ""
End Function
excel提取手机号码案例三:
下图所示,手机号码都是连续11位,B1单元格可以使用公式:=MIDB(A1,SEARCHB("?",A1),11)或者=MID(A1,FIND("1",A1,1),11),都可以提取手机号码。