Lookup是萬能函數?不信請看這6個案例!

【LOOKUP基本含義】

LOOKUP 有兩種語法形式:向量和數組。函數 LOOKUP 的向量形式是在單行區域或單列區域(向量)中查找數值,然後返回第二個單行區域或單列區域中相同位置的數值;函數 LOOKUP 的數組形式在數組的第一行或第一列查找指定的數值,然後返回數組的最後一行或最後一列中相同位置的數值。來之【excel講堂】微信公眾號

當我們在單元格輸入LOOKUP函數時會看到2個參數嚮導:


Lookup是萬能函數?不信請看這6個案例!


【LOOKUP基本語法】

(1)向量形式:公式為 = LOOKUP(lookup_value,lookup_vector,result_vector)

式中 lookup_value—函數LOOKUP在第一個向量中所要查找的數值,它可以為數字、文本、邏輯值或包含數值的名稱或引用;

lookup_vector—只包含一行或一列的區域lookup_vector 的數值可以為文本、數字或邏輯值;

result_vector—只包含一行或一列的區域其大小必須與 lookup_vector 相同。

(2)數組形式:公式為= LOOKUP(lookup_value,array)

式中 array—包含文本、數字或邏輯值的單元格區域或數組它的值用於與 lookup_value 進行比較。

例如:LOOKUP(5.2,{4.2,5,7,9,10})=5。

注意:array和lookup_vector的數據必須按升序排列,否則函數LOOKUP不能返回正確的結果。文本不區分大小寫。如果函數LOOKUP找不到lookup_value,則查找array中小於lookup_value的最大數值。如果lookup_value小於array中的最小值,函數LOOKUP返回錯誤值#N/A。另外還要注意:函數LOOKUP在查找字符方面是不支持通配符的,但可以使用FIND函數的形式來代替。

【LOOKUP使用案例】

(1)、代替IF完成成績分等級判斷


Lookup是萬能函數?不信請看這6個案例!


函數公式:=LOOKUP(C2,{0,"不及格";60,"及格";70,"中等";80,"良好";90,"優秀";100,"滿分"})


Lookup是萬能函數?不信請看這6個案例!


(2)、提取單元格內數字


Lookup是萬能函數?不信請看這6個案例!


函數公式:=LOOKUP(9E 307,--MID(A2,MIN(FIND(ROW($1:$10)-1,A2&1/17)),ROW($1:$99)))

注:由於是數組公式,所以需要按三健CTRL+SHIFT+ENER完成。

函數基本解析:

1、先找到第一個出現數字的所在位置MIN(FIND(ROW($1:$10)-1,A2&1/17))

find第一參數ROW($1:$10)-1,包含了{0;1;2;3;4;5;6;7;8;9}

然後第二被查找參數A2&1/17,實際上是包含了所有的數字,1/17的結果裡包好了所有的0-9的數字,也是為了縮短公式,當然也可以&“0123456789”

FIND(ROW($1:$10)-1,A2&1/17)的結果值,[在EXCEL裡按住F9健查看值]{15;27;10;22;26;11;30;29;19;25},然後MIN對find的結果取數最小值,就是第一個出現數字的所在位置10。

2、用MID函數來截取

--MID(A2,MIN(FIND(ROW($1:$10)-1,A2&1/17)),ROW($1:$99)))

MID第一參數值A2,即為截取的數據源

MID第二參數是MIN(FIND(ROW($1:$10)-1,A2&1/17)),即為截取的位數,數字所在的位置10處開始取。

MID第三參數ROW($1:$99),即為截取1-99位。

3、最後就是完成LOOKUP的嵌套


Lookup是萬能函數?不信請看這6個案例!


本文所用函數套路如下

=LOOKUP(9E 307,--MID(A2,MIN(FIND(ROW($1:$10)-1,A2&1/17)),ROW($1:$99)))

(3)、逆向查找

函數公式:=LOOKUP(1,0/(C:C=I2),B:B)


Lookup是萬能函數?不信請看這6個案例!



(4)多條件查找

函數公式:=LOOKUP(1,0/(C:C=I2)*(F:F=J2),B:B)


Lookup是萬能函數?不信請看這6個案例!


查找類總結:

=LOOKUP(1,0/(條件),目標區域或數組)

其中,條件可以是多個邏輯判斷相乘組成的多條件數組。

=LOOKUP(1,0/((條件1)*( 條件2)* ( 條件N)),目標區域或數組)

以0/(B2:B10=E5)構建一個0、#DIV/0!組成的數組,再用永遠大於第2個參數中所有數值的1作為查找值,即可查找最後一個滿足非空單元格條件的記錄。

(5)查詢A列中的最後一個文本

這個難題也非LOOKUP函數莫屬,用到的公式是:

=LOOKUP('々',A:A )

'々'通常被看做是一個編碼較大的字符,它的輸入方法為組合鍵。

如果感覺每次寫這個符號有點費事兒,也可以寫成:

=LOOKUP('座',A:A )

一般情況下,第一參數寫成“座”也可以返回一列或一行中的最後一個文本。

(6)查詢A列中的最後一個數值

用到的公式是:

=LOOKUP(9E307,A:A)

9E307被認為是接近Excel規範與限制允許鍵入最大數值的數,用它做查詢值,可以返回一列或一行中的最後一個數值。

有朋友會說了,如果我A列中的數據既有文本也有數值,想得到最後一個單元格內容,那怎麼辦?

寫成這樣就可以的:

=LOOKUP(1,0/(A:A<>''),A:A)

注意,上面這個公式中整列引用的寫法在03版本中不適用,可以寫成實際的單元格區域引用。

今天就跟大家分享這麼多使用案例,希望能夠給打擊帶來幫助!歡迎掃描下方二維碼訂閱excel專欄系統學習!


分享到:


相關文章: