论文部分内容阅读
实际工作中,有时会遭遇一些比较稀奇古怪的问题,例如图1所示的数据,看起来十分的紊乱,领导要求从B列提取出手机号码,由于实际的数据源比较大,手工提取显然是不太现实,有没有更好的处理方式呢?
方案一:利用VLOOKUP函数
由于手机号码都是11位的数字,因此可以利用公式进行提取。选择C2单元格,在编辑栏输入公式“=VLOOKUP(0,MID(B2,ROW($1:$99),11)*{0,1},2,0)”,按“Ctrl+Shift+Enter”组合键转换为数组公式,在这里对上述公式分几个部分进行讲解:
ROW($1:$99):利用ROW函数得到1~99的序号,以此作为MID函数的第二参数。
MID(B2,ROW($1:$99),11):MID函数依次从B2的第1、2、3、4......直至99个位置,提取长度为11位的字符,然后分别乘以0和1,即常量数组{0,1}。如果MID函数的结果为文本,乘以{0,1}后,结果为错误值{#VALUE!,#VALUE!};如果MID函数的结果为数值,可建立一个2列99行的内存数组,作为VLOOKUP函数的查询区域。
VLOOKUP:用0作为查找值,采用精确匹配的方式,在以上內存数组的第一列查询首个0出现的位置,并且返回相对应的内存数组第二列的结果。
公式执行之后向下拖曳填充柄,很快就可以看到如图2所示的提取结果。
方案二:利用自动填充
如果你的Excel是2016或更高版本,那么可以利用“自动填充”完成提取任务。选择C2单元格,在编辑栏手工输入相应的手机号码,继续在C3单元格手工输入手机号码,直至看到如图3所示的填充建议,此时只要直接按下回车键就可以了。
方案一:利用VLOOKUP函数
由于手机号码都是11位的数字,因此可以利用公式进行提取。选择C2单元格,在编辑栏输入公式“=VLOOKUP(0,MID(B2,ROW($1:$99),11)*{0,1},2,0)”,按“Ctrl+Shift+Enter”组合键转换为数组公式,在这里对上述公式分几个部分进行讲解:
ROW($1:$99):利用ROW函数得到1~99的序号,以此作为MID函数的第二参数。
MID(B2,ROW($1:$99),11):MID函数依次从B2的第1、2、3、4......直至99个位置,提取长度为11位的字符,然后分别乘以0和1,即常量数组{0,1}。如果MID函数的结果为文本,乘以{0,1}后,结果为错误值{#VALUE!,#VALUE!};如果MID函数的结果为数值,可建立一个2列99行的内存数组,作为VLOOKUP函数的查询区域。
VLOOKUP:用0作为查找值,采用精确匹配的方式,在以上內存数组的第一列查询首个0出现的位置,并且返回相对应的内存数组第二列的结果。
公式执行之后向下拖曳填充柄,很快就可以看到如图2所示的提取结果。
方案二:利用自动填充
如果你的Excel是2016或更高版本,那么可以利用“自动填充”完成提取任务。选择C2单元格,在编辑栏手工输入相应的手机号码,继续在C3单元格手工输入手机号码,直至看到如图3所示的填充建议,此时只要直接按下回车键就可以了。