IF 函數

IF 函數是 Excel 中最熱門的函數之一,可讓您在值和預期結果間進行邏輯比較。以其最簡單的形式而言,IF 函數表示:

  • IF(項目是 True,則執行該項目,相反則執行其他項目)

因此,IF 陳述式可以有兩種結果。第一個結果是比較為 True,第二個結果是比較為 False。

如果要跳至處理多個 IF 陳述式,請參閱:進階 IF 函數 - 使用巢狀公式及避免錯誤

使用其中一個邏輯函數,也就是 IF 函數,在條件符合時傳回一個值,並在條件不符合時傳回另一個值。

語法

IF(logical_test, value_if_true, [value_if_false])

例如:

  • =IF(A2>B2,"超出預算","確定")

  • =IF(A2=B2,B4-A4,"")

引數名稱

描述

logical_test    (必填)

您想要測試的條件。

value_if_true    (必填)

您想要在 logical_test 結果為 TRUE 時傳回的值。

value_if_false    (可省略)

您想要在 logical_test 結果為 FALSE 時傳回的值。

簡易 IF 範例

儲存格 D2 包含公式 =IF(C2="Yes",1,2)
  • =IF(C2=”是”,1,2)

在上述範例中,儲存格 D2 表示:IF(C2 = 是,則傳回 1,相反則傳回 2)

儲存格 D2 包含公式 =IF(C2=1,"YES","NO")
  • =IF(C2=1,”是”,”否”)

在此範例中,儲存格 D2 中的公式表示:IF(C2 = 1,則傳回是,相反則傳回否)

如您所看到的,IF 函數可以用來評估文字和數值。也可以用來評估錯誤。您不會受限於只能檢查是否一個項目等於另一個,並傳回單一結果,您也可以使用數學運算子,並且依照您的準則執行其他計算。您也可以用巢狀方式內嵌多個 IF 函數,以執行多重比較。

附註: 如果您要在公式中使用文字,您需要使用引號括住文字 (例如 “文字”)。唯一的例外是使用 TRUE 或 FALSE,其中 Excel 會自動理解。

如何開始

開始撰寫 IF 陳述式的最佳方式是,想想您嘗試要達成的是什麼。您嘗試進行哪些比較?很多時候撰寫 IF 陳述式與在腦中邏輯思考一樣簡單:「如果符合此條件會發生什麼,以及如果不符會發生什麼?」您需要確定步驟是依照邏輯進程,否則公式不會執行您認為應執行的動作。這在建立複雜 (巢狀) IF 陳述式時尤其重要。

更多 IF 範例

儲存格 D2 中的公式是 =IF(C2>B2,”Over Budget”,”Within Budget”)
  • =IF(C2>B2,”超出預算”,”在預算內”)

在上述範例中,D2 中的 IF 函數表示 IF(C2 比 B2 大,則傳回 “超出預算”,相反則傳回 “在預算內”)

儲存格 E2 中的公式是 =IF(C2>B2,C2-B2,"")
  • =IF(C2>B2,C2-B2,0)

在上述圖例中,不會傳回文字結果,而將會傳回數學計算。因此,E2 中的公式表示 IF(實際大於預算,則從實際金額減去預算金額,相反則傳回零)。

儲存格 F7 中的公式是 IF(E7=”Yes”,F5*0.0825,0)
  • =IF(E7=”是”,F5*0.0825,0)

在此範例中,F7 中的公式表示 IF(E7 = “是”,則計算 F5 中的總金額乘以 8.25%,相反則無應付的銷售稅傳回 0)

最佳做法 - 常數

在上一個範例中,您看到兩個 “是”,而銷售稅率 (0.0825) 已直接輸入到公式中。一般而言,直接將常值常數 (可能需要隨時變更的值) 放在公式中並不是好的做法,因為日後可能難以尋找及變更。比較好的做法是,將常數放入它們自己的儲存格,其中它們是敞開的且容易尋找及變更。不過在此情況下並沒有關係,因為只有一個 IF 函數,而且銷售稅率極少變更。即使變更,您也能輕鬆地在公式中進行變更。

