當前位置: 妍妍網 > 辦公

IF函式,這些用法都會了嗎?

2024-06-19辦公

IF是Excel中最基礎最常用的函式之一。 它可以根據指定條件是否成立,返回對應的結果。 官方簡歷如下:

IF(餵~談個條件吧,如果條件成立怎麽怎麽著,如果條件不成立又怎麽怎麽著)

數一數,一共有三個參數。

第1個參數是必須的,是一個結果為真或假的任意運算式,也就是判斷條件。

第2個參數是可選的,當判斷條件成立時,返回的指定結果。

第3個參數也是可選的,當判斷條件不成立時,返回的指定結果。

舉個例子

=IF(B2>=60,"及格","不及格")

B2>=60是一個運算式,判斷B2單元格的值是否大於等於60。

如果運算式成立,會得到邏輯值TRUE,也就是說B2>=60這事是真的。

如果不成立呢,會得到邏輯值FALSE,也就是說B2>=60這事是假的。

當B2>=60這事是真的,我們就去找第二個參數,於是得到結果,及格。

當這事是假的,那我們就去找第三個參數,於是得到結果,不及格。

假如B2是數值99,猜一猜,下面這條IF函式會返回什麽結果?

=IF(B2>=60,"不及格","及格")

多層巢狀

我們上面舉了個成績考評的例子,把成績分為了及格和不及格兩種。

在實際生活中,這顯然很不靠譜。

你說作為一位人民教師,怎麽能犯這種非是即否的思維錯誤呢?

你把60分以下的都叫做不及格——那就算了,怎麼能把60分以上的都叫做及格呢? 這對孩子的幼小心靈造成了多大的打擊? 你怎麽著得劃分個優秀出來吧? ——來自多位優秀生家長的質問。

好吧,為了和諧社會,咱們只能把公式修改一下:

=IF(B2<60,"不及格",IF(B2>90,"優秀","及格"))

公式先計算B2單元格的值是否小於60,如果成立則返回「不及格」,如果B2的值大於或等於60呢? 公式繼續往右走,到第三個參數那裏,第三參數是一個IF函式,它先判斷B2的值是否大於90,如果成立,則返回優秀,不然就統統返回及格。

第2個IF函式是第1個IF的巢狀函式,用於解決第1個IF條件為假時的分支問題。

這就好比走路,IF這家夥只有兩個腦細胞,第一個二叉路口,IF自己就可以搞定,到了第二個二岔路口,它腦細胞用完了,怎麽辦呢? 趕緊生個孩子,讓它去繼續探路吧,又到了下一個路口,孩子的兩個腦細胞也用完了,怎麽辦呢? 沒事,反正生函式又不犯法,再生一個,繼續探路吧……

如此延續,Excel最多支持64個不同的IF函式巢狀。

……

一條優秀的IF函式巢狀公式,通常都是從假的一端不斷延伸,而不會一會兒真端,一會兒假端。

這句話是什麽意思呢?

還是舉個栗子。

假設成績大於80分的家長,同樣不滿意學生的評級制度,要求增加一個「良好」。

好吧,我們只能把評級規則再修改一下,小於60的,都是不及格; 60-80及格; 80-90為良好; 90分以上優秀。

有朋友此時可能會把IF函式寫成這樣:

=IF(B2>90,"優秀",IF(B2>60,IF(B2>80,"良好","及格"),"不及格"))

盡管這公式能得到正確的結果,但閱讀起來邏輯很不清楚。

它的路徑是這樣的,一會兒從「假」的路徑上分叉,提出判斷條件,一會兒又從「真」的路徑上分叉,提出判斷條件。

換個寫法:

=IF(B2>90,"優秀",IF(B2>80,"良好",IF(B2>60,"及格","不及格")))

這樣邏輯是不是就清楚多了?

它的路徑如下圖,一直在從「假」的路徑上分叉,層層推進。

……

IF函式簡單又好用,但是當IF函式巢狀超過三層時,必然會有更高效更簡潔的函式代替它工作。

