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

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

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

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

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

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

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

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

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

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

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

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

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

圖2-73 ISNUMBER函數
以上是對邏輯判斷函數的簡單介紹,并采用示例對函數進行了功能講解,下面的邏輯判斷函數案例一~案例二是邏輯判斷函數的應用擴展。
9.邏輯判斷函數案例一
案例說明:一般企業對于銷售人員的轉正晉升都有相當嚴格的考核。以某企業的銷售業績考核標準為例,銷售人員如果達到企業制定的標準就可以實現轉正或晉升,銷售業績考核標準如表2-8所示。
表2-8 業績考核標準

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

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

圖2-75 邏輯判斷函數案例二
提示:利用ISNUMBER或ISTEXT函數對區域進行判斷生成布爾值數組,然后乘以數值1生成數值數組,最后按〈Ctrl+Shift+Enter〉組合鍵創建數組公式。
- Boost.Asio C++ Network Programming(Second Edition)
- Google Flutter Mobile Development Quick Start Guide
- FuelPHP Application Development Blueprints
- 軟件項目估算
- Learning Selenium Testing Tools with Python
- 我的第一本算法書
- Visual Basic程序設計實驗指導(第4版)
- 用Flutter極速構建原生應用
- INSTANT OpenNMS Starter
- 自制編程語言
- C#程序設計(項目教學版)
- Spring Boot+MVC實戰指南
- GameMaker Essentials
- 人人都能開發RPA機器人:UiPath從入門到實戰
- SQL Server實例教程(2008版)