VLOOKUP函數16種經典用法

功能:在表格的首列查找指定的數值,並返回表格當前行中指定列處的數值。

結構:=VLOOKUP(查找值,查找區域,列序數,匹配條件)

解釋:=VLOOKUP(找誰,在哪裏找,第幾列,0或1)

說明:

1、第一參數:查找值(找誰),比如說根據【姓名】來查找【成績】,【姓名】就是查找值

2、第二參數:查找區域(在哪裏找),查找的數據區域也就是所選擇的區域,注意所選擇的區域要根據查找值位於第一列開始選擇,比如說根據【姓名】來查找【成績】,那數據表所選的區域要從【姓名】列開始選擇。建議設置爲絕對引用,在選定區域後按F4鍵就可以快速切換,就是在行和列的前面添加$符號,拖動公式時,區域就不會發生改變;

3、第三參數:列序數(第幾列),也就是返回的結果在數據表中位於第幾列,包含隱藏的列;

4、第四參數:匹配條件(0或1),若爲0或FALSE代表精確匹配,1或TRUE代表近似匹配;

注:查找值在數據表中多次出現,導致有多個結果,函數僅僅會返回第一個找到的結果。

第1種用法:精確匹配(0)

目的:根據【銷售員】查找【銷售額】

公式:=VLOOKUP(F2,$B$1:$D$6,3,0)

說明:“查找值”F2也就是【銷售員】,“查找區域”根據查找值【銷售員】在所選的數據表中,也就是$B$1:$D$6中必須位於第一列。“列序數”爲3,表示對應結果【銷售額】在所選區域中排第3列;“匹配條件”爲0,表示精確匹配,若爲1則代表近似匹配。

第2種用法:近似匹配(1)

目的:根據【銷售額】查找【提成比】計算【業績提成】

公式:=VLOOKUP(F2,$B$1:$C$6,2,1)*F2

說明:“查找值”F2也就是【銷售額】,“查找區域”根據查找值【銷售額】在所選的數據表中,也就是$B$1:$C$6中必須位於第一列。“列序數”爲2,表示對應結果【提成比】在所選區域中排第2列;“匹配條件”爲1,表示近似匹配

第3種用法:反向查找(輔助列)

目的:根據【銷售員】查找【工號】

公式:=VLOOKUP(G2,$B$1:$E$6,4,0)

說明:“查找值”G2也就是【銷售員】,由於數據表中【銷售員】列在【工號】列的後面,無法按照VLOOKUP函數的使用方法(查找區域要根據查找值位於第一列進行)所以我們要將【銷售員】排列在數據表中的第一列,則增加一列【輔助列】代表【工號】列,數據表所選區域也就是$B$1:$E$6區域。“列序數”爲4,表示對應結果【輔助列】在所選區域中排第4列;“匹配條件”爲0,表示精確匹配

或者在數據表前面增加銷售員【輔助列】

第4種用法:多條件查找(輔助列)

目的:根據【水果】及【產地】查找【市場價】

公式:=VLOOKUP(G2&H2,$A$1:$E$6,5,0)

說明:由於查找值【水果】及【產地】在不同列中,這裏需要用連接字符&將兩列值相連接。則“查找值”G2&H2也就是【水果】及【產地】,數據表中【水果】及【產地】也在不同列,無法按照VLOOKUP函數的使用方法(查找區域要根據查找值位於第一列進行)所以我們要將【水果】及【產地】錄入在同一列中,則增加一列【輔助列】代表【水果產地】列,數據表所選區域也就是$A$1:$E$6區域。“列序數”爲5,表示對應結果【市場價】在所選區域中排第5列;“匹配條件”爲0,表示精確匹配

第5種用法:屏蔽錯誤值(IFERROR)

目的:根據【產品型號】查找【產品等級】

公式:=IFERROR(VLOOKUP(E2,$A$1:$C$6,3,0),"")

