編按:哈嘍,大家好!今天我們來說說Excel中邏輯判斷函數——IF函數。「什麼?IF函數?之前不是都講過了嗎,怎麼還拿出來說?」nonono!今天我們將從全新的角度出發,帶大家重新認識這位最熟悉的陌生人——IF函數!
*********
【前言】
今天我們來說一個每位EXCELER都會用到的函數——IF函數。是不是知道了是這個很「熟悉」的函數,就想關閉此文章了呢?不過,我建議你繼續看下去,因為我確定你會在今天的教程中,學到很多的內容。
*********
【語法】
IF函數功能:判斷是否滿足某個條件,如果滿足返回一個值,如果不滿足則返回另一個值。
IF函數的語法也很簡單,一共就三個參數:IF(LOGICAL_TEST,[VALUE_IF_TRUE],[VALUE_IF_FALSE])
很多同學都「懂得」這個函數的用法。
但是這一堆英文所代表的意義,才是我們需要了解學習的內容。在工具欄中的「公式」選項卡中,選擇「插入函數」,在「搜索函數」欄中輸入「IF」,點擊「轉到」按鈕;在「選擇函數」的列表框中單擊IF函數,再點擊「確定」按鈕,就會彈出一個「函數參數」的窗口,如下:
從這裡我們可以看到很多的信息,我們可以設置紅色框內的每個參數的內容,在左下角的「計算結果=」處會得到預覽結果;藍色框內是對各個參數的文字說明,同時列出各個參數規定的格式;綠色框內是一個連結,可以連結到官方網站對於此函數的講解。
《小常識》:在學習函數的過程中,「函數參數」窗口,是一個相當有用的工具,也是我們學習函數的主要途徑之一,它不僅可以幫助我們學會函數的用法,還可以規範我們使用函數的習慣。
從IF的「函數參數」窗口中,我們發現了一個細節:
[VALUE_IF_TRUE],[VALUE_IF_FALSE]這兩個參數,對於參數格式沒有任何特殊要求,是任意內容;而LOGICAL_TEST的返回值按規定一定得是「邏輯值」。官方對於這個參數的解釋為:是任何可能被計算為TRUE或FALSE的數值或表達式。這裡的TRUE和FALSE就是「邏輯值」。
一、IF函數的常規用法
這應該算是IF函數最常規的用法了,判斷完成率是否達到80%,達標就標記為「達標」,不達標則返回空。在D2單元格輸入函數=IF(C3/B3>=0.8,"達標",""),估計同學們都會使用吧,那我們就再拆分一下這個函數,來看看IF函數的運行原理。
在E2單元格中輸入公式=C3/B3>=0.8,在F2單元格輸入函數=IF(E3,"達標",""),然後下拉填充。我們可以看到E2:E6單元格區域顯示的是邏輯值,在F2:F6區域引用這個邏輯值,是同樣可以使函數成立的。
二、得到的邏輯值
那麼我們就要思考了,既然所有可以得到邏輯值的運算都可以作為IF函數的第一參數,而且IF函數使用的環境又是如此的廣泛,那麼我們在使用IF函數解決工作問題的時候,只需找到條件的邏輯值就可以了。
所以,都有什麼樣的運算可以得到邏輯值,就成為我們日常工作中使用IF函數的關鍵所在!!
這裡作者E圖表述給大家介紹三種途徑:
比較運算符
邏輯函數
IS系列函數
1.比較運算符
什麼是比較運算符?其實我們上小學的時候就學過,如下表所列:
用剛才的案例來說,=IF(C3/B3>=0.8,"達標","")其中的C3/B3>=0.8就是比較符的使用,如果C3/B3的值大於等於0.8,那麼等式成立,返回邏輯值TRUE,反之為FALSE。
2.邏輯函數
在EXCLE2016版的邏輯函數中,一共有九個,如下圖:
作者根據它們的用途主要分成兩類內容,分別是:
關係型——AND函數、OR函數、NOT函數、XOR函數
判斷型——IF函數、IFERROR函數、IFNA函數
對於和IF函數的嵌套使用,我們主要來看關係型邏輯函數起到的作用
AND函數
AND函數中的每一個參數的返回值如果都是TRUE,那麼AND函數才返回TRUE值,只要有一個參數返回FALSE,則AND函數也會返回FALSE。
OR函數
OR函數中的其中一個參數的返回值是TRUE,OR函數就返回TRUE值,如果所有參數的返回值都是FALSE,OR函數才會返回FALSE。
NOT函數
NOT函數是將邏輯值轉換成相反的值,它只有一個參數,其意義在於將TRUE轉換成FALSE,將FALSE轉換成TRUE。例如=NOT(TRUE)將返回FALSE,這裡值得說一句的是AND+NOT函數的聯用,可以理解為OR函數的「反義詞」。
XOR函數
XOR函數是作者認為比較雞肋的一個函數,它返回的是多條件的「異或」狀態。如果條件都是TRUE或者都是FALSE,說明參數值都一樣,就沒有「異或」的情況,則返回FALSE值;如果條件中既有TRUE又有FALSE,則說明有「異或」情況,返回TRUE。但是XOR函數對於到底是「都滿足條件」還是「都不滿足條件」,從這個函數中是不好判斷的。
3.IS系列函數
IS系列函數很多同學應該還沒有用過,這類函數其實很好理解,就按英語的直譯「是不是」就可以了。比如ISNUMBER函數,就是判斷值「是不是數值」。那麼這類函數都有什麼內容呢?一共有12個IS函數,如下列表所示:(檢測內容中的「2」是文本數據,不要被它的外在所欺騙哦~)
因為IS系列函數的使用很簡單,語法為:=函數名(單元格或者單元格區域),這裡我們就舉一個簡單的案例說明一下用途。
我們只要知道IS系列函數的返回值是邏輯值(是則TRUE,不是則FALSE),那麼就可以被我們用來充當IF函數的第一參數。
如上圖,SUM函數會自動忽略文本格式數值進行運算;如果配合減負運算「--」,將區域內的文本格式都轉換為數值後,再進行SUM求和,就可以計算出該區域內所有數的合計。那麼僅統計文本型數值的合計,該怎麼計算呢?用ISTEXT做一下判斷,再結合減負函數就得到了結果。多練習,你也會掌握的。
三、IF函數的進階使用
1.IF函數的嵌套——區間取值
這是IF函數的典型用法,通過一系列的判斷,將數據歸類,如下:
在C2單元格輸入函數,下拉填充柄填充C2:C9區域:
=IF(B2>=95,"優",IF(B2>=80,"良",IF(B2>=60,"中","差")))
這是一個相當簡單的函數,但是依然有很多同學寫錯,究其原因還是沒有理解IF函數的運行原理,IF函數的運行是有層級順序的,例如上面的函數:
第一級運算:B2>=95,如果TRUE,返回值「優」,並停止函數運行;如果FALSE,返回IF(B2>=80,"良",IF(B2>=60,"中","差")),進行次一級運算;
第二級運算:B2>=80,如果TRUE,返回值「良」,並停止函數運行;如果FALSE,返回IF(B2>=60,"中","差"),進行再次級運算。
注意:建議同學們學習IF函數的時候,一定要腦補IF的流程圖,這不僅是對編寫函數的一種「輔助畫面」,而且對於日常練習「邏輯感」相當有幫助。
2.IF函數的條件求和——統計函數+IF的三鍵運用
日常工作中,統計函數+IF的三鍵運用是相當普遍的,「三鍵」是什麼?三鍵就是CTRL+SHIFT+ENTER三鍵結束函數錄入,而形成數組函數的用法。我們下次專門講「數組函數」的時候,再細看其原理,現在我們先對「三鍵」有一個概念,做到會運行數組函數即可。
這是一個利用IF原理做的一個多條件統計過程,還記得我們上面說的「比較運算符」的部分嗎?如果夠細心的同學會看到我在上面寫過True(1)、False(0)。
這就是邏輯值的數值體現,邏輯值是可以參與運算的。我們利用「公式求值」的功能,就可以看出這個函數的運行原理。
上面是多條件同時滿足的情況,如果是「滿足一個條件」即可的情況呢?我們可以這樣做:
F10單元格函數={=MIN(IF((A2:A11="A2")+(B2:B11="B3"),C2:C11,""))}
原理是一樣的,就不分解說明了,同學們思考一下,鍛鍊一下自己的邏輯感。(也可以在QQ群中下載素材,然後利用F9鍵或者上述公式求值的方法分析公式哦~)
3.IF函數的另一個經典——VLOOKUP+IF反向查詢
反向查詢的問題,在日常工作中也是經常會用到的,解法也是相當的多,藉此篇文章我們再說一下這個經典的用法。
在E3單元格輸入函數:=VLOOKUP(E2,IF({1,0},B1:B5,A1:A5),2,0)
依然是利用了IF函數的邏輯值返回數值的原理,只是我們將邏輯值的第一參數用{1,0}作為已知的常量,強行將B區域和A區域的位置在內存中互換,形成一個新的引用區域,藉此使VLOOKUP能夠正常運行,通過「公式求值」我們可以看到IF函數運行後的數組內容。
{"姓名","部門";"張三","工程部";"李四","財務部";"王五","工程部";"趙六","財務部"},姓名和部門兩列就已經在內存中調整好了排列順序。
對於IF{1,0}結構還不是很清楚的小夥伴,可以看看這篇文章《VLOOKUP&LOOKUP雙雄戰(四):在橫向和逆向查詢上的血拚!》,下來再多練習,相信大家很快就能掌握!
*********
【編後語】:其實即便今天寫了這麼多內容,IF函數就真的講完了嗎?在使用IF函數的過程,是不重語法而重思路,這個函數在實際工作中用的相當普遍,基本可以和任何函數嵌套使用,所以我們的思路越寬,就會有更經典的用法呈現。
****部落窩教育-IF函數進階應用****
原創:E圖表述/部落窩教育(未經同意,請勿轉載)
更多教程:部落窩教育(www.itblw.com)
微信公眾號:exceljiaocheng