excel函數(shù)技巧:兩個查詢函數(shù)的用法比較 下

編按:今天是VLOOKUP與LOOKUP雙雄戰(zhàn)的第三回合。在前兩個回合中,VLOOKUP旗開得勝,連勝兩局。第三回合是交叉查詢,LOOKUP能否展開反擊止住頹勢呢?
—————————————————
VLOOKUP和LOOKUP這對高頻函數(shù)的較量注定是場持久戰(zhàn)。在前兩個回合的較量中,VLOOKUP占據(jù)上風,此番更要乘勝追擊。新一輪較量,即刻開戰(zhàn)!
***ROUND 03 交叉查詢
什么是交叉查詢?我們可以通過一個查找值查找多個字段。如果被查找的多個字段的排列順序與查找區(qū)域中對應字段的順序不一致,我們稱之為交叉查詢。如下,我們要從數(shù)據(jù)源中查找“阿普”的多個字段“綽號”“能力”“職位”,很顯然被查找字段與數(shù)據(jù)源中字段“職位”“能力”“綽號”的排列順序不一致,這就是交叉查詢,要怎么做呢?

最基礎的做法就為每一個查找字段單獨設置公式。
H3公式 =VLOOKUP($G3,$A$1:$E$12,5,0)
I3公式 =VLOOKUP($G3,$A$1:$E$12,4,0)
J3公式 =VLOOKUP($G3,$A$1:$E$12,3,0)

這種逐一設置公式的做法很笨拙,除了需要重復輸入類似的公式外,還需要人工判別每一個單元格的返回列值。如果查找字段很多,估計會逼瘋不少表親。下面看看小花是如何使用VLOOKUP和LOOKUP做交叉查詢的。
VLOOKUP:經(jīng)天緯地,拿手好戲
VLOOKUP和MATCH這對函數(shù)組合正是為交叉查詢而生。VLOOKUP通過MATCH函數(shù)的協(xié)助,自動判斷出返回列值。MATCH函數(shù)用于返回查找值在某一行/列中的位置,它的語法是MATCH(查找值,查找行/列,查找方式)。此處我們用到的查找方式是精確查找,第三個參數(shù)用FALSE或0表示。

公式說明
以B17公式為例,“職位”出現(xiàn)在A1:E1的第三個位置,所以MATCH的返回值為3。
介紹完MATCH函數(shù)的基本用法后,隆重介紹EXCEL函數(shù)中一種使用頻率最高的函數(shù)組合——VLOOKUP+MATCH。
=VLOOKUP($G3,$A$1:$E$12,MATCH(H$2,$A$1:$E$1,0),0)

公式說明
VLOOKUP+MATCH組合的基本套路是=VLOOKUP(查找值,查找區(qū)域,MATCH(查找字段,字段區(qū)域,0),0)。它是在VLOOKUP的基本用法上,將第三個參數(shù)返回值列序用MATCH替換,通過匹配,自動返回目標字段在查找區(qū)域的列序。
套路的基本要點如下:
1.MATCH的查找值必須與VLOOKUP查找區(qū)域標題行中的某個單元格完全一致。這是高頻錯誤點,需注意空格的干擾!
2.為了使公式可以拖動填充,VLOOKUP的第一個參數(shù)通常鎖定列,如$G3,第二個參數(shù)通常鎖定行和列,如$A$1:$E$12;MATCH的第一個參數(shù)通常鎖定行,如H$2,第二個參數(shù)通常鎖定行和列,如$A$1:$E$1。公式最后是“,0),0)”這樣的結(jié)構,分別表示MATCH函數(shù)和VLOOKUP函數(shù)都執(zhí)行精確匹配。這些細節(jié)都是小白容易忽略、出錯的地方。
LOOKUP:數(shù)組形式,劍走偏鋒
說實話,交叉查詢,LOOKUP同樣無法單干,需要找?guī)褪纸M團行動,譬如 LOOKUP+MATCH+OFFSET。
=LOOKUP($G3,OFFSET($A$1:$A$12,,,,MATCH(H$2,$A$1:$E$1,0)))

公式說明
該公式使用了LOOKUP的數(shù)組形式=LOOKUP(查找值,查找區(qū)域),表示在查找區(qū)域的首行/列中進行匹配,返回查找區(qū)域末行/列中與之對應的值。于是問題的重點就變成了如何使查找區(qū)域的末列自動變?yōu)榉祷刂档乃诹?。我們用OFFSET函數(shù)和MATCH函數(shù)來解決。
OFFSET函數(shù)是一個偏移函數(shù),它根據(jù)給定的偏移行數(shù)和列數(shù)從初始位置偏移至指定區(qū)域,并返回指定大小的區(qū)域,它的語法是:=OFFSET(初始區(qū)域,偏移行數(shù),偏移列數(shù),[返回區(qū)域的行數(shù)],[返回區(qū)域的列數(shù)])
此處我們的初始區(qū)域為A1:A12,返回區(qū)域仍然是以A1:A12為首列的區(qū)域,行、列偏移量皆為0,返回區(qū)域的行數(shù)也與初始區(qū)域一致,因此這三個參數(shù)直接用逗號占位,不填數(shù)字。最后我們通過MATCH返回匹配列序數(shù),從而確定OFFSET返回區(qū)域的列數(shù)。公式最終返回以A列為首列、以MATCH返回值為末列,包含1-12行的區(qū)域。以H3中的公式為例,MATCH返回5,則OFFSET返回結(jié)果是以A1:A12為首列的5列區(qū)域即A1:E12。把A1:E12作為LOOKUP數(shù)組形式的第二個參數(shù),LOOKUP將查找值$G3在區(qū)域A1:E12的首列A1:A12中進行匹配,返回查找區(qū)域A1:E12的末列E1:E12中與之對應的值,從而完成交叉查詢。
第三回合,在處理交叉查詢問題時,VLOOKUP和LOOKUP都能應對自如。
但VLOOKUP的用法較為簡單,只需借助MATCH函數(shù)即可完成,而LOOKUP函數(shù)則需要MATCH和OFFSET兩個函數(shù)和它配合才能實現(xiàn)。綜合看來,后者不如前者簡單易學。
***結(jié)束語:
VLOOKUP+MATCH是查詢函數(shù)中非常經(jīng)典的套路,LOOKUP的數(shù)組形式在實戰(zhàn)中也非常實用,兩者都是查詢函數(shù)學習的重中之重。希望小伙伴們不要只做VLOOKUP和LOOKUP較量中的吃瓜群眾,還要能深入了解其原理,掌握用法,提升能力。
****部落窩教育-excel查詢函數(shù)技巧****
原創(chuàng):小花/部落窩教育(未經(jīng)同意,請勿轉(zhuǎn)載)
更多教程:部落窩教育(www.itblw.com)
微信公眾號:exceljiaocheng