說明:“查找值”E2也就是【產品型號】,“查找區域”根據查找值【產品型號】在所選的數據表中,也就是$A$1:$C$6中必須位於第一列。“列序數”爲3,表示對應結果【產品等級】位於所選區域中排第3列,“匹配條件”爲0,表示精確匹配

由於部分查找值【產品型號】在數據表中不存在,則會出現#N/A錯誤值,爲了屏蔽錯誤值需嵌套IFERROR函數

IFERROR函數:表示的是公式中計算結果錯誤,則會返回指定的值,否則返回公式的結果

=IFERROR(公式計算結果的值,屏蔽錯誤的值)

IFERROR公式中VLOOKUP(E2,$A$1:$C$6,3,0)表示的公式計算結果的值

IFERROR公式中""表示計算結果爲#N/A錯誤值時,讓其最終結果顯示爲空,則輸入英文雙引號表示屏蔽#N/A錯誤值

第6種用法:關鍵字查找(通配符*)

目的:根據【公司簡稱】查找【公司人數】

公式:=VLOOKUP("*"&D2&"*",$A$1:$B$6,2,0)

說明:“查找值”"*"&D2&"*"也就是通過【公司簡稱】查找【公司全稱】,這裏的星號“*”表示的是任意字符,例如【公司簡稱】爲“利美德”通過前後連接上星號“*”就表示的是“利美德”前後加上任意字符,在此數據表中所表示的是“浙江利美德教具有限公司”。

“查找區域”根據查找值【公司簡稱】在所選的數據表中,也就是$A$1:$B$6中必須位於第一列。“列序數”爲2,表示對應結果【公司人數】位於所選區域中排第2列,“匹配條件”爲0,表示精確匹配

第7種用法:文本數值混合查找(連接符&)

目的:根據【工號】查找【銷售員】

公式:=VLOOKUP(E2&"",$A$1:$B$6,2,0)

說明:“查找值”E2&""也就是通過【工號】查找【銷售員】,由於查找值【工號】是一個數值,而查找區域中【工號】是文本字符,所以在這裏通過連接字符&””連接一個空文本英文的雙引號,表示的是將數值轉換成文本。

“查找區域”根據查找值【工號】在所選的數據表中,也就是$A$1:$B$6中必須位於第一列。“列序數”爲2,表示對應結果【銷售員】位於所選區域中排第2列,“匹配條件”爲0,表示精確匹配。

若通過文本型的【工號】查找【銷售額】,公式則爲=VLOOKUP(A2*1,$E$1:$G$6,3,0)

說明:查找值A2*1表示的是將文本型【工號】轉換成數值型【工號】,理解爲任意一個文本型數字通過運算就會變成常規數值。

“查找區域”根據查找值【工號】在所選的數據表中,也就是$E$1:$G$6中必須位於第一列。“列序數”爲3,表示對應結果【銷售額】位於所選區域中排第3列,“匹配條件”爲0,表示精確匹配

第8種用法:去除空格查找(SUBSTITUTE)

目的:根據【銷售員】查找【銷售額】

公式:=VLOOKUP(G2,SUBSTITUTE($B$1:$D$6," ",""),3,0)

說明:“查找值”G2也就是通過【銷售員】查找【銷售額】,由於查找區域中【銷售員】列存在空格,通過VLOOKUP函數常規計算會出現#N/A錯誤值

在這裏需要將查找區域中空格通過SUBSTITUTE函數進行去除

SUBSTITUTE函數:表示的是將字符串中的部分字符替換成新字符串

=SUBSTITUTE(字符串,原字符串,新字符串)

公式中SUBSTITUTE($B$1:$D$6," ","")表示的是將空格進行去除

“查找區域”根據查找值【銷售員】在所選的數據表中,也就是SUBSTITUTE($B$1:$D$6," ","")中必須位於第一列。“列序數”爲3,表示對應結果【銷售額】位於所選區域中排第3列,“匹配條件”爲0,表示精確匹配。

