在之前的文章《Excel函數(shù)學(xué)習(xí)之聊聊多個(gè)求和函數(shù)》中,我們學(xué)習(xí)了幾種求和函數(shù)。而今天我們來聊聊LOOKUP函數(shù),過去大家使用VLOOKUP函數(shù)的時(shí)候,經(jīng)常都會(huì)遇到一些麻煩事,那就是VLOOKUP查找只找到滿足條件的第一個(gè)值就不找了,并且還只能從左往右查找,簡(jiǎn)直是太多限制了。今天給大家介紹LOOKUP函數(shù),可以完美的解決這兩個(gè)問題,太好用了!
手機(jī)如何做表格:點(diǎn)擊查看
LOOKUP函數(shù)非常強(qiáng)大,有引用函數(shù)之王的稱號(hào)。要想完全掌握它,必須了解它的5種常見用法和它的二分法查找原理。由于相關(guān)知識(shí)點(diǎn)比較多,所以教程將分成上下兩篇。今天我們首先通過五個(gè)例子來了解這個(gè)函數(shù)的5種常見用法。明天我們?cè)賮碚f二分法查找原理和之前文章中遺留的兩個(gè)LOOKUP問題。
一、常規(guī)引用
格式:LOOKUP(查找值,查找區(qū)域)
例1:根據(jù)姓名查找語文成績(jī),公式為=LOOKUP(H2,C2:D19)
例2:根據(jù)姓名查找英語成績(jī),公式為:=LOOKUP(H2,C2:F19)
通過這兩個(gè)例子我們可以發(fā)現(xiàn),LOOKUP在進(jìn)行查找時(shí)公式的結(jié)構(gòu)非常簡(jiǎn)單,查找值和要找的結(jié)果分別位于查找區(qū)域的首列和末列。
但是僅僅了解這個(gè)用法是遠(yuǎn)遠(yuǎn)不夠的,如果我們?cè)僭囈粋€(gè)數(shù)據(jù)的話,有可能就會(huì)發(fā)現(xiàn)問題:
當(dāng)查找姓名變成趙永福的時(shí)候,結(jié)果就不對(duì)了,這是因?yàn)?strong>LOOKUP函數(shù)使用的是二分法查找,也就是模糊匹配,關(guān)于這一點(diǎn),我們將在明天的教程《LOOKUP函數(shù)用法全解(下)——LOOKUP的二分法查找原理》中詳細(xì)解釋。
因此,在使用LOOKUP進(jìn)行常規(guī)查找的時(shí)候,有一個(gè)非常重要的步驟,就是按照查找內(nèi)容(姓名所在的c列)升序排序。
當(dāng)我們排序以后,公式的結(jié)果立刻變成了正確的,是不是很神奇!
這又引出了一個(gè)新的問題,如果數(shù)據(jù)不能排序的話,LOOKUP函數(shù)還能用嗎?
肯定能用啊,下面來看看LOOKUP函數(shù)的第二種用法。
二、精確查找的套路
格式:=LOOKUP(1,0/(查找范圍=查找值),結(jié)果范圍)
在I2單元格輸入公式:
=LOOKUP(1,0/(C2:C19=H2),D2:D19)
,回車,可看到正確結(jié)果。
關(guān)于這個(gè)套路的1和0/到底是什么意思,也是提問率最高的問題之一,在未講解二分法原理之前,簡(jiǎn)單來說一下公式的意思。1就是要查找的值,但是條件變了,不是直接查找姓名,而是根據(jù)姓名得到的一組邏輯值:
注意這里只有一個(gè)TRUE,也就是我們要找的姓名。
接下來用0除以這些邏輯值,在進(jìn)行計(jì)算的時(shí)候邏輯值TRUE代表1,F(xiàn)ALSE代表0,當(dāng)分母為0也就是FALSE的時(shí)候,計(jì)算結(jié)果是錯(cuò)誤值:
因此,LOOKUP的工作就變成了在一組數(shù)據(jù)中找1。由于這組數(shù)據(jù)只有一個(gè)0,其他都是錯(cuò)誤值,二分法使得LOOKUP只能找到不大于查找值的最后一個(gè)數(shù)字,因此只能找到0,最后根據(jù)0的行位置(第2行)得到第三參數(shù)對(duì)應(yīng)位置的數(shù)據(jù),即D2就是我們需要的結(jié)果。
這部分內(nèi)容算是函數(shù)學(xué)習(xí)中比較有難度的知識(shí)點(diǎn)了,初學(xué)者可能理解困難,這不要緊,隨著學(xué)習(xí)的深入,當(dāng)對(duì)數(shù)組和邏輯值這兩大要點(diǎn)掌握比較熟練的時(shí)候,這些內(nèi)容就很好理解了。目前如果不能完全理解,記住這個(gè)套路就行:=LOOKUP(1,0/(查找范圍=查找值),結(jié)果范圍)
。同時(shí)這個(gè)套路還能延伸出多條件精確查找用法:
=LOOKUP(1,0/((查找范圍1=查找值1)* (查找范圍2=查找值2)* (查找范圍3=查找值3)),結(jié)果范圍)
就是在每個(gè)查找范圍內(nèi)找到要找的值,得到的邏輯值相乘后同時(shí)符合多個(gè)條件的位置就是1,原理與單條件的一樣。
三、反向查找的套路
與我們熟知的VLOOKUP不同,使用LOOKUP函數(shù)進(jìn)行反向查找時(shí)非常簡(jiǎn)單,公式結(jié)構(gòu)為:
=LOOKUP(查找值,查找列,結(jié)果列)
,下面這個(gè)例子是按照姓名排序后再反向查找的效果:
如果數(shù)據(jù)不能排序的話,使用精確查找的套路:=LOOKUP(1,0/(C2:C19=H8),B2:B19)
四、按區(qū)間查找的套路
根據(jù)學(xué)生的總分給出相應(yīng)的評(píng)語。50分以下的為“很差”,50-100分的為“差”,100-150分的為“一般”,150-200分的為“較好”,200-250分的為“優(yōu)秀”,250分及以上的為“能手”。
這里用的公式為:
=LOOKUP(G2,{0,50,100,150,200,250;"很差","差","一般","較好","優(yōu)秀","能手"})
按照評(píng)語的要求分成了六個(gè)等級(jí),如果用if函數(shù)去做就很啰嗦,使用LOOKUP處理這類問題非常方便,公式結(jié)構(gòu)也很簡(jiǎn)單:
=LOOKUP(分?jǐn)?shù)值,{下限1, 下限2……;評(píng)語1,評(píng)語2……})
在寫這個(gè)公式的時(shí)候注意兩點(diǎn):
-
1.LOOKUP的第二參數(shù)使用了常量數(shù)組,這里的大括號(hào)是手動(dòng)輸入的,括號(hào)內(nèi)用一個(gè)分號(hào)分開,左邊是每個(gè)等級(jí)的下限,例如50分以下這個(gè)表述里下限就是0,50-100的下限就是50,以此類推,每個(gè)數(shù)字之間用逗號(hào)分開;分號(hào)右邊是對(duì)應(yīng)的評(píng)語,評(píng)語應(yīng)當(dāng)使用引號(hào),同時(shí)用逗號(hào)分開(公式里的所有符號(hào)都是英文狀態(tài)下的);
-
2.數(shù)字區(qū)間應(yīng)當(dāng)遵循升序的排列順序,否則結(jié)果就會(huì)錯(cuò)誤。
五、關(guān)于數(shù)據(jù)排序的重要性
當(dāng)我們按照學(xué)號(hào)查找姓名的時(shí)候,發(fā)現(xiàn)會(huì)出現(xiàn)錯(cuò)誤,學(xué)號(hào)也是按升序排列的啊,怎么會(huì)錯(cuò)?
這是一種最常見的錯(cuò)誤,這里的學(xué)號(hào)升序排列只是我們感覺如此而已,實(shí)際上升序的效果是這樣的:
在使用LOOKUP的時(shí)候,如果不使用精確查找的套路,切記一定要排序才能保證公式結(jié)果的正確性。
小結(jié)
1、今天一共分享了五種LOOKUP的使用套路,分別是常規(guī)查找、精確查找、多條件查找,反向查找還有按區(qū)間查找,初學(xué)者掌握這些套路學(xué)會(huì)去套用解決問題就可以了;
2、LOOKUP函數(shù)的查找原理與我們之前學(xué)過的VLOOKUP不同,VLOOKUP函數(shù)的查找方式叫做遍歷法,找到滿足條件的第一個(gè)值就會(huì)停止查找,而LOOKUP函數(shù)使用的是二分法原理進(jìn)行查找,要找到滿足條件的最后一個(gè)值才會(huì)停止查找,這一點(diǎn)在函數(shù)的說明文檔里也提到了;
我們可以通過一個(gè)簡(jiǎn)單的測(cè)試來驗(yàn)證這一點(diǎn):
3、對(duì)數(shù)據(jù)源按升序排列這一點(diǎn)很重要:
如果不能排序,那么一定要使用這個(gè)套路:=LOOKUP(1,0/(查找范圍=查找值),結(jié)果范圍),這也是二分法的特性決定的;
4、LOOKUP這個(gè)函數(shù)很強(qiáng)大,同時(shí)也很難以理解,要想徹底弄清楚這個(gè)函數(shù),必須了解二分法原理。明天的教程我們就來聊聊什么是二分法原理,順便再把前一段時(shí)間遺留的兩個(gè)問題(LOOKUP解決四舍五入的問題和進(jìn)行數(shù)據(jù)提取的問題)做個(gè)解釋。
相關(guān)學(xué)習(xí)推薦:excel教程