Excle如何利用函数在文字中提取手机号?

2025-11-07 11:02:30

1、使用MID函数和SEARCH函数配合使用,在B2中提取手机号。

在配合使用之前,我们先对两个函数作用有个初步了解:

MID函数:作用是从一个字符串中截取出指定数量的字符。

                 公式为MID(TEXT,START_NUM,NUM_CHARS)

例:A1=百度经验,则,B1=MID(A1,3,2)=经验(函数逻辑:在A1字段中第3位数截取2个数,即截取“经验”)

延伸:LEFT和RIGHT函数

SEARCH函数:作用是返回一个指定字符或文本字符串在字符串中第一次出现的位置 ,从左到右查找,忽略英文字母的大小写。

                  公式为=SEARCH(find_text,within_text,start_num)

例:A1=百度经验,则,B1=SEARCH("度",A1,1)=2

2、在了解两个函数之后,我们分析B中的数据,要提取手机号,就要从文本的第14位开始,提取11个数字,便是手机号,得到两个疑问:

1、如何用函数表达从第14位提取11个数字?

2、手机号在不同文本中出现的位置不一样(如B3),如何确定每次出现的位置?

3、针对问题,我们逐一解决,我们从局部问题着手,首先解决问题2,即手机号出现的位置。我们都知道,在中国,手机号均为“1”开头的11位数字,所以我们需要在文本中搜索“1”的起始位置,即用search函数可以表达,如B2信息,=SEARCH(1,B2,1)=14,即在第14位出现“1”,那么我们就可以用MID函数在B2字段中的第14位数字提取11位即可,即=MID(B2,14,11)=13693211234。便得到了我们要得结果。

Excle如何利用函数在文字中提取手机号?

4、通过以上计算,便可以轻松得出文本中的手机号,但是,在上例中也会出现一个问题,就是在手机号之前并未出现“1”,如果在更复杂的文本中,这个公式就会失灵,我们就要用到更为复杂的组合函数方法来计,如方法二:

Excle如何利用函数在文字中提取手机号?

1、在复杂文本中,信息量较大,罗列数据较多,另如方法一所提出的问题,需要对数据进行甄别,是否符合我们需要的条件,在接下来的方法中,要用到VLOOKUP,MID和ROW函数计算,得出我们要的结果。

2、在这里我们用得到的是VLOOKUP的延伸应用,基本使用方法请参照词条链接查看学习。

我们针对方法一的数据稍微进行了修改,得出方法一的不能适用,我们就要想其他方法了。针对文本中出现的多段数据,我们需要对数据加以计算,看是否能够满足我们的需求。

分析B2中的数据,发现由汉字文本和两段阿拉伯数字构成(忽略标点);我们需要提取数字并分辨,首先看MID(B2,ROW($1:$99),11),MID函数依次从B2的第1、2、3、4……直至99个位置提取11位的数据,然后分别乘以0和1,即常量数组{0,1}。以B2的信息为例,如果MID函数的结果为文本,比如“呼市东城区回民街120”,那么乘以{0,1}后,结果为错误值{ #VALUE!, #VALUE!};如果MID函数的结果为数值,比如13693211234,结果则为结果为{0, 13693211234}。

最终由此建立了一个2列99行的内存数组,作为VLOOKUP函数的第二参数,用作查询范围。VLOOKUP采用精确匹配的方式,在以上所述内存数组的第一列查询首个0出现的位置,进而返回相对应的内存数组第二列的结果,于是便得到了手机号码。

具体函数公式如下:

=VLOOKUP(,MID(B2,ROW($1:$99),11)*{0,1},2,)

这里需要注意的是,由于这里为组合函数,我们在C2键入的时候要首先输入公式,而后按<Ctrl+Shift+Enter>组合键提交,公式会自动提交出结果。否则会出现#N/A。

Excle如何利用函数在文字中提取手机号?

Excle如何利用函数在文字中提取手机号?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