最後注意由於當前公式=VLOOKUP(G2,SUBSTITUTE($B$1:$D$6," ",""),3,0)是數組公式需要三鍵結束,按Ctrl+Shift+Enter得到對應結果

若查找值中包含空格,則公式爲=VLOOKUP(SUBSTITUTE(G9," ",""),$B$8:$D$13,3,0)

第9種用法:去除不可見字符查找(CLEAN)

目的:根據【銷售員】查找【銷售額】

公式:=VLOOKUP(F2,CLEAN($B$1:$D$6),3,0)

說明:“查找值”F2也就是通過【銷售員】查找【銷售額】,由於查找區域中【銷售員】列存在不可見字符,通過VLOOKUP函數常規計算會出現#N/A錯誤值

在這裏需要將查找區域中不可見字符通過CLEAN函數進行去除

CLEAN函數:表示的是刪除文本中不可見字符(非打印字符)

=CLEAN(字符串)

公式中CLEAN($B$1:$D$6)表示的是去除查找區域中的不可見字符

“查找區域”根據查找值【銷售員】在所選的數據表,也就是CLEAN($B$1:$D$6)中必須位於第一列。“列序數”爲3,表示對應結果【銷售額】位於所選區域中排第3列,“匹配條件”爲0,表示精確匹配。

最後注意由於當前公式=VLOOKUP(F2,CLEAN($B$1:$D$6),3,0)是數組公式需要三鍵結束,按Ctrl+Shift+Enter得到對應結果

第10種用法:多列批量查找(COLUMN)

目的:根據【工號】查找【銷售員】、【地區】及【銷售額】

公式:=VLOOKUP($F2,$A$1:$D$6,COLUMN(B1),0)

說明:“查找值”$F2也就是通過【工號】查找【銷售員】、【地區】及【銷售額】,由於公式需要向右及向下填充,查找值列保持不變,需要將F列進行鎖定也就是$F2

“查找區域”根據查找值【工號】在所選的數據表中,也就是$A$1:$D$6中必須位於第一列。

此案例中是多列批量查找“列序數”也就是所對應的結果值在不同的列中,需要嵌套一個COLUMN函數。

COLUMN函數:表示返回引用的列號

=COLUMN(單元格)

公式中COLUMN(B1)表示的是返回B列的列號,也就第2列

“匹配條件”爲0,表示精確匹配

第11種用法:多列定位批量查找(MATCH)

目的:根據【工號】查找【地區】、【銷售員】及【銷售額】

公式:=VLOOKUP($F2,$A$1:$D$6,MATCH(G$1,$A$1:$D$1,0),0)

說明:“查找值”$F2也就是通過【工號】查找【地區】、【銷售員】及【銷售額】,由於公式需要向右及向下填充,查找值列保持不變,需要將F列進行鎖定也就是$F2

“查找區域”根據查找值【工號】在所選的數據表中,也就是$A$1:$D$6中必須位於第一列。

此案例中是多列批量查找“列序數”並且與需要查找數據的字段名稱與數據表中中的字段名稱位置不一致,需要嵌套一個MATCH函數(源數據字段名稱順序是【銷售員】【地區】【銷售額】需要查找數據表中字段名稱順序是【地區】【銷售員】【銷售額】)

MATCH函數:表示返回指定數值在指定數組區域中的位置

=MATCH(查找值,查找區域,匹配條件)

公式中MATCH(G$1,$A$1:$D$1,0)表示的是【地區】在$A$1:$D$1區域中的列號,也就第3列

“匹配條件”爲0,表示精確匹配

第12種用法:一對多查找(COUNTIF)

目的:根據【地區】查找多名【銷售員】

公式:=IFERROR(VLOOKUP($G2&COLUMN(A1),$A$1:$E$6,4,0),"")

