首頁 > 軟體

查詢參照類excel函數——VLOOKUP函數的使用方法

2020-07-14 14:34:23

在一個資料量比較大的工作表中,如果想要找到符合某些特徵的記錄,通常都會想到採用篩選的方式實現。但如果需要查詢的是某一條記錄的話,用查詢參照類excel函數就會更為方便。

這次,就為各位介紹常用的查詢參照類excel函數——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&"*",$B$1:$D$10,2,)

這樣咋一看,咱們可能覺得VLOOKUP函數的第一引數還是挺隨和的。

那是不是真的像咱們想的那樣呢?

一起看下圖:

F5單元格是員工的工號,G5單元格使用以下公式用於返回該工號的部門資訊:

=VLOOKUP($F$5,$A$1:$D$10,3,)

咱們看公式本身是沒有問題的,但是卻返回了一個錯誤值,這是什麼原因呢?

看出問題來了吧?

需要查詢的值和資料表中的格式一個是文字一個常規,VLOOKUP函數較真兒了——不一樣,就是不一樣。

最後咱們來做一下總結:

1、VLOOKUP函數查詢值支援使用萬用字元("?"號和"*"號)進行查詢,但查詢值不能使用陣列作為引數來生成記憶體陣列。

2、第4個引數決定了查詢方式。如果為0(或FASLE),用精確匹配方式進行查詢,而且支援無序查詢;如果為1(或TRUE),則使用模糊匹配方式進行查詢,要求第2個引數的首列或首行按升序排列。

3、第3個引數中的列號,不能理解為工作表中實際的列號,而是指定返回值在查詢範圍中的第幾列。

4、如果查詢值與資料區域關鍵字的資料型別不一致,會返回錯誤值#N/A。

5、如果有多條滿足條件的記錄時,只能返回第一個滿足條件的記錄。


IT145.com E-mail:sddin#qq.com