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?黃金分割線設置及增加顯示數值