excel函数截取指定字符串(如何用vlookup提取数据)
如何使用VLOOKUP提取单元格字符串中的数值
在用EXCEL进行数据处理时,有时会遇到下面的数据,单元格有数字、文字和字符,还要对数字进行计算,如果数据量少还可以逐渐复制出来处理,但如果有成千上万行数据需要处理,就要用其他办法了。
本文今天介绍了一种方法:如何用VLOOKUP来提取字符串中的数字。
在总价单元格边上增加两列辅助列,用来提取单价和数量:
然后在G2单元格中输入数组公式:
=VLOOKUP(9^9,MID(C2,MIN(IF(ISNUMBER(--MID(C2,ROW($1:$99),1)),ROW($1:$99))),ROW($1:$99))*{1,1},2),按CTRL SHIFT ENTER结束输入。
这是一个多层函数嵌套的数组公式,使用了VLOOKUP、MID、IF、MIN、ISNUMBER、ROW等函数,下面从VLOOKUP的4个参数来分析一下这个公式的机理。
(1) 参数1:9^9,9^9 = 387420489,这是一个较大的数值,用来进行查找、数值比较等,当然也可以用其他比较大的数值来代替9^9。
(2) 参数2:MID(C2,MIN(IF(ISNUMBER(--MID(C2,ROW($1:$99),1)),ROW($1:$99))),ROW($1:$99))*{1,1},这个是查找区域。
其中使用了以下函数:
MID()进行文本提取;
MIN()表示最小值,从小到大排序;
ISNUMBWR()用来判断值是否为数值;
ROW()返回行号,$1:$99表示从第1行到第99行;
"- -"这代表恢复到正常格式,如果是日期,就变成日期格式,如果是数值,就变成数值格式。
参数2构造了一个2列、99行的表格,用数组表示出来如下图所示。
可以利用F9来逐个查看参数中的返回值,这样更有利于理解函数原理。
(3) 参数3:2,即查找第2列
(4) 参数4:省略,参数4如果省略,默认为模糊查找,返回一个最接近于9^9的值,其实也是就字符串中的数值(本例中的数值均小于9^9)。
将G2向下、向右进行拖拉填充,提取相应的数值,就可以方便计算出物品的总价了。
公式有点复杂,也可以收藏起来直接套用。