IF 函數是Excel中最受歡迎的函數之一。你可以透過IF函數設定一個條件,滿足該條件時顯示一種值,不滿足時顯示另一種值,使資料分析更加有效率。
本文將會用5分鐘的時間,教會你IF函數的完整用法、範例教學、多條件、常見錯誤等等。
因此,如果你常常因為看不懂IF函數而苦惱,建議可以把這篇文章從頭到尾看過一次,把IF函數徹底搞懂,進而提升工作效率。
那麼我們就開始吧!(趕時間的人可以利用下方目錄跳轉 👇)
IF函數用法
IF(logical_test,[value_if_true],[value_if_false])
- logical_test:邏輯測試式。通常是「C3>100」、「C3=”已付款”」之類,只會有 Yes/No 兩種結果的判斷式。
- [value_if_true]:可以設定如果「C3>100」為Yes,就做什麼事。
- [value_if_false]:可以設定如果「C3>100」為No,就做另一件事。
接著,我們來看看IF函數的範例教學:
IF範例教學
一、IF單一條件
假設我們想要知道班上國文誰及格誰不及格,我們利用 IF 函數就可以很快地幫我們將及格的顯示「V」,不及格的顯示「X」:
=IF(C3>=60,"V","X")// 如果C3大於等於60的話就顯示V,否則顯示X
或者,我們也可以透過 IF 函數幫不及格的小朋友們多加點分:
=IF(C3>=60,C3*1.1,C3*1.2)// 如果C3大於等於60的話分數就乘1.1,否則分數乘1.2
IF 函數單條件的用法就是這麼簡單!另外再補充一些常用的邏輯測試式:
數字類型(不等於的符號為<>):
- 如果C3大於60:=IF(C3>60,……)
- 如果C3大於等於60:=IF(C3<=60,……)
- 如果C3小於60:=IF(C3<60,……)
- 如果C3小於等於60:=IF(C3>60,……)
- 如果C3等於60:=IF(C3=60,……)
- 如果C3不等於60:=IF(C3<>60,……)
文字類型(不等於的符號為<>):
- 如果C3是空的資料:=IF(C3=””,……)
- 如果C3不是空的資料:=IF(C3<>””,……)
- 如果C3等於「男生」:=IF(C3=”男生”,……)
- 如果C3不等於「男生」:=IF(C3<>”男生”,……)
二、IF多條件(AND, OR)
接下來,我們可以透過結合AND與OR函數達到IF多條件的效果:
- 國文及格「而且」英文及格 – AND函數:
=IF(AND(C3>=60,D3>=60),"V","X")
- 國文及格「或者」英文及格 – OR函數:
=IF(OR(C3>=60,D3>=60),"V","X")
- AND函數與OR函數都可以包含三個條件以上:
=IF(AND(C3>=60,D3>=60,E3>=60),"V","X")
三、IF多條件(巢狀結構)
最後,如果我們想要為分數設定區間,則需要使用IF巢狀結構,也就是一層IF包另一層IF,一直包到所有條件設定完畢。
註:IF函數運算是由左到右執行運算,而非從最裡面的括號先開始運算。
首先,我們先從2層IF函數開始:
=IF(C3>=60,IF(C3>=80,"非常棒!","中等"),"待加強")//如果C3大於等於60的話就再去進一步檢查C3是否大於等於60,否則顯示「待加強」
再來進入到多層IF函數:
=IF(C3>=60,IF(C3>=70,IF(C3>=80,IF(C3>=90,"優","甲"),"乙"),"丙"),"待加強")//如果C3大於等於60的話就再去檢查D3是否大於等於60,否則顯示X
以下是多層IF函數的判定流程說明,如果對於閱讀巢狀有難度的人,可以參考一下:
=IF(C3>=60,IF(C3>=70,IF(C3>=80,IF(C3>=90,"優","甲"),"乙"),"丙"),"待加強")
如果分數為52分:
第一層IF函數:C3是否大於等於60?否➠顯示「待加強」,運算結束。
=IF(C3>=60,IF(C3>=70,IF(C3>=80,IF(C3>=90,"優","甲"),"乙"),"丙"),"待加強")
如果分數為75分:
第一層IF函數:C3是否大於等於60?是➠測試第二層IF函數。
第二層IF函數:C3是否大於等於70?是➠測試第三層IF函數。
第三層IF函數:C3是否大於等於80?否➠顯示「乙」,運算結束。
=IF(C3>=60,IF(C3>=70,IF(C3>=80,IF(C3>=90,"優","甲"),"乙"),"丙"),"待加強")
如果分數為98分:
第一層IF函數:C3是否大於等於60?是➠測試第二層IF函數。
第二層IF函數:C3是否大於等於70?是➠測試第三層IF函數。
第三層IF函數:C3是否大於等於80?是➠測試第四層IF函數。
第四層IF函數:C3是否大於等於90?是➠顯示「優」,運算結束。
=IF(C3>=60,IF(C3>=70,IF(C3>=80,IF(C3>=90,"優","甲"),"乙"),"丙"),"待加強")
IF常見錯誤(#VALUE!、#NAME!、#REF!)
以下提供IF函數常見的錯誤提示:
- #VALUE!:當邏輯運算式的結果是不支援的資料類型時,就會顯示#VALUE!。
- #NAME!:通常是由於輸入了錯誤的語法,或者引用了錯誤的儲存格,導致IF函數無法正常運作
- #REF!:原本參照的儲存格被刪除或異常。
IF溫馨提醒
- IF函數運算是由左到右執行測試,而非從最裡面的括號先開始運算。
- 顯示結果只有兩種時(如TRUE/FALSE、PASS/FAIL等等),建議使用AND/OR函數;若顯示結果有分區間(如優/甲/乙/丙/待加強)則使用IF巢狀結構。
- 使用IF巢狀結構時,最外層放置條件最寬鬆的IF函數,越往內條件越嚴格(如:第一層分數大於60、第二層分數大於70、第三層分數大於80……)