IFERROR 函數
IFERROR 把計算包起來,出錯就改回傳後備值——是讓 #N/A 和 #DIV/0! 遠離報表最快的方法。搞清楚它哪裡好用、哪裡會悄悄掩蓋真正的問題,然後在迷你表格上動手驗證。
IFERROR 函數語法與參數結構
IFERROR 是錯誤處理的保險絲:value 正常就回傳計算結果,一旦出錯就改回傳你指定的後備值。
要檢查的公式或表達式(例如 C2/B2、VLOOKUP(E2, A2:C6, 3, FALSE))。任何錯誤類型都會被攔截:#N/A、#DIV/0!、#VALUE!、#REF!、#NAME?、#NUM!。
出錯時回傳的值:雙引號文字("Not found")、數字、空白("")或另一個公式。省略時錯誤顯示為空白儲存格。
它接得住哪些錯誤?
- #N/A — 查詢函數找不到目標值(VLOOKUP、XLOOKUP、MATCH 落空)
- #DIV/0! — 除以零或空白儲存格
- #VALUE! — 參數類型不對,例如拿文字做數學運算
- #REF! — 引用的儲存格被刪除——結構性損壞,慎用 IFERROR 掩蓋
- #NAME? — 函數或名稱拼錯,例如 =VLOKUP(…)
經典組合:除法保險與查詢兜底
除法是最常見的 #DIV/0! 來源:數量為 0 或空白時出錯。注意:總額為 0 是合法數字(0 ÷ 5 = 0),IFERROR 不會動它。
查詢落空用 IFNA 比 IFERROR 更精準:只轉換 #N/A,#REF! 這類結構損壞仍然大聲報錯。XLOOKUP 用戶可以直接用第 4 參數:=XLOOKUP(E2, A2:A6, C2:C6, "Not found")。
三個工具的分工:IFNA / IFERROR / ISNA
IFNA
手術刀。只轉換 #N/A(查無資料),其他錯誤原樣保留——查詢兜底的首選,問題不會被悄悄藏起來。
IFERROR
保險絲。接住所有錯誤,最省事;代價是 #REF! 等真正的損壞也會變成 "Not found"。報表交付前的最後一道防線才用它。
ISNA / ISERROR
稽核員。不替換、只回報:=ISNA(VLOOKUP(…)) 回傳 TRUE/FALSE,適合審計欄、條件式格式化與 =SUMPRODUCT(--ISNA(range)) 統計。
常見錯誤與注意事項
- 掩蓋問題 — IFERROR 會掩蓋一切:=IFERROR(VLOOKUP(…), "") 連「欄位被刪掉的 #REF!」都會變成空白——報表安靜地錯下去。先用 IFNA 或 IF 檢查具體條件,才不會把問題藏進保險絲裡。
- 語法錯誤 — 它救不了語法錯誤:公式解析錯誤(括號不平衡、引號漏寫、分隔符用錯)讓公式根本無法計算,IFERROR 沒有機會出手。先修語法。
- 整欄亂包 — 不要整欄亂包:對整個範圍套 IFERROR 會把「哪一行有問題」的線索全部抹平。需要排查時,用 ISERROR/ISNA 做標記欄定位問題列,修完再包。
排錯指南:公式不計算、只顯示公式文字的 4 大原因
如果 Excel 或 Google Sheets 把公式當成一般文字顯示(例如畫面上直接露出 =SUM(A1:A5))或數值不再自動更新,IFERROR 是幫不上忙的,因為公式根本沒有進入運算階段。請檢查以下 4 個常見原因:
1. 儲存格格式被設為「文字」
若輸入公式前儲存格已被設定為文字格式,Excel 會將其視為純字串。解法:改回「通用格式」或「數值」,然後點進儲存格按 F2 再按 Enter 重新觸發計算。
2. 不小心開啟了「顯示公式」模式
若全表所有公式突然全部裸露出來,按快速鍵 Ctrl + `(反引號)或至「公式」索引標籤關閉「顯示公式」開關。
3. 活頁簿運算選項被切為「手動」
至「公式」→「計算選項」檢查是否被改為手動計算,將其切回「自動」(或按 F9 強制重新計算當前工作表)。
4. 等號前面有多餘空格
等號前若含有空白字元(例如 " =A1+B1"),Excel 會將其識別為純文字。刪除開頭空格即可恢復運算。
相關實戰練習推薦
錯誤處理家族的完整實戰:除零、查詢落空、ISNA 稽核——在真實業務情境中建立肌肉記憶。
常見問題
Excel 的 IFERROR 是做什麼的?
=IFERROR(value, value_if_error) 先計算 value 並回傳結果——一旦產生錯誤(#N/A、#DIV/0!、#VALUE!、#REF!、#NAME?),改回傳後備值。省略 value_if_error 時,錯誤會顯示成空白儲存格。
IFERROR 和 IFNA 有什麼差別?
IFNA 只轉換 #N/A——查無資料——其他錯誤原樣保留。IFERROR 則全部轉換。查詢場景優先用 IFNA(或 XLOOKUP 的 if_not_found 參數):刪欄造成的 #REF! 應該讓你警覺,而不是安靜地變成 "Not found"。
VLOOKUP 或 XLOOKUP 的 #N/A 怎麼修?
包一層:=IFNA(VLOOKUP(…), "Not found") 只轉換落空。XLOOKUP 有原生第 4 參數:=XLOOKUP(E2, A2:A6, C2:C6, "Not found")。想稽核而非替換,用 =ISNA(VLOOKUP(…)),落空時回傳 TRUE。
Google Sheets 為什麼顯示 formula parse error?
公式解析錯誤代表 Sheets 連讀都讀不懂這條公式——括號不平衡、少了引號,或分隔符不對(部分語系要用 ; 而不是 ,)。IFERROR 幫不上忙:語法錯誤讓公式根本無法計算。先修語法,再用 IFERROR 處理執行期錯誤。