我個人覺得,這是一個很神奇的函式,而且宇宙無敵難懂
除了VLOOKUP以外,還有個雙胞胎函式HLOOKUP
差別只在於,VLOOKUP是查直式表格↓,HLOOKUP是查橫式表格→
不過,今天只簡單介紹VLOOKUP。
VLOOKUP語法: VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
填寫方式: VLOOKUP( , , , )
lookup_value:
在表格陣列的第一欄中搜尋的數值Lookup_value 可以是數值,也可以是參照位址。
當 lookup_value 小於 table_array 第一欄中的最小值時,VLOOKUP 將會傳回錯誤值 #N/A。
==> 註:簡單來說,就是你輸入的那個欄位,如上圖,我要在Keyin表格中的A3輸入查詢資料,
那lookup_value 位置填空就填入 A3
填寫方式: VLOOKUP( A3 , , , )
Table_array:
兩欄以上的資料。
請使用參照位址來指向某個範圍或範圍名稱。
table_array 第一欄中的值即為 lookup_value 所搜尋的值。
這些值可以是文字、數字或邏輯值 (不分大小寫)。
==> 註:簡單來說,就是你要查詢的表格位置,像我要查詢上圖中右邊的查詢表格裡的資料,
他目前的欄位是從 D2~E4 ,所以 table_array 位置填空就要填入 D2:E4
填寫方式: VLOOKUP( A3 , D2:E4 , , )
col_index_num:
table_array 中的欄號;相符的值將從該欄中傳回。
如果 col_index_num 引數值為 1,則傳回 table_array 第一欄中的值;
如果 col_index_num 引數值為 2,則傳回 table_array 第二欄中的值,依此類推。
如果 col_index_num:
小於 1,則 VLOOKUP 會傳回錯誤值 #VALUE!。
大於 table_array 中的欄數,則 VLOOKUP 會傳回錯誤值 #REF!。
==> 簡單來說,就是你要查詢的表格D2~E4中,要"顯示"的資料
拿圖例來看,我輸入統一編號(A3)後,要查出公司名稱,公司名稱在表格的第二欄,
所以 col_index_num 位置填空就要填入 2
填寫方式: VLOOKUP( A3 , D2:E4 , 2 , )
range_lookup:
一個邏輯值,用來指定 VLOOKUP 應該要尋找完全符合還是部分符合的值:
如果此引數值為 TRUE 或被省略了,則傳回完全符合或部分符合的值。
如果找不到完全符合的值,將會傳回僅次於 lookup_value 的值。
table_array 第一欄中的值必須以遞增順序排序;否則,VLOOKUP 可能無法提供正確的值。
只要在 [資料] 功能表中選取 [排序] 指令,再選取 [遞增],即可將值以遞增順序排序。
如需詳細資訊,請參閱預設排序順序。
如果此引數值為 FALSE,則 VLOOKUP 函數只會尋找完全符合的值。
在此情況下,table_array 第一欄中的值便不需要排序。
如果 table_array 第一欄中有兩個以上的值與 lookup_value 相符,將會使用第一個找到的值。
如果找不到完全符合的值,則傳回錯誤值 #N/A。
==> 簡單來說,range_lookup 位置填空填入 0 or false 就好了。(這樣會不會太簡單?)
填寫方式: VLOOKUP( A3 , D2:E4 , 2 , 0 )
寫到這,我們已經把整串函式拼出來了,
完整寫法為:
VLOOKUP(A3,D2:E4,2,0)
如何,有沒有簡單一點點了?
欄位資料來源: Microsoft Office 函式搜尋 VLOOKUP
多欄參照補充:
有時候我們可能不只需要一個參照欄位,而是希望帶入公司統編後,可以將公司名稱、電話、聯絡人等資料一起帶入。
那這樣可以參考下列方式,不過,我只寫到第三欄,後續第四、五、六、七欄請以此類推。
不過建議且提醒大家,因為要方便解釋,所以我的Key in表格和參照表格在同一個Sheet,
真正要做到多欄參照,還是將Key in表格和參照表格分開放比較好喔。
公司名稱 (B4) 的寫法如果是 =VLOOKUP(A4,E:G,2,0) ,
那聯絡人 (C4) 的寫法就會變成 =VLOOKUP(A4,E:G,3,0)
如果有第五欄、第六欄,也是以此類推。
--
MURMUR:
特別寫下一篇,希望之後要用到查表不會再忘了 Orz