VLOOKUP 全名為 「Vertical Lookup」,也就是垂直往下找資料的意思,雖然也有 HLOOKUP 以及 XLOOKUP 的存在,但是 VLOOKUP大家用習慣了,因此使用頻率非常高,是職場上不可不學的重要函數之一。
本文整理了 VLOOKUP 的用法、跨工作表 / 檔案操作、常見錯誤、進階用法等等,只花你短短5分鐘的時間,就可以馬上應用到工作中,大幅提升工作效率。
那麼我們就開始吧!
VLOOKUP函數用法
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
- lookup_value:指定查找資料名稱
- table_array:選定查找範圍
- col_index_num:選定回傳第幾欄
- [range_lookup]:部分符合/完全符合(選填)
接著,我們將 vlookup 函數拆解成4個部分,分別看看它們的規則與限制:
一、lookup_value(指定查找資料名稱)
第一個要填入的是 lookup_value,也就是我們要告訴 excel 這個 vlookup 函數要找的資料名稱為何。
假設我手上有全校的成績單,而我想要知道資優班的成績,此時我們就可以使用 vlookup 函數。我們在 E3 中輸入「=VLOOKUP」,並且接著選定要查找的資料名稱「D3」。
二、table_array(選定查找範圍)
指定資料名稱後,我們就要選擇查找範圍,告訴 excel:我要在這個範圍中找到我想要的資料。這個範圍可以是同一個工作表,不同工作表,甚至是不同活頁簿(檔案)之間。
接續前面的例子,我想要查找的範圍是該工作表的 A~B 欄,因此 vlookup 函數的第二段就要拉一個「A:B」。
但是 table_array 有個很強硬的限制:欲查找的資料欄位一定要在範圍中的最左邊,否則就會回傳 #N/A!。
三、col_index_num(選定回傳第幾欄)
選完範圍之後,我們就要告訴 excel 要回傳範圍中的第幾欄。在這個例子中,我想要回傳的是範圍中的二欄,也就是分數,那麼我就要輸入「2」。
重點是「範圍中的第幾欄」,而不是「在這張工作表的第幾欄」喔!是相對位置的概念,而不是絕對位置。
四、[range_lookup](完全符合/部分符合)
最後,我們再告訴 excel 查找資料時,資料名稱「部分符合」就好,還是一定要「完全符合」。「完全符合」與「部分符合」有什麼差別呢?
完全符合(FALSE或0)
基本上大多數情況都是使用「完全符合」,也就是查找資料名稱時一定要找一字不差的值,這代表你必須要確定欲查找的資料存在而且名稱相同,差一個空格也不行,否則就會回傳 #N/A!,發生沒有相符資料的情況。
要設定完全符合,我們只要在 vlookup 函數的第四段輸入「FALSE」或者「0」就可以了。
按 Enter 之後 vlookup 函數就會回傳這個人的分數啦!(啊你怎麼才10分……)
部分符合(TRUE或1)
部分符合就比較特別,而且複雜很多。部分符合的邏輯是:找出最接近且小於等於查找資料值的數值。很難懂嗎?我們直接看個例子:
假設我們今天想要知道用400塊最多能買到幾入的馬桶清潔碇,那麼我們就可以利用 TRUE 找出最接近400的值並且回傳數量。以下為詳細的步驟:
- 我們先將網路上蒐集到的定價貼在 excel 上。
2. 利用篩選將資料由小到大排序。這個步驟非常重要,否則 vlookup 最後回傳的值會是錯誤的值。(因為 vlookup 的查找邏輯是垂直由上往下找,只要找到超過400的值就停止查找,所以我們必須要將資料由小到大排序)
3. 設定完排序之後就可以輸入 vlookup 函數囉!要設定部分符合,我們可以輸入「TRUE」、「1」,甚至不輸入直接按 Enter 都可以。
4. 使用 TRUE 的 vlookup 函數會先找範圍中最接近且小於等於400的值,也就是399,接著再將30回傳到我們輸入函數的地方。
VLOOKUP不同工作表 / 不同檔案查找資料
VLOOKUP函數不同工作表與不同檔案的操作其實就跟在同一個工作表的步驟一模一樣。
可以參考以下的 GIF :
詳細操作步驟為(想要GIF與步驟一起看可以按下F11):
- 點擊「吳芝正」的分數欄
- 輸入「=VLOOKUP(」
- 第一個參數:點一下「吳芝正」,並打一個「,」(很重要!超常忘記!)
- 第二個參數:直接換到另一個工作表,拉想要查找的範圍(記得欲查找的資料一定要在範圍的最左邊),並打一個「,」。
- 第三個參數:輸入要回傳範圍中的第幾欄,並打一個「,」。
- 第四個參數:輸入0(完全符合)或1(部分符合)
- 按下Enter
而跨 Excel 檔案拉 VLOOKUP 函數的詳細步驟也一樣,第 4 步直接換到另一個 Excel 檔案拉範圍就好。
VLOOKUP進階用法 – 多欄位查找資料
假設我們今天有各家服飾單品的價格,但我們今天想要找同時符合「GU」與「工裝褲」的價格。我們可以怎麼做呢?
其實我們只要動一點手腳,vlookup 就可以一次查找兩欄資料,也就是同時符合2欄的資料才會回傳值。首先,我們先在「廠牌」左邊插入一欄「廠牌&單品」。
接著,利用 CONCATENATE 函數連結廠牌與單品。在 B3 輸入「=CONCATENATE(C3,”-“,D3)」,CONCATENATE 函數就會用「-」符號將兩者連接起來。
最後,我們就可以直接用 vlookup 函數找「GU-工裝褲」的價格啦!是不是無腦又暴力呢?
VLOOKUP常見錯誤(#N/A! 、#REF! 、#VALUE!)
- #N/A! :指 vlookup 函數找不到對應的資料,此時應該注意大小寫、字之間的空白格,或者確定欲查找的資料名稱確實存在。
- #REF! :通常發生在 col_index_num 的值> table_array 欄數,或者原本的資料有遭到更動或刪除過。
- #VALUE!:通常發生在 col_index_num 的值 <1時,或者 [range_lookup] 沒有辦法被有效判讀是 TRUE 還是 FALSE。
VLOOKUP溫馨提醒
- 如果資料是呈水平排序,可以將資料旋轉貼上(轉置)再執行 vlookup,或者使用 hlookup 函數
- 在打 vlookup 函數時記得加上「,」
- 如果有重複的資料名稱,vlookup 只會回傳第一個找到的資料
- 選取範圍時,要特別留意有沒有欄位被隱藏
- 如果你有其他提醒,非常歡迎在下方留言與我交流