院長大大已經開啟Excel函數系列課程,上班族、想學Office相關技術等等有需要的朋友請關注院長,享受每天及時的知識分享,跟著院長走,輕輕鬆鬆玩轉Office。
收到許多朋友的私信反饋,大大會另外相應的開設Excel基礎知識講解,不耽誤函數系列課程,需要的朋友加關注啦喂!
LOOKUP是根據位置從一個區域在另一個區域查找相應值的函數。
=LOOKUP(查找值,查找區域(單行或單列),返回值區域(同樣長度的行或列))
1、 兩個查找區域都是一列
單列查找數學成績
查詢胡淑冰的數學成績,B6是胡淑冰對應的序號,B3:B13是查找區域,H4:H14是返回值的區域。
=LOOKUP(B6,B3:B13,H4:H14)
***這裡我們討論一下LOOKUP函數的幾個易錯的地方:
·為什麼區域一定要是單行或者單列呢,這裡演示一下多行多列的情況:
lookup一定要單行/單列
可以看到求得的值是錯誤的,這是由於LOOKUP函數查詢的是兩個對應的區域中相同位置的單元格數值,當一個區域為多列或多行的時候,並沒有額外的參數來指定更為具體的位置,所以函數會出錯。
·如果兩個數據不是同樣的順序,結果是怎樣的
lookup一定要升序,查找的數學成績才是正確的
這裡將數學成績降序排列,可以看到查找的值和實際的值,並不一樣,這是因為函數只識別指定的位置,並不管區域中的順序是否一樣,這就需要我們事先保證兩個數據的關聯數據順序必須一致。
·為何第一個參數不能直接選取名字,要用序號
lookup一定要升序,查找的數學成績才是正確的
結果的值依然是錯誤的,這是因為LOOKUP是模糊查詢,一般用於查找值為數字的查詢方式,用中文做查找值就會出現錯誤,即就是上面的例子為什麼用序號而不用名字的原因了。
·如果序號是亂序的會發生什麼
lookup一定要升序,查找的數學成績才是正確的
亂序情況下的值也是不正確的,這是由於LOOKUP的基本要求是數字升序排列,否則就會出現錯誤,當然逆序也是不正確的,大家可以試一下逆序的情況。***
2、 兩個查找區域都是一行
lookup按行查找數學成績
通過例子我們知道,按行查找不必升序排列,此種使用方式較少,瞭解即可。
3、 同樣長度的行與列
lookup行列查找數學成績
當用行查找列或用列查找行時,兩個區域的長度必須一樣,即單元格個數一樣。
4、 LOOKUP的數組形式
lookup的數組形式查找數學成績
=LOOKUP(B6,B3:F13)
這裡只有兩個參數,第一個是查找值,第二個是區域,其中B3為查找區域,F13為返回值區域。
此函數也使用較少,因為數組形式主要是為了與其他電子表格程序兼容,這種形式功能有限。
從上面例子看LOOKUP有很多BUG,還要升序多麻煩啊,學這樣的函數有什麼用。
別說,LOOKUP有它與眾不同的功能。
要記住Excel裡的函數沒有一個是沒用的,只有不會使用的人。
--擴展:LOOKUP的神通究竟有多大?--
1、 模糊匹配
lookup模糊匹配成績區間
=LOOKUP(E3,$I$8:$J$12)
用左表的成績匹配右表的級別,對分數段最小值升序排列,區域一定要鎖定才能向下填充公式。
2、逆向查找
lookup逆向查找黃瓜銷量大於1000的省份
=LOOKUP(1,0/(C3:C13>1000),
黃瓜銷量大於1000的有兩個,且返回的是最大的值5000的省份,要是精確查詢銷量為1050的省份呢?
lookup精確查找黃瓜銷量
=LOOKUP(1,0/(C3:C13=1050),A3:A13)加粗部分可根據實際情況變化
此時用等於號來實現精確查找。
3、 多條件查找
lookup多條件查找多種蔬菜的銷量
=LOOKUP(1,0/(C3:C13>1000)*(E3:E13<500),A3:A13) 加粗部分可根據實際情況變化
以上函數的表達形式大家記住即可,具體原因涉及到LOOKUP設計的底層代碼,這裡不做展開。
推薦LOOKUP函數在升序排列的時候使用。
以上內容不易理解,希望大家親自實踐,慢慢消化。