於VLOOKUP函數的用法
“Lookup”的漢語意思是“尋找”,在Excel中與“Lookup”相關的函數有三個:VLOOKUP、HLOOKUO和LOOKUP。下面介紹VLOOKUP函數的用法。
一、功能
在表格的首列尋找指定的資料,並返回指定的資料所在行中的指定列處的資料。
二、文法
標準格式:
VLOOKUP(lookup_value,table_array,col_index_num , range_lookup)
三、文法解釋
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)可以寫為:
VLOOKUP(需在第一列中尋找的資料,需要在其中尋找資料的資料表,需返回某列值的列號,邏輯值True或False)
1.Lookup_value為“需在資料表第一列中尋找的資料”,可以是數值、文本字串或引用。
2.Table_array 為“需要在其中尋找資料的資料表”,可以使用儲存格範圍或地區名稱等。
⑴如果 range_lookup 為 TRUE或省略,則 table_array 的第一列中的數值必須按升序排列,否則,函數 VLOOKUP 不能返回正確的數值。
如果 range_lookup 為 FALSE,table_array 不必進行排序。
⑵Table_array 的第一列中的數值可以為文本、數字或邏輯值。若為文本時,不區分文本的大小寫。
3.Col_index_num 為table_array 中待返回的匹配值的列序號。
Col_index_num 為 1 時,返回 table_array 第一列中的數值;
Col_index_num 為 2 時,返回 table_array 第二列中的數值,以此類推。
如果Col_index_num 小於 1,函數 VLOOKUP 返回錯誤值 #VALUE!;
如果Col_index_num 大於 table_array 的列數,函數 VLOOKUP 返回錯誤值 #REF!。
4.Range_lookup 為一邏輯值,指明函數 VLOOKUP 返回時是精確匹配還是近似匹配。如果為 TRUE 或省略,則返回近似匹配值,也就是說,如果找不到精確匹配值,則返回小於lookup_value 的最大數值;如果 range_value 為 FALSE,函數 VLOOKUP 將返回精確匹配值。如果找不到,則返回錯誤值 #N/A。
四、應用例子
A B C D
1 編號 姓名 工資 科室
2 2005001 周杰倫 2870 辦公室
3 2005002 蕭亞軒 2750 人事科
4 2005006 鄭智化 2680 供應科
5 2005010 屠洪剛 2980 銷售科
6 2005019 孫楠 2530 財務科
7 2005036 孟庭葦 2200 工 會
A列已排序(第四個參數預設或用TRUE)
VLOOKUP(2005001,A1:D7,2,TRUE) 等於“周杰倫”
VLOOKUP(2005001,A1:D7,3,TRUE) 等於“2870”
VLOOKUP(2005001,A1:D7,4,TRUE) 等於“辦公室”
VLOOKUP(2005019,A1:D7,2,TRUE) 等於“孫楠”
VLOOKUP(2005036,A1:D7,3,TRUE) 等於“2200”
VLOOKUP(2005036,A1:D7,4,TRUE) 等於“工 會”
VLOOKUP(2005036,A1:D7,4) 等於“工 會”
若A列沒有排序,要得出正確的結果,第四個參數必須用FALAE
VLOOKUP(2005001,A1:D7,2,FALSE) 等於“周杰倫”
VLOOKUP(2005001,A1:D7,3,FALSE) 等於“2870”
VLOOKUP(2005001,A1:D7,4,FALSE) 等於“辦公室”
VLOOKUP(2005019,A1:D7,2,FALSE) 等於“孫楠”
VLOOKUP(2005036,A1:D7,3,FALSE) 等於“2200”
VLOOKUP(2005036,A1:D7,4,FALSE) 等於“工 會”
五、關於TRUE和FALSE的應用
先舉個例子,假如讓你在數萬條記錄的表格中尋找給定編號的某個人,假如編號已按由小到大的順序排序,你會很輕鬆地找到這個人;假如編號沒有排序,你只好從上到下一條一條地尋找,很費事。
用VLOOKUP尋找資料也是這樣,當第一列已排序,第四個參數用TRUE(或確省),Excel會很輕鬆地找到資料,效率較高。當第一列沒有排序,第四個參數用FALSE,Excel會從上到下一條一條地尋找,效率較低。
筆者覺得,若要精確尋找資料,由於電腦運算速度很快,可省略排序操作,直接用第四個參數用FALSE即可。
轉 VLookup 使用
2007-03-24 20:23
最近愛上了VLOOKUP,有人還對它進行了更新。因為它的漏洞就是只能返回重複值得第一個值。下面就詳細來敘述一下吧!
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value 為需要在Table_array第一列中尋找的數值。
可以為數值、引用或文本字串。需要注意的是類型必須與table_array第一列的類型一致。
尋找文本時,文本不區分大小寫;可以使用萬用字元“*”、“?”。
Table_array 為需要在其中尋找資料的資料表。
可以使用對地區或地區名稱的引用、常數數組、計算後的記憶體數組。
對地區引用時,可以引用整列,excel會自動判斷使用地區。
該參數的第一列必須包含尋找的內容,其它列包含需返回的內容;返回內容的列序號由下個參數指定。
Col_index_num 為table_array中待返回的匹配值的列序號。
如為1時,返回table_array第一列中的數值;為2,返回table_array第二列中的數值,以此類推。
如果col_index_num小於1,函數 VLOOKUP 返回錯誤值值 #VALUE!;
如果col_index_num大於table_array的列數,函數 VLOOKUP 返回錯誤值 #REF!。
Range_lookup 為一邏輯值,指明函數VLOOKUP返回時是精確匹配還是近似匹配。
如果為TRUE或省略,則返回近似匹配值,也就是說,如果找不到精確匹配值,則返回小於lookup_value的最大數值;
近似匹配查詢一般用於數值的查詢,table_array的第一列必須按升序排列;否則不能返回正確的結果。
如果range_value為FALSE(或0),函數VLOOKUP將返回精確匹配值。
此時,table_array不必進行排序。如果找不到,則返回錯誤值#N/A;可isna檢測錯誤後使用if判斷去除錯誤資訊。
=====================================================================
VLOOKUP 經常會出現錯誤的#N/A,下面是幾種可能性:
資料有空格或者資料類型不一致。
可以在lookup_value 前用TRIM()將空格去除。
如果格式不一致,可以將數值強制轉換成文本,lookup_value之後用&跟""表示的Null 字元串。
將文本轉換成數值,lookup_value*1進行運算。
=====================================================================
效果不錯噢!之前作了很多不幸的事情!