說明:此案例中各個地區有多名銷售員,而VLOOKUP函數只能查找最近的數據,無法查找多個數據,需要在數據表中中增加一列【輔助列】,公式爲=C2&COUNTIF($C$2:C2,C2)

COUNTIF函數:表示計算區域中滿足給定條件的單元格的個數

=COUNTIF(區域,條件)

區域$C$2:C2:表示的是地區列,前面$C$2絕對引用,後面C2表示的是會隨着公式向下填充,單元格區域累積增加

條件C2:表示的是指定的條件計算單元格個數

如果單純的通過COUNTIF($C$2:C2,C2)計算得到的結果爲1,1,2,1,2的數據,爲了直觀體現出各個地區的個數,在COUNTIF連接一個C2單元格,得到結果爲杭州1,寧波1,杭州2,溫州1,寧波1(這裏的杭州2表示的是地區杭州有兩個)

VLOOKUP函數查找值$G2&COLUMN(A1)根據數據表中輔助列的形式地區名+數字,也就是通過【地區】查找多名【銷售員】(COLUMN函數請看VLOOKUP函數第10種用法說明)

“查找區域”根據查找值【輔助列】在所選的數據表中,也就是$A$1:$E$6中必須位於第一列,“列序數”爲4,表示對應結果【銷售員】位於所選區域中排第4列,“匹配條件”爲0,表示精確匹配。

最後嵌套IFERROR(IFERROR函數請看VLOOKUP函數第5種用法說明)是因爲溫州地區只有一名銷售員,通過公式填充會出現錯誤值,所以需要用IFERROR函數屏蔽錯誤值

第13種用法:多表混合查找(IF)

目的:根據【消費金額】查找【贈品】

公式:=IFERROR(VLOOKUP(H2,IF(G2="是",$A$2:$B$5,$C$2:$D$5),2,1),"無贈品")

說明:“查找值”H2也就是通過【【消費金額】查找【贈品】

由於“查找區域”是有多個區域,需要用IF函數來判斷是否是會員的情況,公式爲IF(G2="是",$A$2:$B$5,$C$2:$D$5)

IF函數:表示的是根據指定的條件判斷,當滿足指定的條件返回一個值,不滿足指定的條件返回相反的一個值

=IF(條件,滿足條件的值,不滿足條件的值)

此公式IF(G2="是",$A$2:$B$5,$C$2:$D$5)是根據條件是否是會員,當是會員時返回對應結果爲【會員獎勵規則】區域,當不是會員時返回對應結果爲【非會員獎勵規則】

“列序數”爲2,表示對應結果【贈品】位於所選區域中排第2列,“匹配條件”爲1,表示近似匹配。

最後嵌套IFERROR(IFERROR函數請看VLOOKUP函數第5種用法說明)是因爲低於2000消費金額時沒有贈品,通過公式填充會出現錯誤值,所以需要用IFERROR函數將錯誤值顯示爲“無贈品”,當然也可以直接輸入一個英文的雙引號,屏蔽錯誤值直接顯示爲空。

第14種用法:跨多表查找(INDIRECT)

目的:根據【產品】查找每個月份的【銷售額】

公式:=VLOOKUP($B$1,INDIRECT(A2&"!A:B"),2,0)

說明:“查找值”$B$1也就是通過【產品】查找每個月份的【銷售額】,由於公式向下填充,查找值要絕對引用

此案例中“查找區域”在不同的工作表中,直接引用一個工作表中的數據區域,需要手動的更改工作表的名稱會比較麻煩,工作效率也會很低。

在此可以引用【月份】列的數值,但是直接引用月份列的數值,公式爲A2&"!A:B"得到的結果是錯誤(原因是A2&"!A:B"是文本,無法參與計算得到錯誤值)

出現這種情況,需要用INDIRECT函數來解決,公式爲INDIRECT(A2&"!A:B")

INDIRECT函數:表示的是返回由文本字符串指定的引用(簡單的理解爲返回單元格的值)

=INDIRECT(單元格引用)

