
文|仟櫻雪
Excel函數(shù)千千萬,但大眾情人,獨他無二。
VLOOKUP函數(shù),傳說中的神查找&匹對,高效掌握它,分分鐘,幫你搞定那個她!
01
當之無愧的中央空調(diào)——VLOOKUP函數(shù),在企業(yè)中,不僅財務、采購、商品、物流、運營、生產(chǎn)這些部門會出現(xiàn)它的身影,而且客服、IT、研發(fā)、行政、人資、后勤等等這些部門,它都游刃有余。
熟練掌握VLOOKUP函數(shù),是大部分數(shù)據(jù)處理人的初始必經(jīng)之路,但是無數(shù)的表哥、表姐在利用VLOOUP函數(shù),進行初級入門的查找、匹配時,遇到各種報錯,便累覺不愛了。
枚舉各種報錯處理,見招拆招的鏟除VLOOUP函數(shù)查找路上的妖魔鬼怪,揭開數(shù)據(jù)分析的唯美面紗,是每一個表哥、表姐的必備法寶。
02
眾所周知,VLOOKUP函數(shù)是一個查找、匹配函數(shù),給定一個查找的目標,它就能從指定的查找范圍中查找返回想要查找到的值。它的基本“家庭結(jié)構(gòu)”為:
查找結(jié)果=VLOOKUP(找誰,查找范圍,在查找范圍里第幾列,精確查找OR模糊查找)
例如:根據(jù)右側(cè)的“產(chǎn)品編碼”,查找產(chǎn)品所屬于的“品類”,

正確公式=VLOOKUP($M2,$E$1:$G$20,3,0)
第一個參數(shù):找誰?找M列的“產(chǎn)品編碼”;
第二個參數(shù):在哪兒找,在左側(cè)數(shù)據(jù)源表的E列到G列,E列是要找的“誰”(產(chǎn)品編碼)所在的列,G列是“誰”所對應的目標(品類)所在的列,即E:G;
第三個參數(shù):在左側(cè)數(shù)據(jù)源區(qū)域中,從要找的“誰”(產(chǎn)品編碼)所在E列,到目標列(品類)所在G列的列數(shù)字,本例中是3;
第四個參數(shù):查找的方式,0或者FALSE代表精確查找(查找結(jié)果是數(shù)據(jù)源表格中第一條滿足條件的記錄的相應值),1或者TRUE代表模糊查找(查找最接近但比它小的那個值)
03
掌握了VLOOKUP的前世今生以及家庭結(jié)構(gòu),接下來開始斬妖除魔,進行常見報錯情況和處理枚舉。
(一)VLOOKUP函數(shù)初級報錯——結(jié)構(gòu)性錯誤枚舉
1.查找范圍不包含返回目標值列
錯誤公式=VLOOKUP($M2,$E$1:$F$20,3,0)

說明:該錯誤是查找范圍,根本不存在產(chǎn)品“品類”所在列,應該將G列納入查找范圍,即將查找范圍E:F,更改為E:G。
處理方法:查找范圍可以很大,但是必須包含查找目標列。
正確公式=VLOOKUP($M2,$E$1:$G$20,3,0)
1.查找范圍開始列位置,不是“找誰”所在列
錯誤公式=VLOOKUP($M2,$F$1:$G$20,3,0)

說明:VLOOKUP函數(shù)的查找范圍,開始列必須是要查找的“誰”(數(shù)據(jù)源中“產(chǎn)品編碼”所在列),該錯誤是未從開始列,計量查找范圍,將F:G,更改為E:G。
處理方法:查找范圍可以很大,但必須從“找誰”所在列,開始計量查找范圍。
正確公式=VLOOKUP($M2,$E$1:$G$20,3,0)。
1.第三參數(shù)——查找參數(shù),數(shù)字輸入錯誤
a.偶然因素,人為手動輸入錯誤
錯誤公式=VLOOKUP($M2,$E$1:$G$20,1,0)