會是哪些函式呢?

AND和OR函式

這節我們來講下IF函式的多條件判斷問題。

多條件判斷分為兩種情況,一種是「並且」關系,一種是「或」關系。

什麽是「並且」關系呢?

並且關系指的是多個條件都同時成立,結果方才為真的情況。

比如說,你的電腦有三個盤,分別是C槽、D槽和G槽。 現在防毒,C槽沒有毒,D槽沒有毒,G槽也沒有毒,三個的條件都成立,OK,我們可以得出結論你的電腦沒中毒,你是個老實人。 但倘若其中任意一個盤有毒,那你就不能說自己電腦沒中毒了,看我小眼神,對不對?

這就是一種典型的「並且」關系問題。

如何使用函式判斷「並且」關系是否成立呢?

函式新人通常會使用AND函式。

其語法如下:

=AND(條件1,條件2,條件3,條件n……)

舉個實際公式的例子。

=AND(2>1,3>2,4>3)

AND函式包含了三個條件,每個條件計算結果都為TRUE,也就是說每個條件都成立,計算結果返回TRUE。

但倘若哪怕有一個條件為假,比如公式:

=AND(1>2,3>2,4>3)

結果即為FALSE

……

舉個HR常見的小栗子:

以下圖所示數據表例,假設女性55歲退休,男 60歲退休,現在我們需要計算數據列表中的女性是否應該退休……

D列公式如下:

=IF(AND(B2="女",C2>55),"退休","")

AND函式是一個運算式,作為IF函式的第一參數,有兩個判斷條件,一個是B2單元格性別是否為「女」,另一個是C2單元格的年齡是否大於55,只有兩個條件都成立,AND結果才返回TRUE。

當AND函式結果為TRUE,IF函式返回值「退休」,否則返回假空""。

……

……

說完了「並且」關系,我們再聊下「或」關系。

「或」關系剛好和「並且」關系唱反調,「並且」關系認為所有的條件都成立,才算數兒。 「或」關系不這麽認為,它覺得做人要大度,有一個條件成立就算OK了,只有所有條件都不成立時,才不算數。

如果「並且」和「或」去談戀愛,他們的愛情觀大概是這樣的。 「並且」覺得愛情像眼睛,容不下一粒沙子,有一粒沙子咱們就拜拜吧。 「或」覺得愛情像沙子,抓的越緊,漏的越多,所以能抓住一個條件就行了——說實話,你喜歡誰? ——你又是誰?

舉個栗子,如下圖所示,是一張成績表,我們要判斷A列學生是不是優秀生,規則是只要語文或數學有一門成績大於90分即可。

D列公式如下:

=IF(OR(B2>90,C2>90),"優秀","")

OR函式是一個運算式,作為IF函式的第一參數,有兩個判斷條件,分別判斷語文和數學的成績是否大於90分,如果有一個條件成立,則OR函式返回TRUE。

當OR函式結果為TRUE時,IF函式返回值「優秀」,否則返回假空。

好吧,換下規則——和雙科均優秀生的家長無關——只有當語文和數學雙科成績都大於90分時,才可以評定為優秀生,公式又該如何書寫呢?

你來!

……

小貼士:

我有時會見到有人將「並且」關系的邏輯運算式寫成下面這樣。

=IF(60<B2<80,"良好","")

從人類思維的角度講,這麽寫,倒也沒錯,但問題是——Excel它不是人啊

你想的是比較B2單元格的值是不是大於60同時小於80,但Excel不這麽算。

它會照常從左向右算,先算B2的值是不是大於60,於是返回邏輯值TRUE或FALSE,然後再和80比較誰大誰小。 我們之前講過,不管是TRUE還是FALSE,作為邏輯值都比數值大,所以60<B2<80必然返回結果FALSE,不論B2單元格的值是大是小,整條IF函式也就必然會返回第三參數所對應的值: 假空。

好了,今天的內容就是這樣吧,下期再見~

圖文制作:看見星光