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