VLOOKUP 與 XLOOKUP 速查對照
兩個最常被搜尋的查詢函數,語法、差異、常見錯誤一次對齊。看完直接在互動練習各寫一題。
語法對照
VLOOKUP(所有版本)
=VLOOKUP(key, table, col, FALSE) key:要在第一欄找的值 · table:含鍵值與結果的表格 · col:結果在表格內第幾欄 · FALSE:精確比對
XLOOKUP(Excel 2021+/365)
=XLOOKUP(key, lookup_array, return_array) key:要找的值 · lookup_array:鍵值所在欄 · return_array:結果所在欄(可左可右)
行為差異對照
| 特性 | VLOOKUP | XLOOKUP |
|---|---|---|
| 查詢方向 | 只能從左往右 | 任意方向(可向左) |
| 回傳欄位 | 用欄位索引(第幾欄) | 直接指定回傳範圍 |
| 預設比對 | 近似比對(精確要寫 FALSE) | 精確比對 |
| 表格插入新欄 | 索引可能錯位、結果跑掉 | 不受影響 |
| 查無資料 | 回傳 #N/A | 可用第 4 參數 if_not_found 直接給後備值 |
| 版本 | 所有版本 | Excel 2021+/365、Google Sheets |
常見錯誤與修法
| 症狀 | 原因 | 解法 |
|---|---|---|
#N/A | 鍵值不存在,或區域沒鎖定導致向下填滿時跑位 | 確認資料確實存在;填滿時用 $ 鎖定表格;再用 IFNA/IFERROR 給後備值 |
回傳了錯誤列的值 | 漏了 FALSE,落在近似比對 | VLOOKUP 最後一律補 FALSE(XLOOKUP 預設就是精確) |
回傳 #REF! | 欄位索引超過表格範圍的欄數 | 索引從表格第一欄起算,別用工作表的欄號 |
填滿後結果整批錯 | 相對參照讓查詢範圍一起滑動 | 來源表格用 $A$2:$C$6 鎖定,只讓 key 相對滑動 |
動手寫一題
兩個函數在練習大廳各有一題:鎖定小表格、即時判分,寫對才會過。
常見問題
VLOOKUP 和 XLOOKUP 該用哪一個?
版本支援且要向左查詢時,選 XLOOKUP:不需欄位索引、預設精確比對、插入欄位不會壞。舊版 Excel 或要相容他人檔案時用 VLOOKUP,記得最後參數寫 FALSE。
VLOOKUP 查不到回傳 #N/A 怎麼辦?
包一層 =IFNA(VLOOKUP(…), "Not found") 只攔截查無資料;IFERROR 則會蓋掉所有錯誤。把後備文字換成有意義的提示比留著 #N/A 好。
XLOOKUP 可以取代 INDEX+MATCH 嗎?
功能上可以:=XLOOKUP(E2, C2:C6, A2:A6) 等價於 =INDEX(A2:A6, MATCH(E2, C2:C6, 0))。但面試仍常考 INDEX+MATCH,建議兩種都會寫。