小夥伴們好啊,今天咱們一起認識人見人愛花見花開的IF函數。
這個函數的作用是對指定條件進行判斷,然後根據判斷結果返回不同的内容,常用寫法是這樣的:
就相當于是:如果……,那麼……,否則……
第一個參數,用大于、小于、等于等形式,來判斷某個條件是否成立,判斷A2單元格的數值是否大于60,B2單元格的職務是否等于“經理秘書”等等,判斷的結果是邏輯值TRUE(條件成立)或是FALSE(條件不成立)。
第二個參數是在條件成立時返回的内容,可以是一個數字、一段字符,或者是一段其他的公式。
第三個參數是在條件不成立時返回的内容,也可以是數字、字符或是一段其他的公式。
舉個例子:
要對B2單元格中的分數進行判斷,大于60為“合格”,否則為“不合格”。
咱們就可以使用下面這個公式:
=IF(B2>60,"合格","不合格")
注意,在公式中直接返回字符時,需要在字符前後加上一對半角的雙引号。
如果B2大于60,B2>60部分返回邏輯值TRUE,IF函數返回第二參數指定的字符“合格”,否則返回第三參數指定的字符“不合格”。
剛剛這個是單個條件的判斷,使用IF函數還能完成多個條件的判斷。
如下圖,要對B列的職務進行判斷,如果等于“秘書”,那麼補助為1000。如果不等于“秘書”,再繼續判斷,如果等于“助理”,那麼補助為800,否則為0。
前面咱們說過,IF函數的第二參數和第三參數,可以是數值、文字,也可以是一段其他的公式。
這裡咱們就要将IF函數的第三參數也寫成一段新的IF函數,實現對B列的職務執行兩次判斷。
=IF(B2="秘書",1000,IF(B2="助理",800,0))
最外層的IF函數先判斷 B2="秘書" 的返回結果是不是TRUE,如果是TRUE,就返回第二參數指定的數值1000。
如果B2不等于秘書,“ B2="秘書"”得到FALSE,IF函數返回第三參數的内容。
哪些才是最外層這個IF函數的第三參數呢?
對了,就是标記顔色的這部分 IF(B2="助理",800,0) 。
在“ B2="秘書"”的判斷結果為FALSE時,标記顔色的這部分開始幹活了,先來判斷“B2="助理"”的條件是否成立,如果這部分條件判斷返回的是TRUE,則返回裡面這個IF函數的第二參數800,否則返回裡面這個IF函數的第三參數0。
計算過程大緻是這樣的:
接下來咱們再來看看多列條件的判斷。
如下圖,如果B列的崗位是秘書,并且C列的入職年限大于1,則補助1000元,否則補助為0。
這裡要同時判斷兩列條件是不是符合,IF函數功力有限,需要請天山二佬——AND和OR函數來幫忙。
AND函數和OR函數都是對多個參數返回的邏輯值執行判斷。
區别在于:
當所有參數返回的邏輯值都為TRUE時,AND函數才返回TRUE。
而OR函數則是在任意一個參數返回的邏輯值為TRUE時,就返回邏輯值TRUE。
就像下圖中,4個護士(參數)分别判斷血常規正常嗎?心電圖正常嗎?肝功正常嗎?B超正常嗎?
當每個護士(參數)的判斷都是TRUE時,AND醫生最終才會下檢查結論:OK(TRUE),正常。
下圖中,4個護士(參數)分别判斷血常規有問題嗎?心電圖有問題嗎?肝功有問題嗎?B超有問題嗎?
當任意一位護士(參數)的判斷是TRUE時,OR醫生就會下檢查結論:OK(TRUE),辦理住院手續吧。
回到開始的問題,咱們要對崗位和入職年限兩個條件進行判斷,隻有當 崗位=“秘書”的判斷結果為TRUE,并且入職年限>1 的判斷結果也為TURE,才返回補助1000元,這裡要用哪個醫生呢?對了,就是AND。
D2單元格輸入以下公式,向下複制到D8。
=IF(AND(B2="秘書",C2>1),1000,0)
以D2單元格中的公式為例,B2="秘書"返回的結果是FALSE,C2>1返回的結果是TRUE,AND函數最終返回FALSE。IF函數根據AND函數的結果為依據進一步進行判斷,最終返回第三參數0。
假如咱們換一個判斷标準,如果 崗位=“秘書”,或者 入職年限>1,就給1000元的補助,隻有兩項都不符合,補助才是0。
這裡的判斷要求是多個條件符合其一,隻要把上面公式中的AND換成OR就可以。
=IF(OR(B2="秘書",C2>1),1000,0)
以D2單元格中的公式為例,B2="秘書"返回的結果是FALSE,C2>1返回的結果是TRUE,OR函數最終返回FALSE。IF函數根據OR函數的結果為依據進一步進行判斷,最終返回第二參數1000。
再來說說按多個範圍區間判斷的問題。
如下圖,要根據B列的月收入進行判斷。
标準為:
月收入低于10000為貧困型;
月收入在10000至50000為溫飽型;
月收入大于50000為小康型。
這裡要對B列的數值進行多輪判斷,就要用到多個IF函數的嵌套了。
咱們先把前面的判斷标準整理一下,先判斷B2是否小于10000,條件成立返回“貧困型”;如果B2不小于10000,那就繼續判斷B2是否小于50000,條件成立返回“溫飽型”;如果條件仍然不成立,就是月收入大于50000的那些了,返回“小康型”。
把上面這幾句話換成IF函數的組合,是這樣的:
=IF(B2<10000,"貧困型",IF(B2<50000,"溫飽型","小康型"))
其中紅色部分的IF函數,就是前面這個IF函數的第三參數。先判斷藍色部分的條件,藍色部分的條件不成立時,再判斷紅色部分。
這一段一段的判斷,是不是像挨個車廂裡找人?
執行多區間判斷時,有一點需要特别注意:前面的判斷條件不能包含後面的判斷條件。
如果将公式寫成下面這樣,再看看結果,那就全部脫貧了。
=IF(B2<50000,"溫飽型",IF(B2<10000,"貧困型","小康型"))
為什麼出現這種情況呢?
以B3單元格為例,如果先判斷2500<50000, 條件肯定是成立的,這時候IF函數返回第二參數“溫飽型”,後面的就不再判斷啦。
剛剛咱們是從第一節車廂開始往後找的,其實也可以從最後一節車廂往前找。
下面這個公式,就是先從最高的标準開始判斷,然後逐級向下。
=IF(B2>=50000,"小康型",IF(B2>=10000,"溫飽型","貧困型"))
最後再補充一個小夥伴們經常容易出問題的地方,比如要判斷B2的數值是否在10000至50000之間,符合條件返回“溫飽型”,不符合條件則返回"待考察"。
下面這個公式結果顯然是不對的:
=IF(10000<B2<50000,"溫飽型","待考察")
為什麼出現誤判呢?
其實這不怪IF,是咱們的寫法有問題了。
上面這個公式中,IF函數的第一參數10000<B2<50000,運算過程為:
先判斷10000<B2,結果得到邏輯值TRUE,然後再使用TRUE與50000進行比較。根據Excel中的潛規則,邏輯值是大于任何數值的,所以這一步就會返回邏輯值FALSE,而IF函數也最終返回第三參數的内容了。
正确的公式應該是這樣的:
=IF(AND(10000<B2,B2<50000),"溫飽型","待考察")
或者:
=IF(AND(B2>10000,B2<50000),"溫飽型","待考察")
都可以返回正确結果。
好了,關于IF函數的内容咱們就介紹這些吧,祝各位小夥伴一天好心情!
圖文制作:周慶麟
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!