“列序數”爲2,表示對應結果【銷售額】位於所選區域中排第2列,“匹配條件”爲0,表示精確匹配。

第15種用法:反向查找(數組或MATCH+INDEX)

目的:根據【銷售員】查找【工號】

公式:=VLOOKUP(F3,IF({1,0},$B$2:$B$6,$A$2:$A$6),2,0)

說明:“查找值”F3,也就是通過【銷售員】查找【工號】,“查找區域”由於在查找的數據表中【銷售員】列不在所選區域中排第一列(無法按照VLOOKUP函數的使用方法)。對於基礎用法中講解到增加輔助列可以查找對用的【工號】,現在無需增加輔助列結合IF函數數組用法可以實現反向查找,數組公式爲IF({1,0},$B$2:$B$6,$A$2:$A$6)

第一參數:{1,0},IF的第一參數是一個條件判斷的邏輯值,現在卻是{1,0},在這裏我們可以將1看作是True條件正確,將0看作是False條件錯誤,還需要注意的是1跟0是用大括號括起來的

當IF函數條件爲1時,返回$B$2:$B$6單元格區域,也就是【銷售員】區域

當IF函數條件爲0時,返回$A$2:$A$6單元格區域,也就是【工號】區域

選中數組公式IF({1,0},$B$2:$B$6,$A$2:$A$6)按F9直觀顯示對應結果爲{"洪寶坤","LM001";"凡克明","LM002";"曹錦榮","LM003";"周蒙","LM004";"鄭欣宜","LM005"}

最後VLOOKUP函數“列序數”爲2,表示對應結果【工號】位於所選區域中排第2列,就能得到對應的【工號】

注:數組公式需要三鍵結束,按Ctrl+Shift+Enter得到對應結果

若VLOOKUP函數結合IF函數數組公式難以理解,我們可以結合MATCH函數和INDEX函數查找對應的【工號】。

公式爲:=INDEX($A$2:$A$6,MATCH(F2,$B$2:$B$6,0))

MATCH函數:表示返回指定數值在指定數組區域中的位置

=MATCH(查找值,查找區域,匹配條件)

此案例中MATCH(F2,$B$2:$B$6,0)根據F2單元格也就是查找【銷售員】“曹錦榮”,在查找數據表中區域$B$2:$B$6,精確匹配,最後得到結果位置在第3行

INDEX函數:表示的是返回表格或區域中的值或值的引用

INDEX(區域,第幾行,第幾列)

此案例中INDEX($A$2:$A$6,MATCH(F2,$B$2:$B$6,0)),第一個參數根據指定【工號】區域$A$2:$A$6,第二個參數結合MATCH函數查找第3行對應結果的【工號】爲“LM003”,第三個參數可忽略

第16種用法:多條件查找(數組或MATCH+INDEX)

目的:根據【地區】和【銷售員】查找【銷售額】

公式:=VLOOKUP(F2&G2,IF({1,0},$B$2:$B$6&$C$2:$C$6,$D$2:$D$6),2,0)

說明:“查找值”F2&G2,也就是通過【地區】和【銷售員】查找【銷售額】,“查找區域”IF({1,0},$B$2:$B$6&$C$2:$C$6,$D$2:$D$6)(IF函數數組說明請看VLOOKUP函數第15種用法),“列序數”爲2,表示對應結果【銷售額】位於所選區域中排第2列,“匹配條件”爲0,表示精確匹配。

注:數組公式需要三鍵結束,按Ctrl+Shift+Enter得到對應結果

此案例也可以結合MATCH函數和INDEX函數查找對應的【銷售額】。

公式=INDEX($D$2:$D$6,MATCH(F2&G2,$B$2:$B$6&$C$2:$C$6,0))

MATCH函數和INDEX函數說明請看VLOOKUP函數第15種用法

注:數組公式需要三鍵結束,按Ctrl+Shift+Enter得到對應結果

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章