你真的了解IF函數嗎? 一文讀懂excel中IF函數的深度解析

小伙伴們好啊,今天咱們一起來認識一下IF函數。這個函數的作用是對指定條件進行判斷,然后根據判斷結果返回不同的內容,常用寫法是這樣的:
就相當于是:如果……,那么……,否則……
- 第一個參數,用大于、小于、等于等形式,來判斷某個條件是否成立,判斷A2單元格的數值是否大于60,B2單元格的職務是否等于“經理秘書”等等,判斷的結果是邏輯值TRUE(條件成立)或是FALSE(條件不成立)。
- 第二個參數是在條件成立時返回的內容,可以是一個數字、一段字符,或者是一段其他的公式。
- 第三個參數是在條件不成立時返回的內容,也可以是數字、字符或是一段其他的公式。
舉個例子:
要對B2單元格中的分數進行判斷,大于60為“合格”,否則為“不合格”。
咱們就可以使用下面這個公式:
=IF(B2>60,"合格","不合格")
注意,在公式中直接返回字符時,需要在字符前后加上一對半角的雙引號。
如果B2大于60,B2>60部分返回邏輯值TRUE,IF函數返回第二參數指定的字符“合格”,否則返回第三參數指定的字符“不合格”。
剛剛這個是單個條件的判斷,使用IF函數還能完成多個條件的判斷。
如下圖,要對B列的職務進行判斷,如果等于“秘書”,那么補助為1000。如果不等于“秘書”,再繼續(xù)判斷,如果等于“助理”,那么補助為800,否則為0。
前面咱們說過,IF函數的第二參數和第三參數,可以是數值、文字,也可以是一段其他的公式。
這里咱們就要將IF函數的第三參數也寫成一段新的IF函數,實現對B列的職務執(zhí)行兩次判斷。
=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函數功力有限,需要請?zhí)焐蕉?mdash;—AND和OR函數來幫忙。
AND函數和OR函數都是對多個參數返回的邏輯值執(zhí)行判斷。
區(qū)別在于:
- 當所有參數返回的邏輯值都為TRUE時,AND函數才返回TRUE。
- 而OR函數則是在任意一個參數返回的邏輯值為TRUE時,就返回邏輯值TRUE。
就像下圖中,4個護士(參數)分別判斷血常規(guī)正常嗎?心電圖正常嗎?肝功正常嗎?B超正常嗎?
當每個護士(參數)的判斷都是TRUE時,AND醫(yī)生最終才會下檢查結論:OK(TRUE),正常。
下圖中,4個護士(參數)分別判斷血常規(guī)有問題嗎?心電圖有問題嗎?肝功有問題嗎?B超有問題嗎?
當任意一位護士(參數)的判斷是TRUE時,OR醫(yī)生就會下檢查結論:OK(TRUE),辦理住院手續(xù)吧。
回到開始的問題,咱們要對崗位和入職年限兩個條件進行判斷,只有當 崗位=“秘書”的判斷結果為TRUE,并且入職年限>1 的判斷結果也為TURE,才返回補助1000元,這里要用哪個醫(yī)生呢?對了,就是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。
再來說說按多個范圍區(qū)間判斷的問題。
如下圖,要根據B列的月收入進行判斷。
標準為:
月收入低于10000為貧困型;月收入在10000至50000為溫飽型;月收入大于50000為小康型。
這里要對B列的數值進行多輪判斷,就要用到多個IF函數的嵌套了。
咱們先把前面的判斷標準整理一下,先判斷B2是否小于10000,條件成立返回“貧困型”;如果B2不小于10000,那就繼續(xù)判斷B2是否小于50000,條件成立返回“溫飽型”;如果條件仍然不成立,就是月收入大于50000的那些了,返回“小康型”。
把上面這幾句話換成IF函數的組合,是這樣的:
=IF(B2<10000,"貧困型",IF(B2<50000,"溫飽型","小康型"))
其中紅色部分的IF函數,就是前面這個IF函數的第三參數。先判斷藍色部分的條件,藍色部分的條件不成立時,再判斷紅色部分。
執(zhí)行多區(qū)間判斷時,有一點需要特別注意:前面的判斷條件不能包含后面的判斷條件。
如果將公式寫成下面這樣,再看看結果,那就全部脫貧了。
=IF(B2<50000,”溫飽型”,IF(B2<10000,”貧困型”,”小康型”))
為什么出現這種情況呢?
以B3單元格為例,如果先判斷2500<50000, 條件肯定是成立的,這時候IF函數返回第二參數“溫飽型”,后面的就不再判斷啦。 剛剛咱們是從第一節(jié)車廂開始往后找的,其實也可以從最后一節(jié)車廂往前找。 下面這個公式,就是先從最高的標準開始判斷,然后逐級向下。 =IF(B2>=50000,”小康型”,IF(B2>=10000,”溫飽型”,”貧困型”))
最后再補充一個小伙伴們經常容易出問題的地方,比如要判斷B2的數值是否在10000至50000之間,符合條件返回“溫飽型”,不符合條件則返回”待考察”。
下面這個公式結果顯然是不對的:
=IF(10000<B2<50000,"溫飽型","待考察")
為什么出現誤判呢?
其實這不怪IF,是咱們的寫法有問題了。
上面這個公式中,IF函數的第一參數10000<B2<50000,運算過程為:
先判斷10000<B2,結果得到邏輯值TRUE,然后再使用TRUE與50000進行比較。根據Excel中的潛規(guī)則,邏輯值是大于任何數值的,所以這一步就會返回邏輯值FALSE,而IF函數也最終返回第三參數的內容了。
正確的公式應該是這樣的:
=IF(AND(10000<B2,B2<50000),"溫飽型","待考察") 或者: =IF(AND(B2>10000,B2<50000),"溫飽型","待考察")
都可以返回正確結果。
推薦閱讀:
相關文章
看完這一篇XLOOKUP算是通透了! excel中XLOOKUP函數經典用法總結
excel中Xlookup公式可以輕松解決我們工作中的各種查找匹配問題,今天總結了12個XLOOKUP函數經典用法,可以直接套用2025-01-10excel怎么快速提取字符? excel表格僅提取字符的幾種函數公式
excel表格有文字、數字、字符,想要快速將字符提取出來,有哪些函數公式可以實現呢?詳細請看下文介紹2025-01-10- 說到函數MAX和MIN了基本應用,你們可能還不知道函數MAX和MIN還有一些不一樣的應用技巧,詳細請看下文介紹2025-01-05
數據分析入門! Excel中min和max函數那些鮮為人知的用法
在EXCEL表格中,MAX函數是求取最大值的,MIN函數是求取最小值的,但今天,我們重點來看看函數MAX和MIN具體都有哪些讓人意想不到的應用技巧2025-01-03- Excel表格中實現跨數據表求和的方法很多,今天我們就來看看indirect函數的用法,詳細請看下文實例教程2025-01-03
終于有專門的去重函數了! Excel數據去重復值神器UNIQUE函數詳解
今天我們來了解一個Excel中的新函數—— UNIQUE, 它可以說是很多人期盼已久的函數,可以幫助我們從數據區(qū)域中自動提取唯一值,就是我們常說的去重,操作也非常簡單,下面2025-01-02- 今天跟大家分享一個新的Excel函數,可以稱得上是一個具有里程碑意義的函數了,它的出現讓Excel函數也可以像代碼一樣優(yōu)美2024-12-30
textsplit是什么函數? Excel最牛拆分截取函數的使用技巧
Excel表格中經常會進行拆分截取內容,方法有很多,今天我們就來看看使用拆分截取函數textsplit實現方法,詳細請看下文介紹2024-12-23- SORTBY函數是Excel中用于基于一個或多個列的值對范圍或數組進行排序的函數,與傳統的SORT函數不同,SORTBY允許你指定一個或多個排序依據的列,并可以根據這些列的值進行多2024-12-21
- MAP函數是Excel中一個強大的數組函數,它允許用戶對數組的每個元素應用同一個表達式,并返回一個新的數組,其中包含了應用表達式后的結果,下面我們就來看看這個新函數的試2024-12-20