如何使用VLOOKUP提取單元格字符串中的數(shù)值 在用EXCEL進(jìn)行數(shù)據(jù)處理時,有時會遇到下面的數(shù)據(jù),單元格有數(shù)字、文字和字符,還要對數(shù)字進(jìn)行計(jì)算,如果數(shù)據(jù)量少還可以逐漸復(fù)制出來處理,但如果有成千上萬行數(shù)據(jù)需要處理,就要用其他辦法了。 本文今天介紹了一種方法:如何用VLOOKUP來提取字符串中的數(shù)字。 在總價單元格邊上增加兩列輔助列,用來提取單價和數(shù)量: 然后在G2單元格中輸入數(shù)組公式: =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結(jié)束輸入。 這是一個多層函數(shù)嵌套的數(shù)組公式,使用了VLOOKUP、MID、IF、MIN、ISNUMBER、ROW等函數(shù),下面從VLOOKUP的4個參數(shù)來分析一下這個公式的機(jī)理。 (1) 參數(shù)1:9^9,9^9 = 387420489,這是一個較大的數(shù)值,用來進(jìn)行查找、數(shù)值比較等,當(dāng)然也可以用其他比較大的數(shù)值來代替9^9。 (2) 參數(shù)2:MID(C2,MIN(IF(ISNUMBER(--MID(C2,ROW($1:$99),1)),ROW($1:$99))),ROW($1:$99))*{1,1},這個是查找區(qū)域。 其中使用了以下函數(shù): MID()進(jìn)行文本提?。?/p> MIN()表示最小值,從小到大排序; ISNUMBWR()用來判斷值是否為數(shù)值; ROW()返回行號,$1:$99表示從第1行到第99行; '- -'這代表恢復(fù)到正常格式,如果是日期,就變成日期格式,如果是數(shù)值,就變成數(shù)值格式。 參數(shù)2構(gòu)造了一個2列、99行的表格,用數(shù)組表示出來如下圖所示。 可以利用F9來逐個查看參數(shù)中的返回值,這樣更有利于理解函數(shù)原理。 (3) 參數(shù)3:2,即查找第2列 (4) 參數(shù)4:省略,參數(shù)4如果省略,默認(rèn)為模糊查找,返回一個最接近于9^9的值,其實(shí)也是就字符串中的數(shù)值(本例中的數(shù)值均小于9^9)。 將G2向下、向右進(jìn)行拖拉填充,提取相應(yīng)的數(shù)值,就可以方便計(jì)算出物品的總價了。 公式有點(diǎn)復(fù)雜,也可以收藏起來直接套用。 |
|