在我們?nèi)粘9ぷ髦?,有關(guān)查找的問題會非常多,比如根據(jù)姓名查找身份證,根據(jù)工號查找職務(wù),根據(jù)學號查找成績等等。
說到查找函數(shù),大部分人都會想到使用VLOOKUP函數(shù),但是VLOOKUP函數(shù)在使用過程卻存在許多問題。那么究竟如何才能使用好VLOOKUP函數(shù)?今天我們來探討一下關(guān)于查找函數(shù)的使用。
Vlookup語法:
Vlookup(根據(jù)什么找,到哪里找,找哪個,怎么找)
=VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup])
lookup_value:要查找的值,也被稱為查閱值。
table_array:查閱值所在的區(qū)域。請記住,查閱值應該始終位于所在區(qū)域的第一列,這樣 VLOOKUP 才能正常工作。例如,如果查閱值位于單元格 C2 內(nèi),那么您的區(qū)域應該以 C 開頭。
col_index_num區(qū)域中包含返回值的列號。例如,如果指定 B2:D11 作為區(qū)域,那么應該將 B 算作第一列,C 作為第二列,以此類推。
[range_lookup](可選)如果需要返回值的近似匹配,可以指定TRUE;如果需要返回值的精確匹配,則指定 FALSE。如果沒有指定任何內(nèi)容,默認值將始終為 TRUE 或近似匹配。
注意:
1、“根據(jù)什么找”中的“什么”一定要位于“到哪里找”區(qū)域的第1列!
2、若從“到哪里找”區(qū)域中找到多個“什么”,則僅返回第1個找到的“什么”對應的東西;
3、“找哪個”不是實際列號,而是“到哪里找”區(qū)域中的第幾列,其中,“什么”位于第1列,以此類推;
4、“怎么找”包含0(精確查找)、1或省略(模糊查找),其中,模糊查找時,首列必須升序排列;
可以在I、J、K、L列分別輸入VLOOKUP公式,但是數(shù)據(jù)列較多,就比較麻煩了,現(xiàn)在使用一個公式就能搞定:
公式分析:
=VLOOKUP($H$3,$B$3:$F$12,COLUMN(B1),0)
首先,需要在“客戶名稱”列返回查找區(qū)域第2列的值,在“付款金額”列返回查找區(qū)域第3列的值……,以此類推,為了實現(xiàn)一個公式就能在不同的列返回對應的數(shù)據(jù),結(jié)合COLUMN函數(shù),讓VLookup的第3參數(shù),即“找哪個”變成動態(tài)的,在I3單元格第3參數(shù)為2,在J3單元格第3參數(shù)為3,就可以解決:
其次,COLUMN函數(shù)可以返回指定單元格的列號,COLUMN(B1)返回B1單元格的列號2,由于使用的是單元格相對引用,隨著公式向右復制,J3單元格會變成COLUMN(C1),即返回C1單元格的列號3;
最后,再以COLUMN函數(shù)的結(jié)果作為VLookup函數(shù)的第3參數(shù),就能實現(xiàn)讓“找哪個”變成動態(tài)的了,剛好滿足了我們的要求。
同樣,使用VLookup函數(shù),根據(jù)條件找到多個符合的數(shù)據(jù),如:一個訂單號記錄了訂購的多款產(chǎn)品,想根據(jù)訂單號查找該訂單下的所有產(chǎn)品,可以按如下步驟:
第1步:首先構(gòu)造一個輔助序號列,在A3單元格輸入公式,并下拉復制到A12單元格:
=(B3=$G$3)+A2
公式分析:
B3=$G$3:判斷B3單元格的銷售訂單號是否等于G3單元格的查找訂單號,若相同,則返回true,否則返回false;
邏輯值再與A2相加,true相當于1,false和空相當于0,得到截止當前行,查詢訂單號出現(xiàn)的總次數(shù);
第2步:在H3單元格輸入公式:
=VLOOKUP(ROW(A1),$A$3:$C$12,3,0)
公式分析:
首先,從下圖可以看出,只要查找到1~10(10為查詢數(shù)據(jù)總行數(shù),為某訂單可能包含的最多產(chǎn)品數(shù)),因此為了查找訂單號對應的多個產(chǎn)品,根據(jù)在A列中出現(xiàn)的行位置,再找到相應的第3列即C列的訂單產(chǎn)品,就搞定了。
其次需要將查找到的第1個產(chǎn)品放入H3列,第2個產(chǎn)品放入H4列,依次向下,直至填完查找訂單號包含的所有訂單產(chǎn)品;
接著在H3單元格查找A列的序號1,即查詢訂單號第1次出現(xiàn)的位置,并返回該訂單下的第1個產(chǎn)品,H4單元格查找序號2……
最后,使用ROW函數(shù)可以解決以上的問題,在H3單元格使用ROW(A1)作為VLookup的查找條件,ROW(A1)可以返回指定單元格A1對應的行號1,隨著公式向下復制,由于A1為相對引用,到H4單元格將變?yōu)橐訰OW(A2)即2作為查詢條件;
第3步:為H列處理錯誤值,修改H3單元格的公式,并下拉復制到H12:
=IFERROR(VLOOKUP(ROW(A1),$A$3:$C$12,3,0),"")
公式分析:
首先,因不確定每個查詢訂單號下到底有多少個產(chǎn)品,因此將上一步的公式從H3單元格一直復制填充到H12,共10格,這樣可以查詢數(shù)據(jù)區(qū)域的總行數(shù),也就是在某個訂單號下最多可能包含的產(chǎn)品個數(shù);
其次某個查詢訂單號下,一般不會有這么多個產(chǎn)品的,于是上一步的公式就出現(xiàn)了下面的情況:
接著若VLookup的結(jié)果出現(xiàn)錯誤值,則顯示空值””,但這些“#N/A”就是沒找到第n個產(chǎn)品時出現(xiàn)的錯誤值,使用IFERROR函數(shù)的作用就是屏蔽掉它們。
聯(lián)系客服