VLOOKUP函數(shù)作為EXCEL中查找和引用函數(shù)中重要的一員,在批量處理數(shù)據(jù)時(shí)可以收到事半功倍的效果。尤其是在經(jīng)濟(jì)普查、農(nóng)業(yè)普查、人口普查等大型調(diào)查的數(shù)據(jù)處理階段,若能靈活運(yùn)用此函數(shù),不僅能節(jié)約大量人力核對(duì)工作,還能做到更為準(zhǔn)確無誤地找你所找,得你所需。本文結(jié)合金鄉(xiāng)縣第三次經(jīng)濟(jì)普查數(shù)據(jù)實(shí)際應(yīng)用案例,講解一下VLOOKUP函數(shù)的具體運(yùn)用過程。
一、VLOOKUP函數(shù)介紹
(一)用途:在表格或數(shù)值數(shù)組中的首列查找指定的數(shù)值,并由此返回表格或數(shù)組當(dāng)前行中指定列處的數(shù)值。
(二)語法:VLOOKUP(查找目標(biāo),查找范圍,返回值的列數(shù),精確或模糊查找)
(三)參數(shù):
1.查找目標(biāo)為需要在數(shù)據(jù)表第一列中查找的數(shù)值,它可以是數(shù)值、引用或文字串;
2.查找范圍為需要在其中查找數(shù)據(jù)的數(shù)據(jù)表,可以使用對(duì)區(qū)域或區(qū)域名稱的引用;
3.返回值的列數(shù)為查找范圍中待返回的匹配值的列序號(hào);
4.精確或模糊查找為一邏輯值,指明函數(shù)VLOOKUP返回是精確匹配還是近似匹配。若為TURE、省略或1,則返回近似匹配值;若為FALSE或0,則返回精確匹配值;若找不到,則返回錯(cuò)誤值#N/A。
二、經(jīng)濟(jì)普查中運(yùn)用VLOOKUP函數(shù)查找引用數(shù)據(jù)案例
(一)VLOOKUP函數(shù)使用過程
圖一:全部數(shù)據(jù),為經(jīng)濟(jì)普查數(shù)據(jù)庫(第二張工作表名)
圖二:需要查找的數(shù)據(jù)(第一張工作表名)
待解決問題:我們需要從“圖一”中查找到“圖二”第一列“單位詳細(xì)名稱”所對(duì)應(yīng)的街(村)門牌號(hào)、行政區(qū)、固定電話等信息,并引用顯示在“需要查找的數(shù)據(jù)”工作表中。
圖三:
B2單元格中的公式為:
=VLOOKUP($A2,全部數(shù)據(jù)!$B:$CI,2,0)
解析:$A2為“需要查找的數(shù)據(jù)”工作表中第一列“單位詳細(xì)名稱”;
全部數(shù)據(jù)!$B:$CI為絕對(duì)引用區(qū)域,注意和查找目標(biāo)相對(duì)應(yīng)的“單位詳細(xì)名稱列”必須是“全部數(shù)據(jù)!$B:$C”中第一列的數(shù)值;
2返回“全部數(shù)據(jù)!$B:$C”中第二列的數(shù)值,而非“全部數(shù)據(jù)”(圖一)工作表中的第二列;
0表示精確匹配值。
我們可以把這個(gè)公式復(fù)制到后面的C、D等列,但是需要把數(shù)字2手動(dòng)替換成3、4等列數(shù)。
為了簡(jiǎn)化工作量,可以利用COLUMN函數(shù)指定單元格的列序號(hào)。
COLUMN函數(shù)用途為返回給定引用的列標(biāo)。舉例:
COLUMN(A1)、COLUMN(A2)、COLUMN(A3)……返回值為1,即A列的列序號(hào);
COLUMN(B1)、COLUMN(B2)、COLUMN(B3)……返回值為2,即B列的列序號(hào);
COLUMN(C1)、COLUMN(C2)、COLUMN(C3)……返回值為3,即C列的列序號(hào)。
圖四:
-C2單元格中的公式為:
=VLOOKUP($A2,全部數(shù)據(jù)!$B:$CI,COLUMN(C2),0)
解析:其中COLUMN(C2)返回“全部數(shù)據(jù)!$B:$C”中第三列的列序號(hào),相當(dāng)于數(shù)值3。
我們直接復(fù)制公式到其他單元格,COLUMN函數(shù)可實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換列序號(hào)。
(二)VLOOKUP返回值錯(cuò)誤處理
如果在查找范圍的數(shù)據(jù)表中找不到相應(yīng)的目標(biāo),則VLOOKUP返回#N/A。如下圖五,在“全部數(shù)據(jù)”中無法找到“金鄉(xiāng)縣公安局第一派出”這一單位詳細(xì)名稱,則B5單元格中返回錯(cuò)誤值#N/A。
圖五:
有時(shí)為了方便后期計(jì)算或顯示美觀,我們需要用空值或者“0”值來代替#N/A。這時(shí),就可以利用錯(cuò)誤處理函數(shù)IF(ISERROR())進(jìn)行修正,讓#N/A顯示為空值或者“0”,如下圖六中的C5單元格顯示為空值。
圖六:
單元格C5顯示為空值,其單元格中公式為:
=IF(ISERROR(VLOOKUP($A5,全部數(shù)據(jù)!$B:$CI,2,0)),"",VLOOKUP($A5,全部數(shù)據(jù)!$B:$CI,2,0))
若把C5單元格中公式替換為:
=IF(ISERROR(VLOOKUP($A5,全部數(shù)據(jù)!$B:$CI,2,0)),"0",VLOOKUP($A5,全部數(shù)據(jù)!$B:$CI,2,0)),則C5就顯示為“0”。
IF函數(shù)是一種重要的邏輯運(yùn)算函數(shù)。
用途:執(zhí)行邏輯判斷,它可以根據(jù)邏輯表達(dá)式的真假,返回不同的結(jié)果,從而執(zhí)行數(shù)值或者公式的條件檢測(cè)任務(wù),該函數(shù)廣泛用于需要進(jìn)行邏輯判斷的場(chǎng)合。
ISERROR函數(shù)是IS類函數(shù)的一種,語法:ISERROR(參數(shù)),ISERROR的參數(shù)是任意錯(cuò)誤值(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?或#NULL!))。
上述C5中公式,若邏輯判斷ISERROR(VLOOKUP($A5,全部數(shù)據(jù)!$B:$CI,2,0))為真(#N/A),則返回空值,若邏輯判斷ISERROR(VLOOKUP($A5,全部數(shù)據(jù)!$B:$CI,2,0))為假(非#N/A),則返回依據(jù)查找目標(biāo)在查找范圍中查找到的相應(yīng)數(shù)值。
(三)VLOOKUP返回值錯(cuò)誤的常見原因有兩種:
一是沒有查找到目標(biāo),上述實(shí)例錯(cuò)誤顯示就是因?yàn)闆]有查找到目標(biāo)數(shù)據(jù)。
二是數(shù)值格式不同,查找目標(biāo)和查找范圍中的數(shù)值格式不同導(dǎo)致VLOOKUP返回值錯(cuò)誤。在實(shí)際工作中,從兩個(gè)不同程序中導(dǎo)出的數(shù)據(jù)庫,因其數(shù)據(jù)源不同往往存在數(shù)值格式差異,導(dǎo)致VLOOKUP返回值錯(cuò)誤,這時(shí)就需要對(duì)查找數(shù)據(jù)進(jìn)行“分列”處理。具體方法:選中需要轉(zhuǎn)換格式的一列數(shù)值,點(diǎn)擊菜單欄“數(shù)據(jù)”-“分列”,按照分列向?qū)нM(jìn)行“下一步”操作,一般情況為默認(rèn),最后點(diǎn)擊“完成”。數(shù)值格式轉(zhuǎn)換為相同格式后,在利用VLOOKUP函數(shù)一般就能找到對(duì)應(yīng)目標(biāo)。
圖七:
(四)VLOOKUP字符的模糊查找
針對(duì)上述圖六中返回值錯(cuò)誤,我們可以進(jìn)行“包含”查找,找到最有可能的目標(biāo)。
圖八:
圖九:全部數(shù)據(jù)中查找多的最相近的單位詳細(xì)名稱“金鄉(xiāng)縣公安局第一派出所”。
圖八單元格D5中的公式:
=VLOOKUP("*"&$A5&"*",全部數(shù)據(jù)!$B:$CI,COLUMN(D5),0)
“金鄉(xiāng)縣公安局第一派出”在“全部數(shù)據(jù)”工作表中查找到“金鄉(xiāng)縣公安局第一派出所”,并返回相應(yīng)行的數(shù)值。
解析:查找目標(biāo)"*"&$A5&"*"包含通配符“*”。VLOOKUP函數(shù)第一個(gè)參數(shù)允許使用通配符“*”來表示包含的意思,把*放在字符的兩邊,即“*”&字符&“*”,其中&是對(duì)字符進(jìn)行連接的意思。
Vlookup函數(shù)的確是一種非常強(qiáng)大的查找引用函數(shù),在統(tǒng)計(jì)工作中熟練運(yùn)用能大大提高工作效率,節(jié)約時(shí)間成本。