說明:該錯誤是第三參數(shù)——查找參數(shù)錯誤,在數(shù)據(jù)源表中從“產(chǎn)品編碼”E列開始數(shù),3列,到“品類”所在G列止,而不是1列,數(shù)字1,是“產(chǎn)品編碼”所在列,應該將1,更改為3。
1.第三參數(shù)——查找參數(shù),數(shù)字輸入錯誤
b.偶然因素,人為一葉障目,視覺錯誤
錯誤公式=VLOOKUP($M2,$E$1:$G$20,2,0)

說明:該錯誤是第三參數(shù)——查找參數(shù)錯誤,在數(shù)據(jù)源表中“產(chǎn)品編碼”所在E列和“品類”所在G列中間隱藏了1列,導致人為視覺計量,參數(shù)為2,導致錯誤。
處理方法:查找范圍可以很大,但必須從“找誰”所在列開始計量查找范圍,釋放隱藏列,避免視覺誤差。
正確公式=VLOOKUP($M2,$E$1:$G$20,3,0)
注意:數(shù)據(jù)源中列數(shù)據(jù),有時會被隱藏很多列,在計數(shù)從開始列到目標終止列時,一定要注意。
1.漏掉第四位參數(shù)或輸入為1
錯誤公式=VLOOKUP($M3,$E$1:$G$20,3,1)

說明:該錯誤是第四參數(shù),VLOOKUP函數(shù)如果缺少第四個參數(shù),默認為模糊查找(1或者TRUE),則進行數(shù)字的區(qū)間查找,繼續(xù)使用1或者TRUE,我們就無法精確查找到結(jié)果,出現(xiàn)報錯,將其更改為0或者FALSE。
注意:當?shù)谒奈粎?shù)為1或者TRUE時,默認為模糊查找。
1.第四位參數(shù),模糊匹配時,報錯
例如:根據(jù)右側(cè)產(chǎn)品的單價,查找在左側(cè)的產(chǎn)品的銷售單價的單價等級
錯誤公式=VLOOKUP($w2,$S$2:$T$7,2,0)

說明:該錯誤本案例是第四參數(shù)設置錯誤,模糊查找(1或者TRUE),是進行數(shù)字的區(qū)間查找的最佳選擇,繼續(xù)使用0或者FALSE,我們就無法精確查找到結(jié)果,出現(xiàn)報錯。
處理辦法:右側(cè)公式中在查找“銷售單價”為15.25時,返回“單價等級”所對應的級別,原因是在左側(cè)的銷售單價區(qū)域中0和20中,VLOOKUP函數(shù)只選比查找值15.25小的那一個對應的級別,所以公式會返回0所對應的級別F,將其0改為1或者TRUE。
正確公式=VLOOKUP($w2,$S$2:$T$7,2,1)
1.第四位參數(shù),模糊匹配時,匹配錯誤
公式=VLOOKUP($w2,$S$2:$T$7,2,1),公式正確時,匹配結(jié)果錯誤
例如:以下案例中的價位區(qū)間從0開始到99元截止

說明:VLOOKUP使用模糊查找時,數(shù)據(jù)源區(qū)域的數(shù)據(jù)必須為升序列(從小到大),本例子中銷售單價為65和45的順序上下反了,導致VLOOKUP函數(shù),一臉懵逼不知如何查找,從而查找出模糊的錯誤數(shù)據(jù)。
處理方法:將數(shù)據(jù)源區(qū)域的順序按照從小到大更正即可。
1.VLOOKUP函數(shù)不支持按區(qū)域或者數(shù)組查找
例如:根據(jù)右側(cè)“平臺”和“產(chǎn)品編碼”,在左側(cè)日平臺銷售數(shù)據(jù),查找“產(chǎn)品名稱”
錯誤公式=VLOOKUP($M$1:$N$7,$B$1:$J$20,9,0)

