tft每日頭條

 > 生活

 > if函數的使用三個條件

if函數的使用三個條件

生活 更新时间:2025-01-31 10:27:03
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自己就可以搞定,到了第二個二岔路口,它腦細胞用完了,怎麼辦呢?趕緊生個孩子,讓它去繼續探路吧,又到了下一個路口,孩子的兩個腦細胞也用完了,怎麼辦呢?沒事,反正生函數又不犯法,再生一個,繼續探路吧……

如此延續,IF函數最多能生64個孩子,也就是說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,我們可以得出結論你的電腦沒中毒,你是個老實人。但倘若其中任意一個盤有毒,那你就不能說自己電腦沒中毒了,看我小眼神,對不對?

if函數的使用三個條件(IF函數你真的會用嗎)1

這就是一種典型的“并且”關系問題。

如何使用函數判斷“并且”關系是否成立呢?

函數新人通常會使用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歲退休,現在我們需要計算數據列表中的女性是否應該退休……

if函數的使用三個條件(IF函數你真的會用嗎)2

D列公式如下:

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

AND函數是一個表達式,作為IF函數的第一參數,有兩個判斷條件,一個是B2單元格性别是否為“女”,另一個是C2單元格的年齡是否大于55,隻有兩個條件都成立,AND結果才返回TRUE。

當AND函數結果為TRUE,IF函數返回值“退休”,否則返回假空""。

……

……

說完了“并且”關系,我們再聊下“或”關系。

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

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

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

if函數的使用三個條件(IF函數你真的會用嗎)3

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函數也就必然會返回第三參數所對應的值:假空。

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

圖文制作:看見星光

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved