如何修正 IF 函數中的 #VALUE! 錯誤

IF 是 Excel 中用途最多的常用函數,通常會多次使用在單一公式中,也會與其他函數搭配使用。但可惜的是,由於 IF 陳述式的建立程序十分複雜,因此很容易在建立期間發生 #VALUE! 錯誤。您通常可以新增特定的錯誤處理函數 (例如 ISERROR、ISERR 或 IFERROR) 至您的公式來解決錯誤。

問題:引數參照錯誤的值

如果有儲存格參照錯誤的值,IF 就會顯示 #VALUE! 錯誤。

解決方法:您可以搭配 IF 使用任一錯誤解決公式,例如 ISERROR、ISERR 或 IFERROR。下列主題將說明如何在引述參照錯誤的值時,於公式中使用 IF、ISERROR 和 ISERR 或 IFERROR。

附註: 

  • Excel 2007 推出 IFERROR 之後,其使用率便超越 ISERROR 或 ISERR,因為它不會要求建構多餘的公式。ISERROR 和 ISERR 會強制計算公式兩次;第一次是為了評估公式是否有誤,第二次則是為了傳回結果。IFERROR 則只會計算一次。

  • =IFERROR(Formula,0) 比 =IF(ISERROR(Formula,0,Formula)) 來得實用

問題:語法不正確

如果函數的語法未正確建構,就會回傳 #VALUE! 錯誤。

解決方法:請確定語法的建構方式正確無誤。以下是正確建構的公式範例,這個公式在某個 IF 函數中建立另一個 IF 函數的巢狀結構,以根據收入等級計算扣除值。

=IF(E2<31500,E2*15%,IF(E2<72500,E2*25%,E2*28%))

建構良好的 IF 陳述式範例

上述公式的意思是:如果(儲存格 A5 中的值小於 31,500,則將值乘上 15%。但是如果不是如此,檢查值是否小於 72,500。如果是,乘上 25%;否則乘上 28%)

若要搭配現有公式使用 IFERROR,只要以 IFERROR 括住完整公式即可。

=IFERROR(IF(E2<31500,E2*15%,IF(E2<72500,E2*25%,E2*28%)),0)

上述公式的意思是,如果原始公式的任何部分的評估結果為錯誤,則顯示 0;否則傳回 IF 陳述式的結果。有些人會使用錯誤處理撰寫完整公式以便開始,但這並不是建議做法,由於錯誤處理常式會解決任何潛在錯誤,因此您未必能判斷公式是否正確運作。如果您需要新增錯誤處理常式,建議您先確定公式可正確運作再新增。

附註: 公式中的評估值不得包含逗號。如果您新增逗號,IF 函數會嘗試使用逗號做為引數,此時 Excel 會向您發出通知。相反地,百分比乘數會包含 % 符號,來告知 Excel 您想以百分比形式顯示這些值。否則,您必須以實際百分比值輸入這些值,例如「E2*0.25」。

當您在值中新增逗號時的 Excel 訊息

對特定函數有任何問題嗎?

在 Excel 社群論壇張貼問題

協助我們改進 Excel

您是否有任何關於下一版 Excel 的改善方式的建議?如果有的話,請參閱 Excel User Voice 中的主題。

請參閱

修正 #VALUE! 錯誤

IF 函數

IFERROR 函數

IS 函數

IFS 函數 (Office 365 或 Excel 2016 或更新版本)

IF 函數 – 巢狀公式及避免易犯的錯誤

影片:巢狀 IF 函數

Excel 公式概觀

如何避免公式出錯

使用錯誤檢查偵測公式中的錯誤

所有 Excel 函數 (依字母順序)

所有 Excel 函數 (依類別)

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×