- 數(shù)據(jù)分析從入門到進(jìn)階
- 陳紅波 劉順祥等
- 3002字
- 2019-11-12 14:04:00
2.2.4 經(jīng)典的邏輯判斷函數(shù)
邏輯判斷函數(shù)是指進(jìn)行真假值判斷,或者進(jìn)行復(fù)合檢驗(yàn)的一類邏輯函數(shù)。常見的邏輯判斷函數(shù)包括AND、OR、NOT、IF、IFERROR、IS系列(包括ISERROR、ISTEXT、ISNUMBER等)。IF函數(shù)經(jīng)常用于多個(gè)條件的嵌套判斷,例如,根據(jù)銷售人員的業(yè)績范圍判斷銷售提成系數(shù)。此外,AND、OR函數(shù)可以用來對多個(gè)條件進(jìn)行檢查判斷,例如,銷售員小李同時(shí)滿足業(yè)績達(dá)到20萬元和成交件數(shù)達(dá)到3單就可以晉升,此時(shí)可以用IF函數(shù)結(jié)合AND函數(shù)進(jìn)行邏輯判斷。下面通過實(shí)例對常用的邏輯判斷函數(shù)進(jìn)行說明。
1.AND函數(shù)
功能說明:檢查是否所有的參數(shù)均為TRUE,如果所有的參數(shù)值均為TRUE,則返回TRUE。
語法:AND(logical1,[logical2], …)
參數(shù):
● logical1必須。邏輯表達(dá)式1。
● [logical2], … 可選。邏輯表達(dá)式2等。
示例:區(qū)域A2:A5是邏輯判斷的公式,區(qū)域B2:B5是公式的結(jié)果。
公式與步驟:
● 示例一:單元格B2內(nèi)輸入公式“=AND(1>2,2>1)”。
● 示例二:單元格B3內(nèi)輸入公式“=AND(2>1,1)”。
● 示例三:單元格B4內(nèi)輸入公式“=AND(-1,1)”。
● 示例四:單元格B5內(nèi)輸入公式“=AND(1,0,2)”,結(jié)果如圖2-64所示。

圖2-64 AND函數(shù)
提示:
● 數(shù)值0作為參數(shù)的邏輯值被當(dāng)成FALSE使用。
● 非0數(shù)值作為參數(shù)的邏輯值被當(dāng)成TRUE使用。
● 任意一個(gè)參數(shù)的邏輯值出現(xiàn)FALSE(或者數(shù)值0)的時(shí)候,結(jié)果返回FALSE。
● 所有的參數(shù)的邏輯值都是TRUE的時(shí)候,結(jié)果返回TRUE。
2.OR函數(shù)
功能說明:如果任意參數(shù)為TRUE,即返回TRUE;只有當(dāng)所有的參數(shù)值均為FALSE時(shí)才返回FALSE。
語法:OR(logical1,[logical2], …)
參數(shù):
● logical1必須。邏輯表達(dá)式1。
● [logical2], … 可選。邏輯表達(dá)式2等。
示例:
區(qū)域A2:A5是邏輯判斷的公式,區(qū)域B2:B5是公式的結(jié)果。
公式與步驟:
● 示例一:單元格B2內(nèi)輸入公式“=OR(1>2,2>1)”。
● 示例二:單元格B3內(nèi)輸入公式“=OR(2>1,1)”。
● 示例三:單元格B4內(nèi)輸入公式“=OR(-1,1)”。
● 示例四:單元格B5內(nèi)輸入公式“=OR(FALSE,0)”,結(jié)果如圖2-65所示。

圖2-65 OR函數(shù)
提示:
● 任意一個(gè)參數(shù)的邏輯值出現(xiàn)TRUE(或者非0數(shù)值)的時(shí)候,結(jié)果返回TRUE。
● 所有的參數(shù)的邏輯值均為FALSE的時(shí)候,結(jié)果返回FALSE。
3.NOT函數(shù)
功能說明:對參數(shù)的邏輯值求反:參數(shù)為TRUE時(shí)返回FALSE,參數(shù)為FALSE時(shí)返回TRUE。
語法:NOT(logical)
參數(shù):logical必須。邏輯表達(dá)式。
示例:區(qū)域A2:A5是邏輯判斷的公式,區(qū)域B2:B5是公式的結(jié)果。
公式與步驟:
● 示例一:單元格B2內(nèi)輸入公式“=NOT(TRUE)”。
● 示例二:單元格B3內(nèi)輸入公式“=NOT(FALSE)”。
● 示例三:單元格B4內(nèi)輸入公式“=NOT(1>2)”。
● 示例四:單元格B5內(nèi)輸入公式“=NOT(2+2=4)”,結(jié)果如圖2-66所示。

圖2-66 NOT函數(shù)
4.IF函數(shù)
功能說明:判斷是否滿足某個(gè)條件,如果滿足返回一個(gè)值,如果不滿足則返回另外一個(gè)值。
語法:IF(logical_test,[value_if_true],[value_if_false])
參數(shù):
● logical_test必須。可以為數(shù)值或邏輯表達(dá)式。
● value_if_true可選。當(dāng)logical_test為TRUE時(shí)返回的結(jié)果。
● value_if_false可選。當(dāng)logical_test為FALSE時(shí)返回的結(jié)果。
示例:以某學(xué)校的學(xué)生信息成績表為例,數(shù)據(jù)如表2-5所示。字段包括班級、姓名、性別、成績,數(shù)據(jù)位于區(qū)域A1:D8。要求根據(jù)成績score判斷得分等級,score小于60分的判定為不及格,score大于等于60分且小于85分判定為及格,score大于等于85分判定為優(yōu)秀。
表2-5 學(xué)生信息成績表

公式與步驟:
● 方法一:單元格E3內(nèi)輸入公式“=IF(D3<60,"不及格",IF(D3<85,"及格","優(yōu)秀"))”,然后向下拖拽復(fù)制公式。
● 方法二:單元格F3內(nèi)輸入公式“=IF(D3>=85,"優(yōu)秀",IF(D3>=60,"及格","不及格"))”,然后向下拖拽復(fù)制公式,結(jié)果如圖2-67所示。

圖2-67 IF函數(shù)
提示:IF函數(shù)可以進(jìn)行多層嵌套判斷,如果是需要滿足多個(gè)條件進(jìn)行判斷,可以嵌套AND函數(shù)作為logical_test的參數(shù)。
5.IFERROR函數(shù)
功能說明:如果表達(dá)式是一個(gè)錯(cuò)誤,則返回value_if_error,否則返回表達(dá)式自身的值。
語法:IFERROR(value,value_if_error)
參數(shù):
● value必需。檢查是否存在錯(cuò)誤的參數(shù)。
● value_if_error必需。公式的計(jì)算結(jié)果錯(cuò)誤時(shí)返回的值。
示例一 將錯(cuò)誤值處理成0:以某企業(yè)的產(chǎn)品銷售表為例,數(shù)據(jù)如表2-6所示。字段包括產(chǎn)品類型、銷售額。數(shù)據(jù)位于區(qū)域A1:B5。要求將區(qū)域B2:B5的錯(cuò)誤值處理成0。
表2-6 產(chǎn)品銷售表

公式與步驟:單元格F2內(nèi)輸入公式“=IFERROR (B2,0)”,然后向下拖拽復(fù)制公式,結(jié)果如圖2-68所示。

圖2-68 IFERROR函數(shù)—示例一
示例二 統(tǒng)計(jì)所有產(chǎn)品銷售額之和:以某企業(yè)的產(chǎn)品銷售表為例,數(shù)據(jù)如表2-6所示。字段包括產(chǎn)品類型、銷售額。數(shù)據(jù)位于區(qū)域A1:B5。要求對區(qū)域B2:B5的銷售額進(jìn)行求和計(jì)算。
公式與步驟:
● 方法一:單元格F2內(nèi)輸入數(shù)組公式“{=SUM(IFERROR(B2:B5,0))}”。
● 方法二:單元格F3內(nèi)輸入公式“=SUMIF(B2:B5,"<9e307")”,結(jié)果如圖2-69所示。

圖2-69 IFERROR函數(shù)—示例二
提示:
● 方法一是用IFERROR函數(shù)將所有錯(cuò)誤值處理成0,然后用SUM函數(shù)進(jìn)行數(shù)組求和。
● 方法二的SUMIF函數(shù)省略了求和區(qū)域的參數(shù),以條件區(qū)域B2:B5作為求和區(qū)域,求和條件是"<9e307",剔除錯(cuò)誤值,對其余數(shù)值求和。
6.ISERROR函數(shù)
功能說明:檢查一個(gè)值是否為錯(cuò)誤(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL!),結(jié)果返回TRUE或FALSE。
語法:ISERROR(value)
參數(shù):value必需。判斷是否為錯(cuò)誤值的參數(shù)。
示例一 判斷數(shù)值是否為錯(cuò)誤值:以某店鋪的商品銷售表為例,數(shù)據(jù)如表2-7所示。字段包括商品名稱、銷量。數(shù)據(jù)位于區(qū)域A1:B6。要求判斷B2:B6區(qū)域數(shù)據(jù)是否為錯(cuò)誤值,如果是錯(cuò)誤值用1表示,否則用0表示。
表2-7 商品銷售表

公式與步驟:單元格F2內(nèi)輸入公式“=IF (ISERROR (B2),1,0)”,向下拖拽復(fù)制公式,結(jié)果如圖2-70所示。

圖2-70 ISERROR函數(shù)—示例一
示例二 統(tǒng)計(jì)錯(cuò)誤值的個(gè)數(shù):以某店鋪的商品銷售表為例,數(shù)據(jù)如表2-7所示。字段包括商品名稱、銷量。數(shù)據(jù)位于區(qū)域A1:B6。要求統(tǒng)計(jì)區(qū)域B2:B6中錯(cuò)誤值的個(gè)數(shù)。
公式:
● 方法一:單元格F2內(nèi)輸入數(shù)組公式“{=SUM(ISERROR(B2:B6)+0)}”。
● 方法二:單元格F3內(nèi)輸入數(shù)組公式“{=SUM(ISERROR(B2:B6)*1)}”。
● 方法三:單元格F4內(nèi)輸入公式“=SUMPRODUCT(ISERROR(B2:B6)+0)”。
● 方法四:單元格F5內(nèi)輸入公式“=SUMPRODUCT(ISERROR(B2:B6)*1)”,結(jié)果如圖2-71所示。

圖2-71 ISERROR函數(shù)—示例二
提示:
● 方法一和方法二是利用ISERROR函數(shù)對區(qū)域B2:B6中的數(shù)據(jù)進(jìn)行判斷,返回一個(gè)布爾值數(shù)組,然后通過加數(shù)值0或乘以數(shù)值1的方法,將布爾值數(shù)組轉(zhuǎn)換為數(shù)值0和數(shù)值1組成的數(shù)組,最后按〈Ctrl+Shift+Enter〉組合鍵生成統(tǒng)計(jì)結(jié)果。
● 方法三和方法四是也是利用ISERROR函數(shù)對區(qū)域B2:B6中的數(shù)據(jù)進(jìn)行判斷,返回一個(gè)布爾值數(shù)組,然后通過加數(shù)值0或乘以數(shù)值1的方法,將布爾值數(shù)組轉(zhuǎn)換為數(shù)值0和數(shù)值1組成的數(shù)組,最后用SUMPRODUCT函數(shù)對數(shù)組進(jìn)行交叉乘積求和。
7.ISTEXT函數(shù)
功能說明:檢查一個(gè)值是否為文本,返回TRUE或FALSE。
語法:ISTEXT(value)
參數(shù):value必需。要判斷測試的值。
示例:判斷區(qū)域A2:A4中的數(shù)值是否為文本。
公式與步驟:單元格E2內(nèi)輸入公式“=ISTEXT(A2)”,然后向下拖拽復(fù)制公式,結(jié)果如圖2-72所示。