計算運算子

如果您想要深入了解可於公式中使用的各種計算運算子 (< 小於、> 大於、= 等於、<> 不等於等),請參閱下列文章:計算運算子和優先順序

使用 IF 檢查儲存格是否為空白

您有時需要檢查儲存格是否為空白狀態,通常是因為您可能不想要公式在未輸入的情況下就顯示結果。

儲存格 E2 中的公式是 =IF(D2=1,"Yes",IF(D2=2,"No","Maybe"))

在此情況下,我們會使用 IF 搭配 ISBLANK 函數:

  • =IF(ISBLANK(D2),"空白","非空白")

這表示 IF(D2 空白則傳回 "空白",相反則傳回 "非空白")。您也可以在自己的公式輕鬆運用 "非空白" 條件。在下一個範例中,我們使用的是 "",而不是 ISBLANK。"" 本質上表示的是「空」。

檢查儲存格是否為空白 - 儲存格 E2 中的公式為 =IF(ISBLANK(D2),"Blank","Not Blank")
  • =IF(D3="","空白","非空白")

此公式表示 IF(D3 為空則傳回 "空白",相反則傳回 "非空白")。下列範例說明一個相當常見的方法,如果從屬參照儲存格為空白,您可以使用 "" 防止公式進行計算。

  • =IF(D3="","",YourFormula())

    IF(D3 為空則傳回空,相反則計算您的公式)。

巢狀的 IF 範例

簡單的 IF 函數只有兩種結果 (True 或 False),巢狀 IF 函數則可以有 3 至 64 種結果。

使用 "" 檢查空白儲存格 - 儲存格 E3 中的公式為 =IF(D3="","Blank","Not Blank")
  • =IF(D2=1,”是”,IF(D2=2,”否”,”可能”))

在上述圖例中,E2 中的公式表示:IF(D2 等於 1 則傳回 “是”,相反則 IF(D2 等於 2 則傳回 “否”,相反則傳回 “可能”))。請注意,公式最後有兩個右括號。要完成兩個 IF 函數就需要有這兩個右括號,如果您嘗試輸入不含這兩個右括號的公式,Excel 會試圖幫您修正。

注意與提醒

雖然 Excel 允許您以巢狀方式內嵌最多 64 個不同的 IF 函數,這樣做並非一定是明智的。為什麼?

  • 多個 IF 陳述式需要耗費大量的思考才能正確地建立,及確定經由各種情況其邏輯皆可正確地計算。如果您未 100% 正確地以巢狀內嵌 IF 陳述式,則公式有 75% 的可能性可以運作,但會有 25% 的可能性傳回無法預期的結果。很抱歉,要一一抓出 25% 的問題的機會相當渺茫。

  • 多個 IF 陳述式可能會變得很難維護,尤其是當您之後才回來並試著想出您 (或可能是其他人,更糟的話) 當時想要怎麼做。

  • 多個 IF 陳述式需要多個左右括號 (),這可能會隨著您公式的複雜程度而變得難以管理。

常見問題

問題

哪裡出錯

儲存格中的 0 (零)

value_if_true value_if_False 引數中沒有任何引數。若要查看正確傳回的值,請將引數文字新增至這兩個引數中,或將 TRUE 或 FALSE 新增至引數。

儲存格中的 #NAME?

通常這表示公式拼錯。

需要更多協助嗎?

您可以隨時詢問 Excel 技術社群中的專家、在 Answers 社群取得支援,或是在 Excel User Voice 上建議新功能或增強功能。

另請參閱

影片:進階 IF 函數

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

進階 IF 函數 - 使用巢狀公式及避免錯誤

訓練課程影片:進階 IF 函數

COUNTIF 函數會根據單一準則計算值

COUNTIFS 函數會根據多個準則計算值

SUMIF 函數會根據單一準則加總值

SUMIFS 函數會根據多個準則加總值

AND 函數

OR 函數

VLOOKUP 函數

Excel 中的公式概觀

如何避免公式出錯

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

邏輯函數

Excel 函數 (按字母排序)

Excel 函數 (依類別排序)

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×