tft每日頭條

 > 生活

 > if函數套路

if函數套路

生活 更新时间:2024-10-11 17:00:13

小夥伴們好啊,今天咱們一起認識人見人愛花見花開的IF函數。

這個函數的作用是對指定條件進行判斷,然後根據判斷結果返回不同的内容,常用寫法是這樣的:

if函數套路(年薪三萬都嫌少)1

就相當于是:如果……,那麼……,否則……

第一個參數,用大于、小于、等于等形式,來判斷某個條件是否成立,判斷A2單元格的數值是否大于60,B2單元格的職務是否等于“經理秘書”等等,判斷的結果是邏輯值TRUE(條件成立)或是FALSE(條件不成立)。

第二個參數是在條件成立時返回的内容,可以是一個數字、一段字符,或者是一段其他的公式。

第三個參數是在條件不成立時返回的内容,也可以是數字、字符或是一段其他的公式。

舉個例子:

要對B2單元格中的分數進行判斷,大于60為“合格”,否則為“不合格”。

咱們就可以使用下面這個公式:

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

注意,在公式中直接返回字符時,需要在字符前後加上一對半角的雙引号。

if函數套路(年薪三萬都嫌少)2

如果B2大于60,B2>60部分返回邏輯值TRUE,IF函數返回第二參數指定的字符“合格”,否則返回第三參數指定的字符“不合格”。

剛剛這個是單個條件的判斷,使用IF函數還能完成多個條件的判斷。

如下圖,要對B列的職務進行判斷,如果等于“秘書”,那麼補助為1000。如果不等于“秘書”,再繼續判斷,如果等于“助理”,那麼補助為800,否則為0。

if函數套路(年薪三萬都嫌少)3

前面咱們說過,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。

計算過程大緻是這樣的:

if函數套路(年薪三萬都嫌少)4

接下來咱們再來看看多列條件的判斷。

如下圖,如果B列的崗位是秘書,并且C列的入職年限大于1,則補助1000元,否則補助為0。

if函數套路(年薪三萬都嫌少)5

這裡要同時判斷兩列條件是不是符合,IF函數功力有限,需要請天山二佬——AND和OR函數來幫忙。

if函數套路(年薪三萬都嫌少)6

AND函數和OR函數都是對多個參數返回的邏輯值執行判斷。

區别在于:

當所有參數返回的邏輯值都為TRUE時,AND函數才返回TRUE。

而OR函數則是在任意一個參數返回的邏輯值為TRUE時,就返回邏輯值TRUE。

就像下圖中,4個護士(參數)分别判斷血常規正常嗎?心電圖正常嗎?肝功正常嗎?B超正常嗎?

當每個護士(參數)的判斷都是TRUE時,AND醫生最終才會下檢查結論:OK(TRUE),正常。

if函數套路(年薪三萬都嫌少)7

下圖中,4個護士(參數)分别判斷血常規有問題嗎?心電圖有問題嗎?肝功有問題嗎?B超有問題嗎?

當任意一位護士(參數)的判斷是TRUE時,OR醫生就會下檢查結論:OK(TRUE),辦理住院手續吧。

if函數套路(年薪三萬都嫌少)8

回到開始的問題,咱們要對崗位和入職年限兩個條件進行判斷,隻有當 崗位=“秘書”的判斷結果為TRUE,并且入職年限>1 的判斷結果也為TURE,才返回補助1000元,這裡要用哪個醫生呢?對了,就是AND。

D2單元格輸入以下公式,向下複制到D8。

=IF(AND(B2="秘書",C2>1),1000,0)

if函數套路(年薪三萬都嫌少)9

以D2單元格中的公式為例,B2="秘書"返回的結果是FALSE,C2>1返回的結果是TRUE,AND函數最終返回FALSE。IF函數根據AND函數的結果為依據進一步進行判斷,最終返回第三參數0。

假如咱們換一個判斷标準,如果 崗位=“秘書”,或者 入職年限>1,就給1000元的補助,隻有兩項都不符合,補助才是0。

這裡的判斷要求是多個條件符合其一,隻要把上面公式中的AND換成OR就可以。

=IF(OR(B2="秘書",C2>1),1000,0)

if函數套路(年薪三萬都嫌少)10

以D2單元格中的公式為例,B2="秘書"返回的結果是FALSE,C2>1返回的結果是TRUE,OR函數最終返回FALSE。IF函數根據OR函數的結果為依據進一步進行判斷,最終返回第二參數1000。

再來說說按多個範圍區間判斷的問題。

如下圖,要根據B列的月收入進行判斷。

标準為:

月收入低于10000為貧困型;

月收入在10000至50000為溫飽型;

月收入大于50000為小康型。

if函數套路(年薪三萬都嫌少)11

這裡要對B列的數值進行多輪判斷,就要用到多個IF函數的嵌套了。

咱們先把前面的判斷标準整理一下,先判斷B2是否小于10000,條件成立返回“貧困型”;如果B2不小于10000,那就繼續判斷B2是否小于50000,條件成立返回“溫飽型”;如果條件仍然不成立,就是月收入大于50000的那些了,返回“小康型”。

把上面這幾句話換成IF函數的組合,是這樣的:

=IF(B2<10000,"貧困型",IF(B2<50000,"溫飽型","小康型"))

其中紅色部分的IF函數,就是前面這個IF函數的第三參數。先判斷藍色部分的條件,藍色部分的條件不成立時,再判斷紅色部分。

這一段一段的判斷,是不是像挨個車廂裡找人?

if函數套路(年薪三萬都嫌少)12

執行多區間判斷時,有一點需要特别注意:前面的判斷條件不能包含後面的判斷條件。

如果将公式寫成下面這樣,再看看結果,那就全部脫貧了。

=IF(B2<50000,"溫飽型",IF(B2<10000,"貧困型","小康型"))

if函數套路(年薪三萬都嫌少)13

為什麼出現這種情況呢?

以B3單元格為例,如果先判斷2500<50000, 條件肯定是成立的,這時候IF函數返回第二參數“溫飽型”,後面的就不再判斷啦。

剛剛咱們是從第一節車廂開始往後找的,其實也可以從最後一節車廂往前找。

下面這個公式,就是先從最高的标準開始判斷,然後逐級向下。

=IF(B2>=50000,"小康型",IF(B2>=10000,"溫飽型","貧困型"))

最後再補充一個小夥伴們經常容易出問題的地方,比如要判斷B2的數值是否在10000至50000之間,符合條件返回“溫飽型”,不符合條件則返回"待考察"。

下面這個公式結果顯然是不對的:

=IF(10000<B2<50000,"溫飽型","待考察")

if函數套路(年薪三萬都嫌少)14

為什麼出現誤判呢?

其實這不怪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每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

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