【摘要】
對于經(jīng)常使用Excel的人來說,對于Vlookup函數(shù)肯定不陌生。Vlookup函數(shù)經(jīng)常被我們用于數(shù)據(jù)的查找、對比,關(guān)于該函數(shù)我們很多人都會用,可是用的都是相對比較簡單的功能,那么在本文中,我們對該函數(shù)做個非常詳細(xì)和深入的了解認(rèn)識。
【正文】
Vlookup函數(shù)是一個查找函數(shù),它是根據(jù)給定的一個查詢值,在指定的范圍中返回最后想要找到的那個值。它的基本語法為:
Vlookup(查詢值,查找范圍,顯示序列,匹配參數(shù))
我們以下方的實例為大家介紹以上四個參數(shù)的用法及注意事項。
一基本用法
我們希望根據(jù)學(xué)號,找到對應(yīng)的姓名、語數(shù)英及總分的成績。
我們根據(jù)Vlookup函數(shù)的語法,在B9單元格輸入以下公式:=VLOOKUP($A$9,$A$1:$F$6,2,0)。參數(shù)說明為:
查詢值:即為我們希望通過指定的查找內(nèi)容或單元格。在該例中我們希望通過A9單元格的學(xué)號“A001”去查找,所以A9單元格作為我們的查詢值。
查找范圍:
在使用vlookup函數(shù)的時候需要特別注意,查詢值必須為范圍的第一列。即我們是根據(jù)學(xué)號來查詢,所以在我們選擇范圍的時候?qū)W號要在該范圍的第一列,即從A列開始計算;
需要顯示的值也必須位于查找范圍中。即本例中的姓名也必須要在我們的范圍里,所以最后我們的范圍定位在A1到F6整個區(qū)域。
顯示序列:即需要顯示的值位于查找范圍的第幾列,而且該值必須為數(shù)字。我們最終希望返回的是姓名,姓名位于我們查找范圍A1到F6的第2列,所以在此輸入數(shù)字“2”
匹配參數(shù):該參數(shù)決定Vlookup函數(shù)是精確查詢還是模糊查詢,而且該匹配參數(shù)最好不要忽略。匹配參數(shù)分為以下兩種情況:
0、false——精確查詢
1、true——模糊查詢
隨后,關(guān)于語數(shù)英及總分的vlookup函數(shù)大家就可以自己完成了。
二進階版
2.1返回多列結(jié)果
還是上面的Vlookup函數(shù),難道后面的語數(shù)英及總分的函數(shù)我需要一個個填寫嗎?這樣,似乎有點太累了。其實,我們發(fā)現(xiàn),只需要在第一個Vlookup函數(shù)的基礎(chǔ)上,講“顯示序列”的值做變更,即可將公式往后復(fù)制計算結(jié)果。因此在這里我們再加入一個新的函數(shù)——Match。
函數(shù)語法為:match(查詢值,包含查詢值在內(nèi)的一行或一列,0)。該函數(shù)主要是返回指定的值在指定數(shù)組區(qū)域中的位置,也屬于查找函數(shù)之一。
因此,C9單元格的match函數(shù)寫法為:=MATCH(B$8,$A$1:$F$1,0)。我們需要通過B8單元格的“姓名”在A1到F1的行標(biāo)題上返回第幾個值,最后得到的結(jié)果是“2”,然后將該match函數(shù)嵌入到B9單元格中,即最后B9單元格的公式為:VLOOKUP($A$9,$A$1:$F$6,MATCH(B$8,$A$1:$F$1,0),0)
2.2多條件查詢
簡單的Vlookup函數(shù)能實現(xiàn)單一條件查詢,但是如果像以下的例子,需要同時滿足兩個條件的是否可以借助Vlookup函數(shù)來完成呢?
在本例中,需要同時滿足“所在地區(qū)”和“企業(yè)名稱”兩個條件,那我們可以利用“&”連接符的,將這兩個條件合并為唯一條件,即變成如下的效果:
如此一來,我們可以在H列輸入如下的vlookup函數(shù):=VLOOKUP(F2&G2,A:D,4,0)即可實現(xiàn)同時滿足兩個條件的查找。
2.3模糊查詢
一般情況下,我們使用vlookup來實現(xiàn)精確查詢,即返回一一對應(yīng)的唯一值,那vlookup函數(shù)還有另外一個非常常用的功能,及模糊查詢的功能。我們在一開始的基本用法中已經(jīng)跟大家說了vlookup最后的匹配參數(shù)可以是精確查詢(0或者False),也可以是模糊查詢(1或者True)。那么在上面介紹的例子中已經(jīng)對精確查詢做了詳細(xì)介紹,那么在這一部分,我們將介紹模糊查詢的用法。
那在什么情況下,使用vlookup的模糊查詢呢?我們看看以下這個例子:
在本例中,我們需要根據(jù)每個訂單號的貨物金額找到對應(yīng)的優(yōu)惠折扣,最后計算折后價格。傳統(tǒng)的方法是通過多層嵌套的if函數(shù)來完成,可是if函數(shù)嵌套實在太麻煩了,而且很容易出現(xiàn),那么在這種情況下,我們就可以利用vlookup的模糊查詢功能來實現(xiàn)了。
使用Vlookup的模糊查詢的前提條件是:查詢范圍的第一列必須為升序排列。外加我們已經(jīng)知道做模糊查詢的時候最后的參數(shù)為1或者True,因此,在C2單元格我們就可以輸入以下函數(shù):=VLOOKUP(B2,$F$2:$G$8,2,1),即可快速的計算得到優(yōu)惠價格。
Vlookup函數(shù)的模糊查詢的規(guī)則是:按照查找范圍的第一列,并且是第一列中向下匹配最接近的那個值,返回對應(yīng)序列的結(jié)果。所以在這里,針對B2單元格的32380向下匹配,最接近的為20000,那么返回第二列的值即為5%。如此一來,我們就可以利用簡單的vlookup函數(shù)來替換多層嵌套的if函數(shù)了。
三高階版
3.1反向查找
一般情況下,Vlookup函數(shù)只能從左往右查找數(shù)據(jù),如果需要從右往左查找,我們一般需要把數(shù)據(jù)區(qū)域進行移動,如以下的例子,希望通過姓名找到對應(yīng)的學(xué)號:
在這里我們可以借助if函數(shù)的數(shù)組功能將A、B兩列的位置重新組合,然后再利用Vlookup函數(shù)從左往右查找。
我們在B9單元格輸入如下公式:=VLOOKUP(A9,IF({1,0},B2:B6,A2:A6),2,0)。在Excel中,1相當(dāng)于True,0相當(dāng)于False。所以當(dāng)1時,它會返回if函數(shù)的第二個參數(shù)真值及B列,反之返回第三個參數(shù)即A列。然后再根據(jù)數(shù)組運算返回的單元格區(qū)域為:{"張三","A001";"李四","A002";"王五","A003";"趙六","A004";"田七","A005"}。如此一來便可在這個新的區(qū)域中查找,然后返回第二列的值便可。