說明:VLOOKUP函數(shù)查找區(qū)域不支持按照數(shù)組或者區(qū)域進行查找,本例中查找“平臺”和“產(chǎn)品編碼”的“產(chǎn)品名稱”,因同一個編碼在不同的平臺是不同的產(chǎn)品,屬于需組合處理或者進行結(jié)構(gòu)轉(zhuǎn)化后的匹配
處理方法:將“平臺”和“產(chǎn)品編碼”進行組合

正確公式=VLOOKUP($N2,$A$1:$K$20,11,0)
1.VLOOKUP函數(shù)不支持逆序查找
錯誤公式=VLOOKUP($O2,$E$1:$F$20,2,0)

說明:vlookup函數(shù)不支持反向查找。當查找區(qū)域中,查找列和目標列的順序相反時,本例中左側(cè)數(shù)據(jù)源區(qū)域“產(chǎn)品編碼"是查找列,“品類”是目標列,但是“品類”在“產(chǎn)品編碼”的前一列。此時從“品類”所在列開始輸入查找區(qū)域,是逆序查找,VLOOUP函數(shù)并不支持此類查找,則自動報錯
處理方法:將數(shù)據(jù)源區(qū)域的“品類”所在列,“飄移”到“產(chǎn)品編碼”的右側(cè),再進行從左到右的數(shù)據(jù)區(qū)域選擇 ,如下所示:

正確公式=VLOOKUP($O2,$F$1:$M$20,8,0)
(一)VLOOKUP函數(shù)初級報錯——內(nèi)容性錯誤枚舉
1.查找值與查找范圍開始列,數(shù)據(jù)格式不一致
錯誤公式=VLOOKUP($O2,$E$1:$F$20,2,0)
例如:根據(jù)右側(cè)“產(chǎn)品編碼”,在左側(cè)查找“產(chǎn)品編碼”對應的“產(chǎn)品名稱”,

說明:VLOOKUP函數(shù)還是個很“別扭”的函數(shù),如果查找值與查找范圍開始列的數(shù)據(jù)類型不匹配,則會報錯,本例左側(cè)查找范圍中“項目編號”是文本型數(shù)據(jù)(單元格左上方的綠色三角,表示文本格式數(shù)據(jù)),而右側(cè)查找值“產(chǎn)品編碼”是數(shù)值型(無綠三角),兩者數(shù)據(jù)類型不匹配,則報錯。
處理方法:統(tǒng)一數(shù)據(jù)類型格式,統(tǒng)一使用文本型格式或統(tǒng)一使用數(shù)值型數(shù)據(jù),將右側(cè)的“找誰”的數(shù)值型格式,添加一個空格格式轉(zhuǎn)換成文本型格式進行查找。
正確公式=VLOOKUP($O2&"",$E$1:$F$20,2,0)
1.查找范圍開始列與查找值,數(shù)據(jù)格式不一致
錯誤公式=VLOOKUP($O2,$E$1:$F$20,2,0)

說明:同樣是數(shù)據(jù)格式不統(tǒng)一問題,如果查找值與查找范圍開始列的數(shù)據(jù)類型不匹配,則會報錯,本例左側(cè)查找范圍中“項目編號”是數(shù)值型數(shù)據(jù),而右側(cè)查找值“產(chǎn)品編碼”是文本型(帶綠三角),兩者數(shù)據(jù)類型不匹配,則報錯。
處理方法:統(tǒng)一數(shù)據(jù)類型格式,統(tǒng)一使用文本型格式或統(tǒng)一使用數(shù)值型數(shù)據(jù),將右側(cè)的“找誰”的文本型格式,“*1”轉(zhuǎn)換成數(shù)值型格式進行查找。
正確公式=VLOOKUP($O2*1,$E$1:$F$20,2,0)
注意:不到萬不得已,盡量想辦法不要更改數(shù)據(jù)源。
1.查找區(qū)域中含有“隱形”字符(例如空格)
公式正確,但是出現(xiàn)查找報錯:

