題外話:罌粟姐姐最近被問的最多的問題就是“我應該哪個V哪個?”(可見,VLOOKUP真的很重要!)
在Excel函數界,有400多位成員,只有VLOOKUP是公認的大眾情人。這么多年來,即使有更強大的函數組合能夠實現它的功能,也從來沒有誰能真正取代它的江湖地位。
在8組Excel函數,幫您解決工作中80%的難題,10個Excel核心技巧,輕松應對80%的工作需求這兩篇文章里都有VLOOKUP的零散介紹,這次罌粟姐姐將為大家揭開VLOOKUP的神秘面紗,初級、中級、高級一應俱全,必須收藏。
1、VLOOKUP入門——小白學習,必須掌握
VLOOKUP是一個查找函數,給定一個查找的目標,它就能從指定的查找區域中查找返回想要查找到的值。
英文語法:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
中文語法:VLOOKUP(找誰,在什么范圍找,在范圍里的第幾列,精確查找或模糊查找)
案例:已知全班的期末考試成績,現需要查找出指定的部分學生的成績。
公式:=VLOOKUP(E2,$B$2:$C$18,2,0)
注意:
(1)函數的第3個參數為查找區域的第幾列,不能理解為數據表中實際的列號。
(2)函數的第4個參數決定了查找方式,如果為0或False,函數則為精確匹配查找,而且支持無序查找;如果為1或Ture,函數則使用模糊匹配方式查找,查找區域的第一列必須為升序,否則不能返回正確的結果。
(3)當存在多條滿足條件的記錄時,VLOOKUP函數只能返回第1個滿足條件的記錄。
2、VLOOKUP中級——成為大神的必經之路
VLOOKUP除了簡單的查找外,還可以實現一些更復雜的查找匹配。
案例1:多列查找快速輸入公式
多列查找時,其他參數不變,公式=VLOOKUP($H7,$B$1:$F$18,?,0),最重要的是要修改第三個參數的值,因為列在變化,第3個參數也在發生變化。
大學語文在姓名后的第一列,那么第三個參數應該是1,=VLOOKUP($H7,$B$1:$F$18,1,0);
高等數學在姓名后的第二列,那么第三個參數應該是2,公式=VLOOKUP($H7,$B$1:$F$18,2,0)。
我們可以將第幾列用其他函數的計算結果來實現,一般情況下最常用的有兩種方法:
(1)1=COLUMN(A1);2=COLUMN(B1)……
(2)1=MATCH(I6,$C$1:$F$1,0);2=MATCH(J6,$C$1:$F$1,0)……
最終公式有兩種:
(1)=VLOOKUP($H7,$B$1:$F$18,COLUMN(B2),0)
(2)=VLOOKUP($H7,$B$1:$F$18,MATCH(I$6,$B$1:$F$1,0),0)
案例2:數值區間模糊查找
注意:引用的數字區域必須由小到大排列,輸出結果是和查找值最接近但比它小的那個值。
公式=VLOOKUP(D4,$A$1:$B$10,2,1)
案例3:模糊條件模糊查找
VLOOKUP的第一參數可以自動進行模糊匹配,將以E3開頭的單元格找到并匹配其對應的單元格內容。
公式=VLOOKUP(E3,$A:$B,2,1)
案例4、使用通配符精確查找
VLOOKUP的第一個參數還支持通配符“*”,使用通配符后相當于確定了查找條件,可以實現精確查找,查找結果也是返回首次滿足條件的記錄的相應值。
公式=VLOOKUP("*"&F5&"*",$A:$B,2,0)
3、VLOOKUP高級——江湖高手,無形勝有形
案例1:從右往左查找
因為VLOOKUP第三個參數必須為正數,所以從函數本身來理解只能實現由左向右的查找,于是很多小伙伴在遇到反向查找問題時,總是習慣粘貼復制調換位置,這個當然是方法之一。
還有一種方法是借用INDEX函數+MATCH函數實現,非常簡單方便。
但是既然說到VLOOKUP,那我們就看看到底能不能用VLOOKUP實現反向匹配。
首先需要利用IF函數將A列和B列互換。
公式=IF({1,0},B1:B18,A1:A18)
公式解讀:數組公式,1相當于TURE,0相當于FALSE,當為1時,它會返回IF的第二個參數(B1:B18),為0時返回第二個參數(A1:A18)。
輸入公式結束后同時按Ctrl+Shift+Enter三鍵出來結果。
B列和C列實現互換后,再直接用VLOOKUP就可以實現反向匹配。
公式=VLOOKUP(G5,IF({1,0},B1:B18,A1:A18),2,0)
然后有小伙伴會問,你這是兩列在一起,如果隔列反向查找怎么辦呢?當然是同樣的辦法啦。
公式=VLOOKUP(G5,IF({1,0},C1:C18,A1:A18),2,0)
只需要把對應的列進行修改即可。注意,第三個參數查找列依舊為2,因為IF函數構建的是一個兩列的數據表。
案例2:多條件查找
在有多個條件的情況下,我們通常需要將多個條件先合并,再利用IF函數數組特性重構原始數據。
公式=VLOOKUP(E3&F3,IF({1,0},A1:A13&B1:B13,C1:C13),2,0)
E3&F3:將多條件合并
IF({1,0},A1:A13&B1:B13,C1:C13):利用if函數第一個參數的數組化特征,將多條件合并后的內容與查詢的列結合起來,組成新的兩列數據。
注意:案例1如果兩列互換,所以是B在前A在后,這個案例不需要互換,所以AB在前,C在后
輸入公式結束后同時按Ctrl+Shift+Enter三鍵出來結果。
案例3:在合并單元格內進行查找
雖然一再強調,盡量避免在Excel中進行單元格合并,但是為了美觀,我們還是會遇到合并單元格的數據列表。
現需要根據左側單價和各產品類型各分公司銷售數量計算出總銷售額。
因為第二個表中“產品類型”被設置成了合并單元格,除了每個合并區域的第一個單元格有數值外,其余均為空,因此無法直接在單價表中查找對應品種的單價,所以首先要使用公式填充合并單元格中的空單元格。
公式=LOOKUP("座",D$2:D2)
LOOKUP函數的特殊用法,在以D2單元格開始不斷向下擴大范圍的單元格區域中查找“座”字,當LOOKUP函數找不到“座”字時,則返回區域中最后一個非空單元格名稱,即對應的產品類型。
解釋:由于LOOKUP查找漢字是按照漢語拼音的順序來查找的,座(拼音zuo)是拼音中的最后一個,所以用“座”可以查找區域中最后一個單元格內容,同理,換為其它字符代碼較大的漢字也可以查找。
再用VLOOKUP函數查找出產品的單價,與銷售量相乘,即得到總銷售額。
最終的公式=VLOOKUP(LOOKUP("座",D$2:D2),$A$2:$B$6,2,0)*F2
好啦,今天的教程就到這里啦,相信有了這篇文章,大家都能搞定VLOOKUP這個迷人的小妖精了。
這年頭,很多人覺得技能學習是最低級投資回報率是最低的,可是我卻覺得不管在哪一行,技能學習都是初入職場的必修課。