原創(chuàng):VLOOKUP函數(shù)的使用方法(高級篇)
前言:前面我們分別學(xué)習(xí)了VLOOKUP函數(shù)的入門、初級和進階篇。今天我們學(xué)習(xí)VLOOKUP函數(shù)的高級應(yīng)用部分-VLOOKUP函數(shù)的數(shù)組應(yīng)用。(本文由蘭色幻想原創(chuàng),轉(zhuǎn)載請注明轉(zhuǎn)自
excel精英培訓(xùn))
4 、反向查找(需要用IF函數(shù)把數(shù)據(jù)源倒置一下)
一、VLOOKUP的反向查找。
一般情況下,VLOOKUP函數(shù)只能從左向右查找。但如果需要從右向右查找,則需要把區(qū)域進行“乾坤大挪移”,把列的位置用數(shù)組互換一下。
例1:要求在如下圖所示表中的姓名反查工號。
公式:=VLOOKUP(A9,IF({1,0},B2:B5,A2:A5),2,0)
公式剖析:
1、這里其實不是VLOOKUP可以實現(xiàn)從右至右的查找,而是利用IF函數(shù)的數(shù)組效應(yīng)把兩列換位重新組合后,再按正常的從左至右查找。
2、IF({1,0},B2:B5,A2:A5)這是本公式中最重要的組成部分。在EXCEL函數(shù)中使用數(shù)組時(前提時該函數(shù)的參數(shù)支持?jǐn)?shù)組),返回的結(jié)果也會是一個數(shù)組。這里1和0不是實際意義上的數(shù)字,而是1相關(guān)于TRUE,0相當(dāng)于FALSE,當(dāng)為1時,它會返回IF的第二個參數(shù)(B列),為0時返回第二個參數(shù)(A列)。根據(jù)數(shù)組運算返回數(shù)組,所以使用IF后的結(jié)果返回一個數(shù)組(非單元格區(qū)域):{"張一","A001";"趙三","A002";"楊五","A003";"孫二","A004"}
5、多條件查找(VLOOKUP函數(shù)需要借用數(shù)組才能實現(xiàn))
二、VLOOKUP函數(shù)的多條件查找。
VLOOKUP函數(shù)需要借用數(shù)組才能實現(xiàn)多條件查找。
例2:要求根據(jù)部門和姓名查找C列的加班時間。
分析:我們可以延用例1的思路,我們的努力方向不是讓VLOOKUP本身實現(xiàn)多條件查找,而是想辦法重構(gòu)一個數(shù)組。多個條件我們可以用&連接在一起,同樣兩列我們也可以連接成一列數(shù)據(jù),然后用IF函數(shù)進行組合。
公式:{=VLOOKUP(A9&B9,IF({1,0},A2:A5&B2:B5,C2:C5),2,0)}
公式剖析:
1、A9&B9 把兩個條件連接在一起。把他們做為一個整體進行查找。
2、A2:A5&B2:B5,和條件連接相對應(yīng),把部分和姓名列也連接在一起,作為一個待查找的整體。
3、IF({1,0},A2:A5&B2:B5,C2:C5) 用IF({1,0}把連接后的兩列與C列數(shù)據(jù)合并成一個兩列的內(nèi)存數(shù)組。按F9后可以查看的結(jié)果為:
{"銷售張一",1;"銷售趙三",5;"人事楊五",3;"銷售趙三",6}
4、完成了數(shù)組的重構(gòu)后,接下來就是VLOOKUP的基本查找功能了,另外公式中含有多個數(shù)據(jù)與多個數(shù)據(jù)運算(A2:A5&B2:B5),,所以必須以數(shù)組形式輸入,即按ctrl+shift后按ENTER結(jié)束輸入。
6、多項查找
三、VLOOKUP函數(shù)的批量查找。
VLOOKUP一般情況下只能查找一個,那么多項該怎么查找呢?
例3 要求把如圖表中所有張一的消費金額全列出來
分析:經(jīng)過前面的學(xué)習(xí),我們也有這樣一個思路,我們在實現(xiàn)復(fù)雜的查找時,努力的方向是怎么重構(gòu)一個查找內(nèi)容和查找的區(qū)域。要想實現(xiàn)多項查找,我們可以對查找的內(nèi)容進行編號,第一個出現(xiàn)的是后面連接1,第二個出現(xiàn)的連接2。。。
公式:{=VLOOKUP(B$9&ROW(A1),IF({1,0},$B$2:$B$6&COUNTIF(INDIRECT("b2:b"&ROW($2:$6)),B$9),$C$2:$C$6),2,)}
公式剖析:
1、B$9&ROW(A1) 連接序號,公式向下復(fù)制時會變成B$9連接1,2,3
2、給所有的張一進行編號。要想生成編號,就需要生成一個不斷擴充的區(qū)域(INDIRECT("b2:b"&ROW($2:$6)),然后在這個逐行擴充的區(qū)域內(nèi)統(tǒng)計“張一”的個數(shù),在連接上$B$2:$B$6后就可以對所有的張一進行編號了。
3、IF({1,0}把編號后的B列和C組重構(gòu)成一個兩列數(shù)組
通過以上的講解,我們需要知道,VLOOKUP函數(shù)的基本用法是固定的,要實現(xiàn)高級查找,就需要借助其他函數(shù)來重構(gòu)查找內(nèi)容和查找數(shù)組。
至此VLOOKUP函數(shù)從入門到高級的四篇VLOOKUP函數(shù)使用教程全部結(jié)束了,VLOOKUP函數(shù)在數(shù)組運算中還有著其他應(yīng)用,但只是配角了,所以本系列不再介紹。由于筆者水平有限,不免有錯漏之處,請大家多多指點。
-------蘭色幻想于2011年11月22日、
原創(chuàng):vlookup函數(shù)查找12種易犯錯誤(1~3)
vlookup函數(shù)是一個非常好用的查找函數(shù),但由于種種原因,在實際使用時會遇到種種讓人搞不明白的錯誤。于是蘭色就把常遇到的vlookup錯誤問題來一次大整理,希望能對同學(xué)們有用。(本文由蘭色幻想原創(chuàng),轉(zhuǎn)載請注明轉(zhuǎn)自 excel精英培訓(xùn)網(wǎng)
http://www.)
一、函數(shù)參數(shù)使用錯誤。
第1種:第2個參數(shù)區(qū)域設(shè)置錯誤之1。
例:如下圖所示,根據(jù)姓名查找齡時產(chǎn)生錯誤。
錯誤原因: vlookup函數(shù)第二個參數(shù)是查找區(qū)域,該區(qū)域的第1列有一個必備條件,就是查找的對象(A9),必須對應(yīng)于區(qū)域的第1列。本例中是根據(jù)姓名查找的,那么,第二個參數(shù)姓名必須是在區(qū)域的第1列位置,而上述公式中姓名列是在區(qū)域A1:E6的第2列。所以公式應(yīng)改為:
=VLOOKUP(A9,B1:E6,3,0)
第2種:第2個參數(shù)區(qū)域設(shè)置錯誤之2。
例2 如下圖所示根據(jù)姓名查找職務(wù)時產(chǎn)生查找錯誤。
錯誤原因:本例是根據(jù)姓名查找職務(wù),可大家注意一下,第2個參數(shù)B1:D6根本就沒有包括E列的職務(wù),當(dāng)然會產(chǎn)生錯誤了。所以公式應(yīng)改為:
=VLOOKUP(A9,B1:E6,4,0)
第3種:第4個參數(shù)少了或設(shè)置錯誤。
例3,如下圖所示根據(jù)工號查找姓名
錯誤原因:vlookup第四個參數(shù)為0時表示精確查找,為1或省略時表示模糊查找。如果忘了設(shè)置第4個參數(shù)則會被公式誤以為是故意省略,按模糊查找進行。當(dāng)區(qū)域也不符合模糊查找規(guī)則時,公式就會返回錯誤值。所以公式應(yīng)改為。
=VLOOKUP(A9,A1:D6,2,0)
或 =VLOOKUP(A9,A1:D6,2,) 注:當(dāng)參數(shù)為0時可以省略,但必須保留“,”號。
蘭色說:今天所介紹的1~3錯誤是最簡單的查找錯誤,可能有些同學(xué)已能輕松處理,明天咱們繼續(xù)介紹VLOOKUP函數(shù)的其他查找錯誤,可能你處理起來就沒這么輕松了。
★L(fēng)ookup——數(shù)與行列比
Lookup的工作職責(zé)是什么呢?用一個數(shù)與一行或一列數(shù)據(jù)依次進行比較,發(fā)現(xiàn)匹配的數(shù)值后,將另一組數(shù)據(jù)中對應(yīng)的數(shù)值提取出來。
·工資稅率表:用數(shù)值比較
根據(jù)不同的工資進行不同的稅率計算是一個常見的應(yīng)用。我們來看這張“工資稅率查詢”表(見圖1)。現(xiàn)在要在右側(cè)根據(jù)“收入”(F列),直接得到對應(yīng)的“稅率”(G列)。在計算第1個“稅率”時,輸入函數(shù)公式“=LOOKUP(F4,$B$3:$B$8,$D$3:$D$8)”,回車,便可得到“36.00%”。
這個結(jié)果是怎么來的?用F4中的第1個收入數(shù)“$123,409”,與左側(cè)表的“收入最低”各檔數(shù)據(jù)(“$B$3:$B$8”)進行對比,雖然“$123,409”在“收入最低”各檔數(shù)中沒有完全一致的數(shù)據(jù)與之匹配,但是會與其中小于它的最大數(shù)“$58,501”相匹配。這樣,同一行對應(yīng)的“36.00%”就提取出來了。
·圖書銷售表:用文本比較
Lookup函數(shù)的對比數(shù)還可以是文本。在這張圖書銷售查詢表中(見圖2),用下表輸入的“編號”(A15單元格)文本當(dāng)作查詢數(shù),與上表的“編號”一列($A$3:$A$11)進行對比,查詢到了匹配的文本后,將“教材名稱”一列($B$3:$B$11)對應(yīng)的數(shù)據(jù)提取出來。公式是“=LOOKUP(A15,$A$3:$A$11,$B$3:$B$11)”。
★Vlookup——數(shù)與表格比
Lookup有一個大哥——Vlookup函數(shù)。兩兄弟有很多相似之處,但大哥本領(lǐng)更大。Vlookup用對比數(shù)與一個“表”進行對比,而不是Lookup函數(shù)的某1列或1行,并且Vlookup可以選擇采用精確查詢或是模糊查詢方式,而Lookup只有模糊查詢。
·模糊匹配
用Vlookup函數(shù)進行模糊查詢時,幾乎與Lookup的作用完全一致。我們用Vlookup函數(shù)來提取第1個例子中的工資稅率結(jié)果。函數(shù)公式為“=VLOOKUP(F4,$B$3:$D$8,3,TRUE)”。
在這個函數(shù)中,用第1個收入“$123,409”(F4單元格)當(dāng)作對比數(shù),用它與左側(cè)表(“$B$3:$D$8”)的第1列數(shù)進行對比,雖然“$123,409”在“收入最低”各檔數(shù)中沒有完全一致的數(shù)據(jù)與之匹配,但是函數(shù)的最后一個參數(shù)是“TURE”(“TURE”就是模糊查詢),所以它會與其中小于它的最大數(shù)“$58,501”相匹配。并將表中第3列(函數(shù)的第3個參數(shù)為“3”)對應(yīng)的數(shù)據(jù)提取出來,所以結(jié)果同樣是“36.00%”。
·訂單明細(xì)表:精確匹配
有時候,我們需要精益求精。在下面這個“訂單明細(xì)表”(見圖3)中,最后一列“貨運費用”中的數(shù)據(jù)要通過“交貨方式”從左側(cè)“配送公司收費表”中進行匹配查詢。這是一個典型的精確查詢的例子,計算第1個數(shù)據(jù)的函數(shù)公式是“=VLOOKUP(H3,$B$2:$D$6,3,FALSE)”。
小提示:
把最后一個參數(shù)從“TRUE”變更成“FLASE”,就是精確匹配。而精確查詢,就是查詢數(shù)要與查詢表第1列中的數(shù)據(jù)完全一致才能匹配提取,否則結(jié)果返回錯誤值“#N/A”。
名師點評:
Excel為我們提供了近20個有關(guān)“查找和引用”的函數(shù),除了最常用的Lookup、Vlookup,還有Choos、Row、Colum、Index和Match等,大家可以通過函數(shù)的幫助查看具體的功能。這些函數(shù)往往不是單獨使用,可以與其他函數(shù)和Excel中的一些功能進行配合。希望大家以后再為數(shù)據(jù)“找朋友”時,不再有“眾里尋它千百度”之感,直接“慕然回首,那數(shù)已在燈火闌珊處”了。