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 技術社群中的專家,或是在 Answers 社群取得支援。

另請參閱

修正 #VALUE! 錯誤

IF 函數

IFERROR 函數

IS 函數

IFS 函數 (Microsoft 365或Excel 2016或)

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

影片:巢狀 IF 函數

Excel 公式概觀

如何避免公式出錯

偵測公式中的錯誤

所有Excel函數 (字母)

所有 Excel 函數 (依類別)

需要更多協助?

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

這項資訊有幫助嗎?

您對翻譯品質的滿意度為何?
會影響您使用體驗的因素為何?

感謝您的意見反應!

×