環境:window10 工具:wps office
大家好,我是胖胖姐。在日常工作中,總是會用到vlookup函數,今天和大家分享3大類18種vlookup函數的經典用法,從基礎用法到高階用法,幫助大家提高處理資料的效率。
基礎用法
文法:VLOOKUP(查找值,資料表,序列數,比對條件)
文法說明:
【查找值】按照某個值來查找想要的資料,即查找的對象。
【資料表】在什麼範圍内查找,即查找的區域,需要按F4絕對引用。
【序列數】比對資料在查找區域的第幾列,第幾列指的是查找區域内想要傳回的值所在的列。
【比對條件】0或FALSE代表精準比對,1或TRUE代表近似比對。
1、精準查找
公式:
=VLOOKUP(G17,$C$16:$E$21,3,FALSE)
根據貨品類型來查找對應的單價和數量,如下圖:
需要注意的是C16:E21查找區域需要用$符号絕對引用定位,否則當下拉公式的時候,查找範圍會跟随向下移動,最終會導緻比對資料出錯,如下圖:
2、近似比對
公式:
=VLOOKUP(H27,$C$26:$D$31,2,TRUE)
近似比對适合用在區間查找,查找銷售額在某個區間的提成比例,比對條件用的TRUE,如下圖:
3、反向查找
當我們查找的對象所在列,在被查找的值所在列右邊,我們可以把查找的列移動,然後再進行查找,即就是反向查找,如下圖:
4、多條件查找
連接配接列公式:=C48&D48
公式:
=VLOOKUP(H48&I48,$B$47:$F$52,5,FALSE)
根據水果類型和産地查找市場價,可以添加輔助列,用連接配接符&把查找區域的水果列和産地列連接配接,然後再查找,如下圖:
嵌套進階用法
1、屏蔽錯誤值(IFERROR)
當查找對象在查找範圍内找不到,就會報錯,如下圖:
有時候我們需要把這種查不到進而報錯的項,顯示為空白單元格,或者其它的内容,可以用IFERROR函數和vlookup函數嵌套使用達到效果,如下圖:
公式:
=IFERROR(VLOOKUP(F8,$B$6:$D$11,3,0),"")
2、關鍵詞查找
關鍵詞查找,也叫模糊查找,就是查找對象内容不完整在查找區域裡隻有一部分,比如下圖中查找對象“合作客戶”隻是查找區域裡的“合作客戶”中的一部分内容。
關鍵詞查找一般要用到通配符,*代表比對0個或多個字元,?代表比對1個字元,&代表連接配接符。
公式:
=VLOOKUP("*"&F17&"*",$B$16:$D$21,3,0)
3、文本數值混合查找(連接配接符 &)
公式:
=VLOOKUP(F27&"",$B$26:$C$31,2,0)
當查找對象和查找區域格式不一緻,一個為數值格式,一個為文本格式,如果用基礎的vlookup函數查找會報錯,我們可以用查找對象+連接配接符&+""來和vlookup嵌套使用來查找,如下圖:
4、去除空格查找(substitute)
我們有時候遇到的資料總是會有一些空格,如果需要比對查找資料,處理起來會很麻煩。
substitute函數單獨使用是替換函數,如果和vlookup函數嵌套使用,就不需要先去除一遍空格然後再查找。
substitute函數文法:substitute(字元串,原字元串,新字元串)
文法說明:
【字元串】需要替換的單元格。
【原字元串】需要替換單元格内的什麼内容。
【新字元串】想要替換的新内容。
示例:将F38單元格内的空格替換掉,如下圖:
公式:
=SUBSTITUTE(F38," ","")
嵌套使用查找示例:将姓名去除掉空格後查找所對應的工資是多少?
場景1:
公式:
=VLOOKUP(SUBSTITUTE(F38," ",""),$B$37:$D$42,3,0)
場景2:
公式:
{=VLOOKUP(F46,SUBSTITUTE($B$45:$D$50," ",""),3,0)}
需要注意的是,如果這樣嵌套的話,需要用大括号{}給公式包括,然後再按住ctrl+shift+Enter,否則會出錯#VALUE!。
5、去除不可見字元查找(clean)
有時候有些資料看起來沒有什麼差別,但是它是有些空白的空格,如果直接查找會報錯#N/A,如下圖:
這時候可以用clean函數嵌套vlookup函數使用。
公式:{=VLOOKUP(CLEAN(F56),CLEAN($B$55:$D$60),3,FALSE)}
需要注意的是我用的WPS也是需要加大括号按ctrl+shift+Enter,否則也會出錯。
6、多列批量查找(column)
column是引用函數,用于傳回指定引用的列号。
文法:column(需要傳回的列的序号)
用法就是你想知道某個單元格在第幾列,就可以用這個函數傳回列數,如下圖:
當我們的查找對象和查找區域格式列名順序都一樣時,可以用column函數嵌套vlookup函數進行多列批量查找,直接拖動就全部查找,如下圖:
公式:
=VLOOKUP($G76,$B$75:$E$80,COLUMN(B1),0)
需要注意的是$G76查找對象需要引用,行變列不變,否則拖動會出錯。
7、多列動态查找(match)
match函數的用法和vlookup函數差不多,都是比對函數,match函數是互相比對,可以查找某個值在查找區域的那個位置,例如查找A列的姓名在B列的那個位置。
match函數和vlookup函數嵌套,可以多列動态查找,不像和colunm嵌套一樣需要查找對象列名順序都要和查找區域一緻才行。
match函數文法:match(查找值,查找區域,比對類型)
文法說明:
【查找值】查找的對象。
【查找區域】在那個區域查找,查找範圍。
【比對類型】0代表精準查找,1代表模糊查找。
match函數和vlookup函數嵌套使用,可以多列動态查找,如圖示列:
公式:
=VLOOKUP($G106,$B$105:$E$110,MATCH(H$105,$B$105:$E$105),0)
原理:match函數會傳回查找對象的列在查找區域的位置數,然後vlookup在進行查找比對。上述公式相當于就是
=VLOOKUP($G106,$B$105:$E$110,3,0)
8、一對多查找(countif)
案列:查找同一個部門不同的員工是哪些?
第一步:添加輔助列,用連接配接符&和countif函數給部門加上序号,例如市場部有三個分别标上序号,如下圖:
公式:
=C85&COUNTIF($C$85:C85,C85)
第二步:再按照輔助列來比對市場部的員工,比對不到的員工就留白白單元格。
公式:
=IFERROR(VLOOKUP($G85&COLUMN(A1),$B$84:$D$92,3,0),"")
公式解釋:這裡嵌套column引用函數是為了給查找值加上序号數,去比對輔助列;iferror函數是将部門沒有員工的保留白白單元格顯示。
9、多行合并查找
案列:查找同一個部門不同的員工是哪些?
第一步:添加輔助列,先将市場部的員工查找出來連接配接在一起,如下圖:
公式:
=C98&IFERROR("、"&VLOOKUP(B98,B99:$D$106,3,0),"")
第二步:再使用vlookup函數根據部門名稱,比對輔助列,如下圖:
公式:
=VLOOKUP(F98,$B$97:$D$105,3,0)
10、多表混合查找(if)
if函數是條件判斷函數。
if函數文法:=if(條件,真值,假值)
解釋:當滿足條件時,傳回一個真值,否則就傳回一個假值,這個函數和SQL語句用法一樣的。
案列:根據是否是會員及消費金額來比對對應的贈品是什麼?
場景:會員和非會員是單獨存放的表格,需要查找在一個表格中,如下圖:
公式:
=IFERROR(VLOOKUP(G111,IF(F111="是",$B$111:$C$114,$B$117:$C$120),2,TRUE),"")
解釋:這個就是把vlookup函數的查找範圍先用條件函數判斷一下該去那個表範圍查找。如下圖:
11、跨多表查找(indirect)
indirect函數可以把一個文本位址轉換為真正的位址,即傳回文本字元串所指定的内引用。
indirect函數文法:=indirect(單元格引用,引用的樣式)
【單元格引用】對指定單元格中資料内容的引用。
【引用的樣式】指定單元格的引用類型,可不寫。
案例:查找相應産品1月到3月的銷售金額,每個月的銷售金額單獨存放在不同的工作表。
可以使用column函數得到表1,表2,表3的位址,再用indirect把文本位址轉換,不然會出錯,具體用法如下圖:
公式:
=VLOOKUP($B126,INDIRECT("表"&COLUMN(A1)&"!$A$3:$F$8"),6,0)
高階用法(數組)
1、反向查找
上面我們反向查找是通過建構輔助列或者是手動交換兩列位置來進行查找,其實可以數組自動交換位置實作反向查找,如下圖:
公式:
=VLOOKUP(G7,IF({1,0},$C$7:$C$11,$B$7:$B$11),2,0)
解釋:IF({1,0}表示無論值是真還是假都傳回值
2、多條件查找
案例:查找相同水果到不同産地的市場價。
公式:
=VLOOKUP(G17&H17,IF({1,0},$B$17:$B$21&$C$17:$C$21,$E$17:$E$21),2,0)
其中IF({1,0},$B$17:$B$21&$C$17:$C$21,$E$17:$E$21)就是将水果和産地連接配接一起成一列和市場價傳回成新的數組,當做vlookup函數的查找區域,如下圖:
3、一對多查找
案列:查找不同區域的員工有哪些。
公式:
=IFERROR(VLOOKUP(COLUMN(A1),IF({1,0},COUNTIF(INDIRECT("b27:b"&ROW($27:$34)),$G27),$C$27:$C$34),2,0),"")
這個就是前面的函數多層嵌套,可以實作自動查找。
好了這期内容就分享完了,相信日常工作中都能用到,其中一些較難的也有其它方式可以實作,可以關注我,了解更多資料處理的方法。