說明:常見文本型數(shù)據(jù),在錄入系統(tǒng)時人為誤差導致“隱形空格”存在或者數(shù)據(jù)源從網(wǎng)頁或數(shù)據(jù)庫中取出來是帶有格式的,觀察看不出來帶有空格,本例中右側(cè)數(shù)據(jù),“產(chǎn)品編碼”前帶有空格,左右數(shù)據(jù)格式不統(tǒng)一導致報錯但沒有空格格式的,正常查找匹配數(shù)據(jù)。
處理方法:剔除右側(cè)數(shù)據(jù)的文本空格,在右側(cè)“產(chǎn)品編碼”列加入幾列空列,然后對A列進行分列操作(數(shù)據(jù)-分列),即可把不可見字符分離出去,然后整合數(shù)據(jù)后進行匹配。

正確公式=VLOOKUP($O3,$E$1:$F$20,2,0)
1.查找區(qū)域中含有不規(guī)則“隱形”字符(例如空格)

說明:查找列含有不規(guī)則的空格,有時1個或者2個,甚至多個空格,這些就是類空格的不可見字符。
處理方法:直接在單元格中復制不可見字符粘貼到替換窗口,替換掉即可。

1.數(shù)據(jù)源中出現(xiàn)重復記錄,數(shù)據(jù)查找錯誤
錯誤公式=VLOOKUP($P5,$E$1:$H$20,4,0)
例如:根據(jù)右側(cè)“平臺”、“產(chǎn)品編碼”數(shù)據(jù)查找其對應的“收入”;

說明:本例中原始數(shù)據(jù)中同一個“產(chǎn)品編碼”屬于不同的“平臺”,但是“收入”是不同的,則直接根據(jù)“產(chǎn)品編碼”查找數(shù)據(jù)源中的“收入”,VLOOKUP會傻掉,不知道匹配哪個收入數(shù)據(jù),VLOOKUP一般默認從上到下的查找順序,遇到的第一個“產(chǎn)品編碼”的收入則進行查找結(jié)果呈現(xiàn),因此出現(xiàn)數(shù)據(jù)內(nèi)容的錯誤。
處理方法:輔助列處理,將“產(chǎn)品編碼”和“平臺”進行組合匹配,但是數(shù)據(jù)源中也需要進行組合,進行統(tǒng)一查找。

正確公式=VLOOKUP($O5,$A$1:$I$20,9,0)
注意:此類錯誤,一般不會輕易被發(fā)現(xiàn),但是會導致總金額或者匯總數(shù)據(jù)差距甚遠
1.查找范圍不固定,導致部分查找匹配
錯誤公式=VLOOKUP($N6,E5:H24,4,0)

說明:本例中根據(jù)“產(chǎn)品編碼”查找對應“收入”,但是查找區(qū)域沒固定,其中編碼為“64234”的產(chǎn)品在左側(cè)數(shù)據(jù)源中是第2行,但是查找區(qū)域是“E5:H24”屬于“相對引用”,第2行根本不在查找范圍內(nèi),因此出現(xiàn)報錯。
處理方法:將區(qū)域進行行列絕對引用,鎖定不變動 。

正確公式=VLOOKUP($N6,$E$1:$H$20,4,0)
1.文本簡稱模糊匹配報錯
錯誤公式=VLOOKUP($N2,$F$1:$I$20,4,0)
例如:根據(jù)右側(cè)的“產(chǎn)品名稱”簡稱,查找對應的銷售數(shù)量;

說明:右側(cè)“產(chǎn)品名稱”是數(shù)據(jù)源中的產(chǎn)品名稱的簡稱,根據(jù)簡稱進行精確查找匹配,無法一一匹配,故此報錯。
處理方法:利用通配符“*”進行精確匹配,查找?guī)в泻喎Q關(guān)鍵字詞的數(shù)據(jù),例如查找?guī)в小袄睢毙盏耐瑢W,等。
正確公式=VLOOKUP($N2&"*",$F$1:$I$20,4,0)
1.通配符使用錯誤導致報錯
錯誤公式=VLOOKUP($X3,$R$2:$S$6,2,0)
例如:根據(jù)右側(cè)的單價區(qū)間,在左側(cè)的單價區(qū)間對應的“單價等級”,查找對應的單價等級;

