Excel表格函式if怎麼用
IF函式似乎是每個使用Excel的人都必須掌握的函式了,如果連IF函式都不會,真的不好意思說自己會用Excel呢。
不過從平時來看,關於IF函式的用法,確實還存在著一些小問題,今天就再來說說IF函式的本質和多個IF巢狀時需要注意的問題吧。
IF函式的本質
在實際使用中,往往需要根據某個判斷或者比較得到不同結果,例如:當成績大於或等於60分時,結果為及格,當成績小於60分時,結果為不及格。通過比較運算或者判斷可以得到一個邏輯值,IF函式的功能就是根據邏輯值來得到不同的結果。
IF函式需要三個引數,完整的格式為:
=IF(要判斷的條件,條件成立時顯示的內容,條件不成立時顯示的內容)。
第一引數可以是邏輯值或者是數字,當數字為0時,視為FALSE,當數字非零時,視作TRUE;
第二個和第三個引數可以是任意內容,常量或者公式,當第一個引數為TRUE時,IF得到第二個引數的內容,否則得到第三個引數的內容,如圖所示。
IF函式就好像一個假設句,滿足某個條件就這樣,否則就那樣。
例如成績大於或等於60分為及格,小於60為不及格,這句話我們換成假設句就是:如果成績大於60,及格,否則不及格。
將這個假設句代入IF函式就是:
IF(成績大於或等於60,及格,不及格)
假如成績在A2單元格,公式為:
=IF(A2>=60,"及格","不及格"),如圖所示。
IF函式的本質是按照第一引數設定的條件對資料進行分類。
例如想得到兩種結果,及格或不及格,就需要把資料分成兩部分,條件可以是A2>=60,也可以是A2<60。< p="">
條件不相同時,公式也要做對應的調整,上圖中的公式也可以寫成:=IF(A2<60,"不及格","及格"),如下圖所示。< p="">
當條件涉及數字的比較時,臨界值一定要特別注意,例如:成績大於60及格,小於60不及格,這樣分類就有問題,60分的算及格還是不及格?
兩個IF如何巢狀
通常使用一個IF函式可以根據條件得到兩種結果,如果需要得到三種結果,例如:成績大於或等於85為優秀,小於85大於或等於60為合格,小於60為不合格,就需要使用兩個IF函式來實現。
對於新手來說,巢狀使用兩個IF時經常出錯,以下介紹一個能有效避免出錯的方法。
還是以三種結果為例,首先簡化為兩種情況,判斷是否及格,優秀也看作是及格,公式為:
=IF(A2>=60,"及格","不及格")
然後再去判斷是否為優秀,公式為:
IF(A2>=85,"優秀","及格")
將後面這個IF替換第一個IF的第二引數,完成後的公式為:
=IF(A2>=60,IF(A2>=85,"優秀","及格"),"不及格")
驗證這個公式的結果正確,如圖所示。
公式=IF(A2<60,"不及格",if(a2<85,"及格","優秀"))< p="">
與公式=IF(A2<60,"不及格",if(a2>=85,"優秀","及格"))都可以達到同樣的結果,但後面一個公式看上去總是感覺有點彆扭,因為使用了不同的比較運算子,同時返回的三種結果不是按順序排列的。
在使用多個IF進行巢狀時,儘量使用相同的比較方式,結果也按照升序或者降序排列是一種很好的習慣。
公式=IF(A2>=60,"及格",IF(A2>=85,"優秀","不及格"))表面看上去沒什麼問題,但是結果總是無法得到“優秀”,如圖所示。
這種錯誤是使用IF巢狀時很容易發生的,原因在於當條件是A2>=60的時候,資料被分成兩組,大於或等於60的都是第二引數,小於60的都是第三引數。在這個公式中,第三引數才去判斷是否大於或等於90,顯然不會有滿足條件的結果,所以不可能出現優秀。
這是常犯的一種邏輯順序錯誤,可以遵循規律避免錯誤:用大於號時條件降序,用小於號時條件升序。意思是使用“>”或“>=”比較時,條件按85→60遞減的順序;使用“<”或“<=”比較時,條件按60→85遞增的順序。< p="">
提示:使用多層IF巢狀時,要求有非常清晰的邏輯,此時往往需要轉換思路,用其他函式取代多個IF巢狀的公式。