19.2 常見邏輯函數

19.2.1    AND( )函數

AND函數用於判斷多個條件是否同時成立

語法:AND(logical1,[logical2]……)

參數說明:

logical1,logical2:表示1~255個要測試的條件,對於数字相來說,1、或非0等價於邏輯值TRUE,0等價於邏輯值FALSE。

如圖19‑1所示,在D2單元格中輸入公式。

=AND(B2>90,C2>90)

此公式用來判斷B2與C2單元格中的成績數值是否同時大於90,若同時滿足條件返回TRUE,若其中一個滿足或都不滿足則返回FALSE。

圖19-1 利用AND函數判斷兩門成績是否同時為優秀

19.2.2    OR( )函數

OR函數用於判斷多個條件中是否至少有一個條件成立。

語法:OR(logical1,[logical2]……)

參數說明:

logical1,logical2:表示1~255個要測試的條件,對於数字相來說,1、或非0等價於邏輯值TRUE,0等價於邏輯值FALSE。

如圖18-2所示,在E3單元格中輸入以下公式

=OR(B3>90,C3>90)

用來判斷B3與C3單元格中的成績數值是否有一個大於90,若有一個或同時都滿足條件則返回TRUE,若同時都不滿足條件則返回FALSE。

圖19-2 利用OR函數判斷兩門成績是否有一門為優秀

19.2.3    NOT( )函數

NOT函數用對邏輯值求反。

語法:NOT(logical)

參數說明:

logical:要測試的條件

例如,=NOT(5>3),返回FALSE,參數“5>3”條件成立返回TRUE,但外層用NOT函數求反,則返回FALSE。

19.2.4    IF( )函數

IF函數用於根據條件判斷的不同返回不同的結果

語法:IF(logical_test,[value_if_true],[value_if_false])

參數說明:

logical_test:要測試的值或表達式,計算的結果為TRUE或FALSE。

value_if_true:當參數logical_test的結果為TRUE時返回的值

value_if_false:當參數logical_test的結果為FALSE時返回的值

當IF函數第一參數的計算結果為TRUE或者為非0數值時,返回第二參數的值。反之,則返回第三參數的值,如果第三參數省略,將返回邏輯值FALSE。

【示例-1】如圖19‑3所示,在C2單元格中輸入以下公式。

=IF(B2>90,”優秀”,”良”)

若成績大於90,第一個參數的值為TRUE,則返回第二個參數結果為“優秀”,若成績不大於90,第一個參數的值為FALSE,則返回第三個參數結果為“良”。

圖19-3 利用IF函數評定學生成績等級

【示例-2】圖19‑4是某企業銷售員獎金髮放表。獎金髮放標準為工作年限大於10,並且員工級別為“A類”,現在E2單元格中輸入以下公式,複製到E8單元格,即可判斷其是否符合獎金髮放標準。

=IF(AND(B2>10,C2=”A類”),”是”,”否”)

此公式中首先利用AND函數,分別對B2單元格中的年限及C2單元格中的員工級別進行判斷,若同時滿足工作年限大於10和員工級別為A類,則返回邏輯值TRUE,TRUE會返回第二個參數的值“是”。否則返回邏輯值FALSE,FALSE會返回第三個參數的值“否”。

圖19-4 判斷是否符合獎金髮放標準

繼續以圖19‑4為例,現規定若工作年限大於10並且員工級別為A類,或是客戶評價為5,則符合獎金的發放標準。

E2單元格中輸入以下公式,複製到E8,即可判斷其是否符合獎金髮放標準,如圖19‑5所示。

=IF(OR(AND(B2>10,C2=”A類”),D2=5),”是”,”否”)

公式中的“OR(AND(B2>10,C2=”A類”),D2=5)”,用於構造工作年限大於10並且員工級別為A類,或是客戶評價為5的條件。如果OR參數中有一個條件滿足或是兩個條件都滿足,則返回邏輯值TRUE,即返回IF函數的第二個參數“是”,如果OR參數中兩個條件都不滿足,則返回邏輯值FALSE,即返回IF函數的第二個參數“否”。

圖19-5 多條件判斷是否符合獎金髮放標準

上述IF函數示例中,可以使用乘法替代AND函數,使用加法替代OR函數。公式可改定為:

=IF((B2>10)*(C2=”A類”),”是”,”否”)

=IF((B2>10)*(C2=”A類”)+(D2=5),”是”,”否”)

使用乘法替代AND函數時,只要有任意一個判斷條件結果為FALSE,FALSE相當於0,即所有參數的返回結果必定為0。使用加號替代OR函數時,只要有任意一個判斷條件結果為TRUE,TRUE相當於1,即所有參數的返回結果必定大於0。對於IF函數的第一參數中,非0數值的作用相當於邏輯值TRUE,0的作用相當於邏輯值FALSE,因此可以使用乘法和加法代替AND和OR函數。

发表评论

%d 博主赞过: