下面我們將介紹IF函數(shù)。這是在公式中經(jīng)常要使用的一個(gè)函數(shù),為公式提供判斷功能。
IF函數(shù)判斷是否滿足某個(gè)條件,如果滿足返回一個(gè)值,如果不滿足則返回另一個(gè)值。
什么情況下使用IF函數(shù)?
IF函數(shù)可以根據(jù)判斷的情況,返回不同的值。因此,它能夠:
標(biāo)記滿足特定條件的數(shù)據(jù)
避免除數(shù)為0
計(jì)算所得稅
根據(jù)多個(gè)條件確定考核等級
作為條件格式的條件
只對正值求和
統(tǒng)計(jì)指定數(shù)據(jù)出現(xiàn)的次數(shù)
獲取指定數(shù)據(jù)出現(xiàn)的位置
IF函數(shù)語法
IF函數(shù)帶有三個(gè)參數(shù),其語法如下:
IF(logical_test,value_if_true,value_if_false)
logical_test: 任何可能被計(jì)算為TRUE或FALSE的數(shù)值或表達(dá)式。
value_if_true: 測試為TRUE時(shí)的返回值,可以是嵌套的IF函數(shù)或表達(dá)式??墒÷?。
value_if_false: 測試為FALSE時(shí)的返回值,可以是嵌套的IF函數(shù)或表達(dá)式。可省略。
IF函數(shù)陷阱
使用IF函數(shù)時(shí),要確保在判斷條件為TRUE或FALSE時(shí)放置正確的值,不能將判斷為TRUE的值放置到第3個(gè)參數(shù),或者將判斷為FALSE的值放置到第2個(gè)參數(shù),這是Excel不能解決的。
IF函數(shù)可以嵌套使用,但過多的嵌套會(huì)使邏輯關(guān)系難以理解,也容易出錯(cuò)。因此,如果公式需要嵌套很多層,最后將公式拆分或者尋找其他更簡化的方法。
示例1: 標(biāo)記滿足特定條件的數(shù)據(jù)
假如有一系列反映產(chǎn)品銷量增長情況的數(shù)據(jù),需要標(biāo)識(shí)出銷量下滑的數(shù)據(jù)并直觀地反映下滑的程度,例如下圖所示的工作表,我們使用“↓”來標(biāo)識(shí)銷量下滑的產(chǎn)品,并且“↓”越多銷量下滑越嚴(yán)重。
在單元格C2中的公式為:
=IF(B2<0,REPT(“↓“,B2*-100),””)
因?yàn)锽2中的值大于0,所以B2<0為FALSE,結(jié)果返回空。將公式下拉至最后一個(gè)數(shù)據(jù)單元格,結(jié)果如下圖所示。
示例2: 避免除數(shù)為0
在Excel中,如果試圖除以0,那么公式將返回#DIV/0!錯(cuò)誤。此時(shí),可以使用IF函數(shù)來檢查除數(shù),以確保在表達(dá)式中參與計(jì)算的數(shù)不為0。本示例中,毛利潤的計(jì)算公式為:(銷售額-成本)/成本,如果成本為0,那么會(huì)返回錯(cuò)誤。為避免除數(shù)為0,在單元格C2中的公式為:
=IF(B2<>0,(A2-B2)/B2,”成本為零“)
如果B2的值不為0,則使用公式進(jìn)行計(jì)算,否則顯示“成本為零”。將公式下拉至其他單元格,結(jié)果如下圖所示。
示例3: 計(jì)算所得稅
在本例中,判斷收入值,根據(jù)不同的稅率計(jì)算所得稅。
若收入小于3000,則不交稅
若超過3000但小于5000,則稅率為5%
若超過5000但小于8000,則稅率為7%
若超過8000,則稅率為10%
在單元格B2中的公式是:
=IF(A2>3000,IF(A2>5000,IF(A2>8000,A2*10%,A2*7%),A2*5%),A2)
也可以使用下面的公式:
=IF(A2<3000,A2,IF(A2<5000,A2*5%,IF(A2<8000,A2*7%,A2*10%)))
示例4: 根據(jù)多個(gè)條件確定考核等級
可以將多個(gè)條件聯(lián)合起來作為IF函數(shù)的測試條件。本例中,只有考核分?jǐn)?shù)大于85且出勤天數(shù)大于100天的員工的考核等級才是“A”。在單元格E2中的公式為:
=IF(AND(C2>85,D2>100),”A”,””)
使用AND函數(shù)聯(lián)合兩個(gè)條件的結(jié)果。
示例5: 作為條件格式的條件
本例中,當(dāng)溫度值大于報(bào)警值,并且溫度值小于10度時(shí),給測點(diǎn)標(biāo)識(shí)紅色。在條件格式規(guī)則中的公式為:
=IF(AND(B2<C2,C2<10),TRUE,FALSE)
注:實(shí)際上公式可以簡化為= AND(B2<C2,C2<10)。
示例6: 只對正值求和
如果要求只計(jì)算正數(shù),那么可以使用數(shù)組公式:
=SUM(IF(A1:A7>0,A1:A7,0))
公式中的IF函數(shù)返回一組只包括正值和0的數(shù),而SUM函數(shù)將這組數(shù)相加。
示例7: 統(tǒng)計(jì)指定數(shù)據(jù)出現(xiàn)的次數(shù)
可以使用帶IF函數(shù)的數(shù)組公式統(tǒng)計(jì)指定數(shù)據(jù)在某區(qū)域中出現(xiàn)的次數(shù)。下圖所示的工作表中“張三”在單元格區(qū)域A2:A7中出現(xiàn)的次數(shù),使用的數(shù)組公式為:
=SUM(IF(B1=A2:A7,1,0))
將單元格B1中的值與單元格A2:A7中的值比較,如果相同,則返回1,否則返回0,SUM函數(shù)將返回的值相加,得到B1中的值在A2:A7中出現(xiàn)的次數(shù)。
示例8: 獲取指定數(shù)據(jù)出現(xiàn)的位置
有時(shí)候,想要獲取指定數(shù)據(jù)在區(qū)域中最后一次出現(xiàn)的位置。例如,在下圖所示的工作表中,獲取單元格B1中的值在單元格區(qū)域A2:A7中最后一次出現(xiàn)的位置,可以使用數(shù)組公式:
=ADDRESS(MAX(IF(B1=A2:A7,ROW(A2:A7),””)),COLUMN(A2:A7))
IF函數(shù)生成B1的值在A2:A7中行位置值的數(shù)組,MAX函數(shù)返回最大值,即最后一次出現(xiàn)的行位置,ADDRESS函數(shù)根據(jù)行列號(hào)返回絕對地址。
注:數(shù)組公式要按Ctrl+Shift+Enter組合鍵完成輸入,Excel會(huì)在公式兩側(cè)自動(dòng)添加一對花括號(hào)。