圖2-72 ISTEXT函數(shù)
8.ISNUMBER函數(shù)
功能說明:檢查一個(gè)值是否為數(shù)值,返回TRUE或FALSE。
語法:ISNUMBER(value)
參數(shù):value必需。要判斷測試的值。
示例:判斷區(qū)域A2:A4中的數(shù)值是否為數(shù)值。
公式與步驟:單元格E2內(nèi)輸入公式“=ISNUMBER(A2)”,然后向下拖拽復(fù)制公式,結(jié)果如圖2-73所示。

圖2-73 ISNUMBER函數(shù)
以上是對邏輯判斷函數(shù)的簡單介紹,并采用示例對函數(shù)進(jìn)行了功能講解,下面的邏輯判斷函數(shù)案例一~案例二是邏輯判斷函數(shù)的應(yīng)用擴(kuò)展。
9.邏輯判斷函數(shù)案例一
案例說明:一般企業(yè)對于銷售人員的轉(zhuǎn)正晉升都有相當(dāng)嚴(yán)格的考核。以某企業(yè)的銷售業(yè)績考核標(biāo)準(zhǔn)為例,銷售人員如果達(dá)到企業(yè)制定的標(biāo)準(zhǔn)就可以實(shí)現(xiàn)轉(zhuǎn)正或晉升,銷售業(yè)績考核標(biāo)準(zhǔn)如表2-8所示。
表2-8 業(yè)績考核標(biāo)準(zhǔn)

公式與步驟:單元格E2內(nèi)輸入公式“=IF(AND(B2<=2,D2>=5),"轉(zhuǎn)正",IF(AND(B2>2, D2>=10),"晉升",""))”,然后向下拖拽復(fù)制公式,結(jié)果如圖2-74所示。

圖2-74 邏輯判斷函數(shù)案例一
提示:利用AND函數(shù)判斷入職時(shí)長和業(yè)績是否同時(shí)滿足考核標(biāo)準(zhǔn),如果兩個(gè)條件同時(shí)滿足可以實(shí)現(xiàn)轉(zhuǎn)正、晉升,否則結(jié)果返回空。
10.邏輯判斷函數(shù)案例二
案例說明:以不同學(xué)生的考試成績表為例,有些同學(xué)缺考了部分科目,標(biāo)注的是“缺考”。要求統(tǒng)計(jì)不同學(xué)生參加的考試科目數(shù)以及缺考的科目數(shù)。
公式與步驟:
1)單元格F2內(nèi)輸入數(shù)組公式:{=SUM(ISNUMBER(B2:E2)*1)},然后向下拖拽復(fù)制公式。
2)單元格G2內(nèi)輸入數(shù)組公式:{=SUM(ISTEXT(B2:E2)*1)},然后向下拖拽復(fù)制公式,結(jié)果如圖2-75所示。

圖2-75 邏輯判斷函數(shù)案例二
提示:利用ISNUMBER或ISTEXT函數(shù)對區(qū)域進(jìn)行判斷生成布爾值數(shù)組,然后乘以數(shù)值1生成數(shù)值數(shù)組,最后按〈Ctrl+Shift+Enter〉組合鍵創(chuàng)建數(shù)組公式。
- Spring 5.0 Microservices(Second Edition)
- PyQt從入門到精通
- Python GUI Programming Cookbook
- C語言程序設(shè)計(jì)案例式教程
- 琢石成器:Windows環(huán)境下32位匯編語言程序設(shè)計(jì)
- PhoneGap:Beginner's Guide(Third Edition)
- Protocol-Oriented Programming with Swift
- SQL Server數(shù)據(jù)庫管理與開發(fā)兵書
- Swift 4 Protocol-Oriented Programming(Third Edition)
- Mastering Concurrency Programming with Java 9(Second Edition)
- Java EE Web應(yīng)用開發(fā)基礎(chǔ)
- 玩轉(zhuǎn).NET Micro Framework移植:基于STM32F10x處理器
- Web程序設(shè)計(jì):ASP.NET(第2版)
- LabVIEW數(shù)據(jù)采集
- ROS機(jī)器人編程實(shí)戰(zhàn)