巧用Vlookup函數查信息(往期精選)
在一個數據量比較大的工作表中,如果想要找到符合某些特徵的記錄,通常都會想到採用篩選的方式實現。但如果需要查找的是某一條記錄的話,用查找引用類函數就會更為方便。這次,就為各位介紹常用的查找引用類函數——VLookup的使用方法。
Vlookup中的V是Vertical的縮寫,從單詞本身可知,這是一個垂直進行查找的函數,也可以理解為在一列數據裡面找東西的函數。
在介紹Vlookup函數的具體使用方法之前,我們先通過Excel函數幫助了解這個函數的說明及語法形式:
VLOOKUP 是在表格數組的首列查找指定的值,並由此返回表格數組當前行中其他列的值。其語法為VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)。看了這一串有些複雜的參數,是不是有些糊塗了。我們可以採用這樣一種簡單的方法先記住Vlookup函數的參數。
VLOOKUP(需要找的內容,用來查找的數據表,返回數據表中第幾列的內容,查找的方式)
要注意的是:其中需要找的內容一定是在數據表的最左列,查找結果要精確的話,第四個參數要寫False或是0。
說到這裡,不得不吐槽一下微軟了。
看圖:
關於第4參數,說明和事實嚴重不相符。打開幫助.....坑爹的是幫助里又是另一番說法:
想必這會給初學者帶來很大的困惑吧?所以關鍵時候一定不要迷戀哥,哥只是個傳說。
接下來我們用示例來進一步說明VLOOKUP函數的用法。下圖為某公司的員工信息表,有N多行數據,我們需要找出某員工的詳細記錄。
(一)查找姓名為天竺僧的所在部門信息
我們將需要查找的姓名記錄在單元格F5中,然後在G5中寫公式:
=VLOOKUP($F$5,$B$1:$D$10,2,0)
由於員工部門對於員工信息表在第2列(以姓名所在列為1,向右數),故第三個參數為2,因為我們想要精確的找到天竺僧的部門,即第四個參數採用精確查找的查找方式,所以需要寫為False,而在Excel中,False的邏輯值為0,因此可以簡寫為0。
採用上述的公式,我們就很容易的查到天竺僧是的部門是生產部。如果需要了解該員工的詳細記錄的話,可以繼續在其他單元格里書寫公式,當然第三個參數會有變化,比如職務在第3列就應該寫成3。
那如果想更輕鬆的去書寫公式,有沒有更好的方法呢?回答是肯定的,只要找到一種能幫我們自動返回列序號的函數就可以了。下面的例子將詳細說明。
(二)查找姓名為天竺僧的全部資料
從表中知道,我們需要了解姓名為天竺僧的部門和職務兩種信息。為了簡化公式,就是說寫好一個公式後用複製的方法快速把其他公式寫完,我們就採用COLUMN函數幫我們來數Vlookup的第三個參數——列序號。
COLUMN函數可以返回指定單元格的列號。公式中使用了COLUMN(B1),計算結果就是B1單元格的列號2。COLUMN函數的參數使用了相對引用,向右複製的時候,就會變成COLUMN(C1),計算結果就是C1單元格的列號3,這樣就給了VLOOKUP函數一個動態的第三參數。
最後,將COLUMN函數與Vlookup拼合在一起,變成公式:
=VLOOKUP($F$5,$B$1:$D$10,COLUMN(B1),)
再把公式複製到其他單元格,就可以很容易的查找到該員工的全部資料了。
另外,在使用Vlookup函數的時候,如果第四個參數是TRUE,要求數據表必須按升序排列,否則就會出現計算錯誤,如果第四個參數是FALSE,則不用考慮數據表的升降序順序。
在工作中常常會出現重複記錄的情況,可以通過一些技術手段來限制或規避,但像重名這類問題恐怕難以避免。那遇到重名怎麼辦?由於Vlookup函數的第一個參數要求必須是唯一的,不然返回的只能是第一次遇到的記錄,因此解決這類問題的方法就變成尋找唯一值。
這樣咋一看,咱們可能覺得VLOOKUP函數的第一參數還是挺隨和的。那是不是真的像咱們想的那樣呢?一起看下圖:
F5單元格是員工的工號,G5單元格使用以下公式用於返回該工號的部門信息:
=VLOOKUP($F$5,$A$1:$D$10,3,)
咱們看公式本身是沒有問題的,但是卻返回了一個錯誤值,這是什麼原因呢?
可以藉助輔助列的方式,加上行號或是工號等信息,將兩列數據合併成一個新的輔助列,放在原數據表的最左邊,接下來問題就迎刃而解了。
VLOOKUP函數的第一參數可以使用通配符,如下圖中,F5單元格給出了姓氏,G5就可以根據姓氏查找到數據表中第一條符合這個姓氏的信息。
=VLOOKUP($F$5&"*",$B$1:$D$10,2,)
看出問題來了吧?需要查找的值和數據表中的格式一個是文本一個常規,VLOOKUP函數較真兒了——不一樣,就是不一樣。
最後咱們來做一下總結:
1、VLOOKUP函數查找值支持使用通配符("?"號和"*"號)進行查詢,但查找值不能使用數組作為參數來生成內存數組。
2、第4個參數(range_lookup)決定了查找方式。如果為0(或FASLE),用精確匹配方式進行查找,而且支持無序查找;如果為1(或TRUE),則使用模糊匹配方式進行查找,要求第2個參數的首列或首行按升序排列。
3、第3個參數中的列號,不能理解為工作表中實際的列號,而是指定返回值在查找範圍中的第幾列。
4、如果查找值與數據區域關鍵字的數據類型不一致,會返回錯誤值#N/A。
5、如果有多條滿足條件的記錄時,只能返回第一個滿足條件的記錄。
本文參考了Excel Home技術論壇會員jannylu和ggsmart兩位老師的帖子,以及《Excel 2010函數與公式實戰技巧精粹》中的部分內容。
圖文製作:祝洪忠
推薦閱讀: