Chapter 6. 函式 (一):邏輯與運算6.3 邏輯運算子

6.3 邏輯運算子


OR / AND / NOT 三個函式的回傳值都是布林值,公式的語法如下:

語法

  • OR / AND (邏輯運算式_1, [邏輯運算式_2,...])
  • NOT (邏輯運算式)

輸入

邏輯運算式_n:即輸出是 TRUE / FALSE 的項目,通常是公式。

輸出

TRUE / FALSE,其輸出的原則如下圖所示:

以下使用三個範例簡單說明以上三個函式的用法:

  1. 甲至少有一科超過 60 分

    公式

    =OR(B2>60,C2>60,D2>60)

    解說

    OR 的輸入共包含三項,分別為三個科目是否超過 60 分,在此結果為 =OR(TRUE,TRUE,TRUE),因此結果為 TRUE。

  2. 甲三科都超過 60 分

    公式

    =AND(B2>60,C2>60,D2>60)

    解說

    AND 的輸入共包含三項,分別為三個科目是否超過 60 分,在此結果為 =AND(TRUE,TRUE,TRUE),因此結果為 TRUE。

  3. 甲的國文沒有超過 60 分

    公式

    =NOT(B2>60)

    解說

    因為 B2>60 為 TRUE,所以 =NOT(TRUE) 的結果為 FALSE。

上述範例的介紹應該能了解三個函式的邏輯。然而要判斷邏輯運算子有另一種方式,就是使用第 6.1 節所說的將 TRUE / FALSE 作為數字 1/0 進行運算,雖然公式比較不直觀但較有彈性,接下來提供三個較複雜的範例,先比較兩種方式的差異,再示範如何使用新的方式進行邏輯運算子的各種運算:


  1. 丙或丁三科都超過 60 分

    公式

    方法一:使用 OR + AND 完成
    =OR(AND(B4>60,C4>60,D4>60),AND(B5>60,C5>60,D5>60))

    方法二:使用 TRUE / FALSE 的加減完成
    =(((B4>60)+(C4>60)+(D4>60)=3)+((B5>60)+(C5>60)+(D5>60)=3))>=1

    解說

    方法一:使用 AND + OR 完成

    1. 外層 OR:即 =OR(丙三科都超過 60 分,丁三科都超過 60 分)。
    2. 內層 AND:丙三科都超過 60 分為 AND(B4>60,C4>60,D4>60)」、丁三科都超過 60 分為 AND(B5>60,C5>60,D5>60)。

    方法二:使用 TRUE / FALSE 的加減完成

    1. 外層:即 (丙三科都超過 60 分)+(丁三科都超過 60 分)>=1,因為只要任一個學生三科都超過 60 分,就會是 TRUE,兩者相加必會 >=1,反之若兩個學生都不符合就會是 FALSE,此時 FALSE+FALSE=0。
    2. 內層:丙三科都超過 60 分為 (B4>60)+(C4>60)+(D4>60)=3、丁三科都超過 60 分為 (B5>60)+(C5>60)+(D5>60)=3)。

    綜合兩種方式,方法一比較直觀且好理解。

  2. 丙有兩科以上 (含) 超過 60 分

    公式

    =(B3>60)+(C3>60)+(D3>60)>=2

    解說

    在此雖然也可以使用 AND + OR 完成,但過程會非常複雜,反之若使用 TRUE / FALSE 加減完成較為方便。

  3. 將兩科以上 (含) 未達 60 分的學生整列 (A:D 欄) 填滿顏色設定為「淺紅色 3」

    結果

    公式

    套用範圍「A1:D9」,自訂公式「=($B1<60)+($C1<60)+($D1<60)>=2」。

    解說

    1. 套用範圍:因為要整列變更底色,因此設為 A1:D9。
    2. 格式規則:使用「自訂公式:=($B1<60)+($C1<60)+($D1<60)>=2」,其中所有欄位都使用絕對參照,才能加到每個學生三個科目的分數。
    3. 格式設定樣式:填滿顏色設定為「淺紅色 3」。