說明:“~”符號在文本中時,在VLOOKUP函數(shù)中,會被默認特殊函數(shù)條件,不是文本“~”。
處理方法:用“~~”就可以表示查找文本的“~”了。
正確公式=VLOOKUP(SUBSTITUTE($X5,"~","~~"),$R$2:$S$6,2,0)

03
VLOOKUP函數(shù)查找小妙招
1.VLOOKUP+IF組合逆序查找匹配
公式=VLOOKUP($N2,IF({1,0},$F$1:$F$20,$E$1:$E$20),2,0)

說明:根據(jù)右側(cè)“產(chǎn)品編碼”,查找其對應的“品類”,但是在左側(cè)的數(shù)據(jù)源中,“品類”所在列E列,卻在“產(chǎn)品編碼”列的前面列,逆序而處之,故此需要進行逆序查找匹配;
(1)公式1=IF({1,0},$F$1:$F$20,$E$1:$E$20)
是將左側(cè)的數(shù)據(jù)源區(qū)域進行了逆序的正向扭轉(zhuǎn);

(1)公式2=VLOOKUP($N2,IF({1,0},$F$1:$F$20,$E$1:$E$20),2,0)是組合函數(shù),扭轉(zhuǎn)順序后的查找匹配。
1.VLOOKUP+CHOOSE組合逆序查找匹配
公式=VLOOKUP($P2,CHOOSE({1,2},$F$1:$F$20,$E$1:$E$20),2,0)

說明:根據(jù)右側(cè)“產(chǎn)品編碼”,查找其對應的“品類”,但是在左側(cè)的數(shù)據(jù)源中,“品類”所在列E列,卻在“產(chǎn)品編碼”列的前面列,逆序而處之,故此需要進行逆序查找匹配;
(1)公式1=CHOOSE({1,2},$F$1:$F$20,$E$1:$E$20)
是將左側(cè)的數(shù)據(jù)源區(qū)域進行了逆序的正向扭轉(zhuǎn);

(2)公式2=VLOOKUP($P2,CHOOSE({1,2},$F$1:$F$20,$E$1:$E$20),2,0)
是組合函數(shù),扭轉(zhuǎn)順序后的查找匹配。
1.COLUMN()/ROW()函數(shù)批量查找
COLUMN(),用于同一行數(shù)據(jù)自動產(chǎn)生列序列號;
ROW(),用于同一列數(shù)據(jù)自動產(chǎn)生序行號。
公式=VLOOKUP($P2,$E$1:$G$20,COLUMN(C1),0)
等價于=VLOOKUP($P2,$E$1:$G$20,3,0)

左側(cè)的數(shù)據(jù)源中,因此利用column()函數(shù)自動計數(shù)“品類”和“收入所在列”,其中column(C1)=3,返回“品類”所在列的內(nèi)容,因此只需將公式右側(cè)填充即可,自動填充“收入”等內(nèi)容的匹配查找;
后話:VLOOKUP函數(shù)查找匹配完畢,并不是萬事大吉,一定需返回原數(shù)據(jù)源篩選查看是否查找匹對正確,進行查錯處理,保證查找匹配正確。
04
Excel函數(shù)千千萬,但大眾情人,獨VLOOUP無二,熟練掌握這20個斬妖除魔利器,前途無可限量,再也不會輕易入坑了。
那些年,我們走過的查找之路,趟過的20個坑,如今坑已平,那個她,分秒可見傾城容顏。
(注:2017.09.20 工作技能積累打卡,記錄點滴數(shù)據(jù)分析成長之路,縱使分析工具換過千千萬萬,Excel之美,難相忘,感謝老大的啟蒙!不足之處,望見諒,后續(xù)更新)