01為什麼會出現 #N/A
VLOOKUP 在查詢範圍的第一欄找不到要找的值時,會回傳 #N/A。常見原因是:對照表裡真的沒有這筆資料、儲存格前後多了空白、數字與文字格式不一致,或是查詢範圍沒有鎖定而往下位移。
- 資料真的不存在:這是正常現象,適合用自訂文字標示。
- 多餘空白:可先用 TRIM 清理。
- 格式不一致:一邊是文字的001,另一邊是數字 1。
- 範圍未鎖定:把 A2:B100 改成 $A$2:$B$100。
02用 IFERROR 包住 VLOOKUP
IFERROR 的語法是 =IFERROR(原本的公式, 出錯時要顯示的內容)。把原本的 VLOOKUP 放在第一個參數,第二個參數寫你想顯示的文字。
- 原本的公式,例如:=VLOOKUP(A2,$E$2:$F$100,2,FALSE)。
- 在最前面加上 =IFERROR(,把原公式去掉開頭的等號放進去。
- 在後面加上逗號與要顯示的文字,文字要用半形雙引號。
- 完成後如下:=IFERROR(VLOOKUP(A2,$E$2:$F$100,2,FALSE),"查無資料")
- 按 Enter,再把公式往下拖曳複製到其他列。
小技巧 想讓查不到的列顯示空白,第二個參數寫兩個連續的半形雙引號 "" 即可。
03注意:IFERROR 也會藏起真正的錯誤
IFERROR 不只處理 #N/A,連 #REF!、#NAME?、#VALUE! 等錯誤也一起蓋掉。如果公式本身打錯了,例如欄位序號寫錯或函數名稱拼錯,畫面只會一路顯示查無資料,你很難發現問題出在公式。
建議的做法是先不加 IFERROR,確認有查到資料的列結果正確,再把整條公式包起來。
- 先挑幾筆確定存在的資料,確認 VLOOKUP 能正確回傳。
- 再挑一筆確定不存在的資料,確認出現的是 #N/A 而不是其他錯誤。
- 兩種情況都正確之後,才加上 IFERROR。
04只處理 #N/A 的做法
如果只想處理查不到的情況,可以改用 IFNA,語法與 IFERROR 相同:=IFNA(VLOOKUP(A2,$E$2:$F$100,2,FALSE),"查無資料")。這樣其他類型的錯誤仍會顯示出來,方便你發現公式問題。IFNA 在 Excel 2013 以後的版本可使用。
Q&A常見問題
IFERROR 和 IFNA 差在哪裡?
IFERROR 會處理所有類型的錯誤,IFNA 只處理 #N/A。想避免掩蓋公式錯誤時,建議用 IFNA。
查不到時可以顯示 0 嗎?
可以,第二個參數直接寫 0 即可。但後續若要加總,要確認 0 不會被誤解為真實數值。
為什麼加了 IFERROR 全部都變成查無資料?
通常是公式本身有誤,例如查詢範圍沒鎖定、格式不一致或有多餘空白。先拿掉 IFERROR 看原始的錯誤訊息再修正。