本文总共1440个字,阅读需5分钟,全文加载时间:2.564s,本站办公入门专栏收录该内容! 字体大小:

文章导读:本文由两部分构成,其一提出问题并解决问题;其二解释相关函数公式。 1, 有这样一个问题,如下图所示,A列是数据列,混合文本中夹杂着手机号码;现在,需要在B列把A列数据中的手机号码提取出来。 您打算怎么操……各位看官请向下阅读:

本文由两部分构成,其一提出问题并解决问题;其二解释相关函数公式。

1,

有这样一个问题,如下图所示,A列是数据列,混合文本中夹杂着手机号码;现在,需要在B列把A列数据中的手机号码提取出来。

您打算怎么操作呢?

当然是……快速填充了。

然而,快速填充这个玩意儿,时灵时不灵的。

小数据时用两下还可以,毕竟结果若是错了一眼就可以看出来。而大数据时,还是别用了,简直等同于自杀,而且怎么死的都不知道。

比如这个问题,快速填充的结果如下:

这问题如果使用函数公式解决,常用的套路有以下4个:

1、=MAX(IFERROR(--MID(A2,ROW($1:$50),11),0))

2、=MIN(IFERROR(--MID(A2&"a",ROW($1:$50),11),"T"))

3、=VLOOKUP(,MID(A2,ROW($1:$50),11)*{0,1},2,)

4、=-LOOKUP(,-MID(A2&"a",ROW($1:$50),11))

本例中,四个公式的计算结果相同,但由于它们的计算原理并不一样,在不同的例子上彼此之间还是有所区别的。

MAX函数是提取参数中的最大值,MIN函数是提取参数中的最小值。因此,当单元格存在多个手机号时,两者所提取的结果将不同。

VLOOKUP函数的查询机制是从前向后查,且查到即止,只提取首个查询结果。

LOOKUP(比查询范围内所有值都大的同类型的值,查询范围),该套路是提取最后一个符合条件的结果。

你瞧,两个函数的查询机制刚好是反过来的;没有优劣之分,只是各有所长。如果我们需要提取首个手机号,可以使用VLOOKUP;如果是提取最后一个手机号,可以使用LOOKUP。

2,

四个公式都用到了MID(A2,ROW($1:$50),11)语句。该语句的意思是,从A2单元格的第1~50位的位置分别提取11个字符。只所以提取11个字符是因为手机号为11位。

=MAX(IFERROR(--MID(A2,ROW($1:$50),11),0))

--MID()是将MID函数的计算结果转换为数值,当MID函数的计算结果为纯文本时,减负运算将返回错误值,因此使用IFERROR函数将错误值转换成0,最后使用MAX函数提取最大值。

=MIN(IFERROR(--MID(A2&"a",ROW($1:$50),11),"T"))

和MAX函数套路不同的是,MID的第一参数为A2&"a",这是防止数值存在单元格尾部时,造成公式计算错误。IFERROR将错误值屏蔽为文本”T”,是因为MIN函数计算时会忽略文本值,此处的”T”可以替换为其它文本字符,例如“星光”,”” “亲爱的”等等。

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

VLOOKUP的第一参数是0,公式做了省略处理。

MID(A2,ROW($1:$50),11)*{0,1},通过MID函数的计算结果和常量数组{0,1}之间运算,产生了两列50行的二维数组,从中查询首个数值。

=-LOOKUP(,-MID(A2&"a",ROW($1:$50),11))

LOOKUP的查找值为0,公式做了省略处理。

-MID(A2&"a",ROW($1:$50),11),该部分的计算结果有两种,一种为错误值,一种是小于等于零的数值。LOOKUP找到最后的数值后,再进行一次减法运算,将计算结果转换为正数。

图文制作:看见星光

想要从零系统学习Excel,查看本站上方“视频教程”获取最新秋叶Office三合一办公应用课程!

以上内容由优质教程资源合作伙伴 “鲸鱼办公” 整理编辑,如果对您有帮助欢迎转发分享!

你可能对这些文章感兴趣:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注