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向下、向右進行拖拉填充,提取相應的數值,就可以方便計算出物品的總價了。

公式有點複雜,也可以收藏起來直接套用。

推薦閱讀:

這六樣菜降血糖最快!哥哥血糖數值爆表,但在吃了這道菜之後,血糖竟然一瞬間恢復正常,這真是出乎大家預料...
血小板數值恢復正常了,激素可以停了嗎?
數值調色---數值中的CMYK
MT4?黃金分割線設置及增加顯示數值

TAG:函數 | 數值 | 字元串 | 字元 |