Excel函數學習之LOOKUP函數的5種用法

2022-08-01 22:00:56
在之前的文章《》中,我們學習了幾種求和函數。而今天我們來聊聊LOOKUP函數,過去大家使用VLOOKUP函數的時候,經常都會遇到一些麻煩事,那就是VLOOKUP查詢只找到滿足條件的第一個值就不找了,並且還只能從左往右查詢,簡直是太多限制了。今天給大家介紹LOOKUP函數,可以完美的解決這兩個問題,太好用了!

手機如何做表格:點選檢視

LOOKUP函數非常強大,有參照函數之王的稱號。要想完全掌握它,必須瞭解它的5種常見用法和它的二分法查詢原理。由於相關知識點比較多,所以教學將分成上下兩篇。今天我們首先通過五個例子來了解這個函數的5種常見用法。明天我們再來說二分法查詢原理和之前文章中遺留的兩個LOOKUP問題。

一、常規參照

格式:LOOKUP(查詢值,查詢區域)

例1:根據姓名查詢語文成績,公式為=LOOKUP(H2,C2:D19)

1.png

例2:根據姓名查詢英語成績,公式為:=LOOKUP(H2,C2:F19)

2.png

通過這兩個例子我們可以發現,LOOKUP在進行查詢時公式的結構非常簡單,查詢值和要找的結果分別位於查詢區域的首列和末列。

但是僅僅瞭解這個用法是遠遠不夠的,如果我們再試一個資料的話,有可能就會發現問題:

3.png

當查詢姓名變成趙永福的時候,結果就不對了,這是因為LOOKUP函數使用的是二分法查詢,也就是模糊匹配,關於這一點,我們將在明天的教學《LOOKUP函數用法全解(下)——LOOKUP的二分法查詢原理》中詳細解釋。

因此,在使用LOOKUP進行常規查詢的時候,有一個非常重要的步驟,就是按照查詢內容(姓名所在的c列)升序排序

4.png

當我們排序以後,公式的結果立刻變成了正確的,是不是很神奇!

5.png

這又引出了一個新的問題,如果資料不能排序的話,LOOKUP函數還能用嗎?

肯定能用啊,下面來看看LOOKUP函數的第二種用法。

二、精確查詢的套路

格式:=LOOKUP(1,0/(查詢範圍=查詢值),結果範圍)

在I2單元格輸入公式:

=LOOKUP(1,0/(C2:C19=H2),D2:D19),回車,可看到正確結果。

6.png

關於這個套路的1和0/到底是什麼意思,也是提問率最高的問題之一,在未講解二分法原理之前,簡單來說一下公式的意思。1就是要查詢的值,但是條件變了,不是直接查詢姓名,而是根據姓名得到的一組邏輯值:

7.png

注意這裡只有一個TRUE,也就是我們要找的姓名。

接下來用0除以這些邏輯值,在進行計算的時候邏輯值TRUE代表1,FALSE代表0,當分母為0也就是FALSE的時候,計算結果是錯誤值:

8.jpg

因此,LOOKUP的工作就變成了在一組資料中找1。由於這組資料只有一個0,其他都是錯誤值,二分法使得LOOKUP只能找到不大於查詢值的最後一個數位,因此只能找到0,最後根據0的行位置(第2行)得到第三引數對應位置的資料,即D2就是我們需要的結果。

這部分內容算是函數學習中比較有難度的知識點了,初學者可能理解困難,這不要緊,隨著學習的深入,當對陣列和邏輯值這兩大要點掌握比較熟練的時候,這些內容就很好理解了。目前如果不能完全理解,記住這個套路就行:=LOOKUP(1,0/(查詢範圍=查詢值),結果範圍)。同時這個套路還能延伸出多條件精確查詢用法:

=LOOKUP(1,0/((查詢範圍1=查詢值1)* (查詢範圍2=查詢值2)* (查詢範圍3=查詢值3)),結果範圍)

就是在每個查詢範圍內找到要找的值,得到的邏輯值相乘後同時符合多個條件的位置就是1,原理與單條件的一樣。

9.png

三、反向查詢的套路

與我們熟知的VLOOKUP不同,使用LOOKUP函數進行反向查詢時非常簡單,公式結構為:

=LOOKUP(查詢值,查詢列,結果列),下面這個例子是按照姓名排序後再反向查詢的效果:

10.png

如果資料不能排序的話,使用精確查詢的套路:=LOOKUP(1,0/(C2:C19=H8),B2:B19)

11.png

四、按區間查詢的套路

根據學生的總分給出相應的評語。50分以下的為「很差」,50-100分的為「差」,100-150分的為「一般」,150-200分的為「較好」,200-250分的為「優秀」,250分及以上的為「能手」。

12.png

這裡用的公式為:

=LOOKUP(G2,{0,50,100,150,200,250;"很差","差","一般","較好","優秀","能手"})

按照評語的要求分成了六個等級,如果用if函數去做就很囉嗦,使用LOOKUP處理這類問題非常方便,公式結構也很簡單:

=LOOKUP(分數值,{下限1, 下限2……;評語1,評語2……})

在寫這個公式的時候注意兩點:

  • 1.LOOKUP的第二引數使用了常數陣列,這裡的大括號是手動輸入的,括號內用一個分號分開,左邊是每個等級的下限,例如50分以下這個表述裡下限就是0,50-100的下限就是50,以此類推,每個數位之間用逗號分開;分號右邊是對應的評語,評語應當使用引號,同時用逗號分開(公式裡的所有符號都是英文狀態下的);

  • 2.數位區間應當遵循升序的排列順序,否則結果就會錯誤。

五、關於資料排序的重要性

13.png

當我們按照學號查詢姓名的時候,發現會出現錯誤,學號也是按升序排列的啊,怎麼會錯?

這是一種最常見的錯誤,這裡的學號升序排列只是我們感覺如此而已,實際上升序的效果是這樣的:

14.png

在使用LOOKUP的時候,如果不使用精確查詢的套路,切記一定要排序才能保證公式結果的正確性。

小結

1、今天一共分享了五種LOOKUP的使用套路,分別是常規查詢、精確查詢、多條件查詢,反向查詢還有按區間查詢,初學者掌握這些套路學會去套用解決問題就可以了;

2、LOOKUP函數的查詢原理與我們之前學過的VLOOKUP不同,VLOOKUP函數的查詢方式叫做遍歷法,找到滿足條件的第一個值就會停止查詢,而LOOKUP函數使用的是二分法原理進行查詢,要找到滿足條件的最後一個值才會停止查詢,這一點在函數的說明檔案裡也提到了;

15.png

我們可以通過一個簡單的測試來驗證這一點:

16.png

3、對資料來源按升序排列這一點很重要:

17.jpg

如果不能排序,那麼一定要使用這個套路:=LOOKUP(1,0/(查詢範圍=查詢值),結果範圍),這也是二分法的特性決定的;

4、LOOKUP這個函數很強大,同時也很難以理解,要想徹底弄清楚這個函數,必須瞭解二分法原理。明天的教學我們就來聊聊什麼是二分法原理,順便再把前一段時間遺留的兩個問題(LOOKUP解決四捨五入的問題和進行資料提取的問題)做個解釋。

相關學習推薦:

以上就是Excel函數學習之LOOKUP函數的5種用法的詳細內容,更多請關注TW511.COM其它相關文章!