N年前,蘭色曾寫過一篇Vlookup從入門到高級的全系列教程,被無數網站轉載和抄襲。過了這麼多年,Vlookup函數的新用法又陸續發現了不少,所以蘭色覺得有必要再次整理一下這個工作中最常用函數用法。包含以下內容:
一、基本語法
二、入門篇
三、進階篇
四、高級篇
五、新版本中的最新用法
=Vlookup(查找的值,查找區域或數組,返回值所在的列數,精確or匹配查找)
語法說明:
1、單條件查找
【例1】根據姓名查找基本工資
=VLOOKUP(G2,B:E,4,0)
註:
2、查找不到時返回空
【例1】根據姓名查找基本工資
=IFERROR(VLOOKUP(G2,B:E,4,0),"")
註:IFERROR函數可以把錯誤值轉換為指定的值,本例公式中轉換為空
1、反向查找
【例】根據姓名查部門
=VLOOKUP(G2,IF({1,0},B1:B8,A1:A8),2,0)
註:公式中用IF({1,0} 把B列和A列組合在一起,並把 B列放在A列前面。
2、包含查找
【例】查找含「一」的姓名對應的基本工資
=VLOOKUP("*"&G2&"*",B:E,4,0)
註:查找值兩邊連接通配符*號可以實現包含查找
3、區間查找
【例】根據銷量查找對應區間的提成
=VLOOKUP(D2,A:B,2,1)
註:當最後一個參數為1或省略時,可以實現匹配或區間查找。規則是查找比被查找值小且最接近的值,並返回對應N列(第3個參數)的結果。如下圖所示查找180,在A列查找比180且最接近的值是100,返回100對應的提成3%。
4、含通配符的查找
【例】型號查找單價
錯誤公式:
=VLOOKUP(D2,A:B,2,0)
正確公式:
=VLOOKUP(SUBSTITUTE(D2,"*","~*"),A:B,2,0)
註:把*用函數替換為~*後就可以正常查找了
5、橫向多列查找
【例】根據姓名查找性別、年齡和基本工資
=VLOOKUP($G2,$B:$E,COLUMN(B1),0)
註:用Column()函數生成動態數字,作為Vlookup第3個參數,一個公式向右複製即可查找全部
6、多區域查找
【例9】根據不同的表從不同的區域查詢
=VLOOKUP(B2,IF(A2="銷售一部",A5:B9,D5:E9),2,0)
1、多條件查找
【例】根據部門和姓名查工資
=VLOOKUP(E2&F2,IF({1,0},A2:A8&B2:B8,C2:C8),2,0)
註:先把A列和B列連接在一起,再用IF({1,0} 把它和C列組合在一起構成8行2列的數組,作為Vlookup的第2個參數
2、合併單元格查找
【例】查找所在部門的獎金
=VLOOKUP(VLOOKUP("座",D$2:D2,1),A:B,2,0)
註:VLOOKUP("座",D$2:D2,1)可以返回D列截止本行的最後一個非空值。
3、合併單元格查找
【例】根據公司、產品查找對應價格
=VLOOKUP(F2,OFFSET(B$1,MATCH(E2,A:A,)-1,):C99,2,0)
註:用Match查找出部門所在行數,然後用offset函數向下偏移B1,進爾和C99構成一個動態的區域。更簡單的說就是部門在哪一行,我就用Vlookup從哪一行開始向下找。
4、一對多查找
【例】查找出人事部所有員工
數組公式輸入完成後按Ctrl+shift+enter結束後自動添加大括號
{=VLOOKUP(E$2&ROW(A1),IF({1,0},A$2:A$8&COUNTIF(INDIRECT("a2:a"&ROW($2:$8)),E$2),B$2:B$8),2,0)}
註:
ROW($2:$8)) :生成2,3,4,5,6,7,8
INDIRECT("a2:a"&row : 生成行數逐漸增多的7個區域
COUNTIF(INDIRECT : 在7個區域中分別計算部門的個數,相當於給人事部生成編號
IF({1,0} : 把帶編號的部門和B列構成7行兩列的新數組
5、查找所有值放在一個單元格
【例】在G列設置公式,根據F列產品從左表中查找所有符合條件的價格並用逗號隔開。
公式:
E2=D2&","&IFERROR(VLOOKUP(C2,C3:E$12,3,),"")
G2=VLOOKUP(F2,C:E,3,)'
6、查找最後一個
【例】查找A產品最後一次進貨價格
=VLOOKUP(1,IF({100,0},0/(B2:B10="A"),C2:C10),2)
註:Vlookup最後一個參數省略時,可以象lookup進行二分法查找,用0/(條件)把不符合條件的變成錯誤值,符合條件的變成0,然後用一個足夠大的數查找。IF後蘭色故意把常見的1寫成100,想讓大家知道這個只要是非0的數字都可以。
7、跨多表查找
【例】從各部門中查找員工的基本工資,在哪一個表中不一定。
方法1
=IFERROR(VLOOKUP(A2,服務!A:G,7,0),IFERROR(VLOOKUP(A2,人事!A:G,7,0),IFERROR(VLOOKUP(A2,綜合!A:G,7,0),IFERROR(VLOOKUP(A2,財務!A:G,7,0),IFERROR(VLOOKUP(A2,銷售!A:G,7,0),"無此人信息")))))
方法2:
=VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({"銷售";"服務";"人事";"綜合";"財務"}&"!a:a"),A2),{"銷售";"服務";"人事";"綜合";"財務"})&"!a:g"),7,0)
1、批量查找
在最新的office365版本,查找再多行只需要設置一個公式的
E2單元格
=Vlookup(d2:d12,A:B,2,0)
2、多列查找
多查查找也可以只設置一個公式
=VLOOKUP(A11,A1:E7,{2,3,5},0)
蘭色說:這篇Vlookup教程從昨天下午開始整理,直到今早(2020-9-25 7:45)才整理完成,共耗時7個多小時。不敢說是全網最全的Vlookup函數教程,至少蘭色知道的Vlookup用法全在這兒了。
長按下面二維碼圖片,點上面」識別圖中二維碼「然後再點關注,每天可以收到一篇蘭色最新寫的excel教程。
工作中最常用的Excel函數公式,全印在一張超大的滑鼠墊上(送40集配套視頻),點我查看詳情