AND、OR、NOT(二):實際應用

更新於 發佈於 閱讀時間約 9 分鐘

接續著上次的 AND、OR、NOT(一):多條件判斷,我今天想要實際舉個簡單的例子,帶大家了解怎麼實際使用這些函式。在這之前,我們小小複習一下它們是什麼:

ANDOR 的函式語法是一樣的:

=AND(條件一, [條件二], [條件三]...)
=OR(條件一, [條件二], [條件三]...)

把要判斷的條件放在括號裡面,並用逗號隔開。而 AND 跟 OR 的差異在於:

  • AND:只有全部條件為 TRUE,那結果才會是 TRUE
  • OR:只要任一條件為 TRUE,那結果就會是 TRUE

再來就是 NOT,語法也很單純,只要把會 TRUEFALSE 或會產生布林值的函式放在括號裡面即可:

=NOT(條件)

NOT的作用則是把布林值反轉,TRUE 變 FALSEFALSE 變 TRUE

好,我們開始囉!




AND、OR

歡迎先到這邊複製練習用的試算表,一起練習!

你是在烏石港經營某背包客棧的老闆,你打算用你們客棧現有的會員卡制度,推出一波行銷活動,吸引有卡的客人再回來你這住。

你想訂的規則是:

  • 有「衝浪之友」會員卡的客人,消費金額打 9 折
  • 有「海洋之友」會員卡的客人,消費金額打 9 折
  • 有兩張卡的客人,住宿金額打 8 折
  • 兩張卡都沒有,原價

你收到這樣的訂單資訊,要來結算每個客人折扣後的金額:

raw-image

怎麼做呢?我們先檢視並統整一下:

  1. 有「衝浪之友」會員卡有「海洋之友」會員卡的客人,消費金額打 9
  2. 有「衝浪之友」會員卡有「海洋之友」會員卡的客人,消費金額打 8
  3. 兩張卡都沒有,也就是不符合以上條件的話,消費金額就是原價

第一個條件就是 AND 很好的應用方式:

AND(衝浪之友 =, 海洋之友 =)

第二個條件就是 OR 了:

OR(衝浪之友 =, 海洋之友 =)

再來可以用 IFS(多條件判斷),條列上面的兩個條件,並加上價格計算:

IFS(
AND(衝浪之友​ =, 海洋之友​ =), 原價 * 0.8,
OR(衝浪之友​ =, 海洋之友​ =), 原價 * 0.9)

最後,考量到這兩個條件如果都沒有符合,就會是第三個條件了。

因為 IFS 在沒達成條件時,會出現 #N/A 的錯誤,這時候就在外面再包一層 IFNA,處理這樣的狀況即可。(延伸閱讀: 處理錯誤的 IFNA 跟 IFERROR

IFNA(..., 原價)

所以結合起來就是:

=IFNA(
IFS(
AND(衝浪之友​ =, 海洋之友​ =), 原價 * 0.8,
OR(衝浪之友​ =, 海洋之友​ =), 原價 * 0.9),
原價)


那我們回到表格,把相對應的儲存格位址填入就好了。我們在 E2 寫上:

=IFNA(
IFS(
AND(C2 = "有", D2 = "有"), B2 * 0.8,
OR(C2 = "有", D2 = "有"), B2 * 0.9),
B2)
raw-image

按下 Enter 看看:

raw-image

以許先生的狀況來看,他的消費金額是 2500 元,有衝浪之友的會員卡、沒有海洋之友的會員卡,所以是打 9 折。那麽,他最後折扣後的金額就是:

2500 * 0.9 = 2250

看來試算表有把這個算式處理好了。我們再把它往下複製到最後一列:

raw-image

這樣就做完了!保險起見,來驗證幾筆資料,看看金額有沒有錯誤:

  • 第三列的張小姐
    消費金額 1300 元,兩張會員卡都沒有,所以是原價,1300 元,正確!
  • 第九列的陳先生
    消費金額 2700 元,兩張會員卡都有,所以打八折(2700 * 0,8),折扣後金額是 2160 元,正確!




NOT

說實在,我個人不常用 NOT,因為通常我在寫條件判斷的時候,通常是用正面的角度想,也就是:

「如果 A 發生了就是 A 狀況、如果B發生了就是 B 狀況」

而很少以反面的角度想,像是:

「如果 A 沒發生就是 A 狀況、如果 B 沒發生了就是 B 狀況」

而我會用到 NOT 的少數狀況之一,大概是「想把一大串條件反轉」的時候。舉例來說,我在今年 7 月寫了一篇 條件式格式(二):自訂公式 的教學,在文章的最後,我試著用 Google 試算表來判斷身份證字號是否正確,寫了這串東西:

=AND(
IF(LEN(A1) = 10, TRUE, FALSE),
REGEXMATCH(LEFT(A1, 1), "[A-Z]"),
IFERROR(OR(VALUE(MID(A1, 2, 1)) = 1,
VALUE(MID(A1, 2, 1)) = 2,
VALUE(MID(A1, 2, 1)) = 8,
VALUE(MID(A1, 2, 1)) = 9), FALSE),
IFERROR(IF(MOD(SUM(
SWITCH(LEFT(A1, 1),
"A", 1, "B", 10, "C", 19, "D", 28, "E", 37, "F", 46, "G", 55,
"H", 64, "I", 39, "J", 73, "K", 82, "L", 2, "M", 11, "N", 20,
"O", 48, "P", 29, "Q", 38, "R", 47, "S", 56, "T", 65, "U", 74,
"V", 83, "W", 21, "X", 3, "Y", 12, "Z", 30),
VALUE(MID(A1, 2, 1)) * 8, VALUE(MID(A1, 3, 1)) * 7,
VALUE(MID(A1, 4, 1)) * 6, VALUE(MID(A1, 5, 1)) * 5,
VALUE(MID(A1, 6, 1)) * 4, VALUE(MID(A1, 7, 1)) * 3,
VALUE(MID(A1, 8, 1)) * 2, VALUE(MID(A1, 9, 1)) * 1,
VALUE(MID(A1, 10, 1)) * 1), 10) = 0, TRUE, FALSE), FALSE)
)

簡單來說,上面這串就是以 AND 判斷身份證字號是否正確的四個條件,簡化如下:

=AND(
條件一,
條件二,
條件三,
條件四
)

如果各個條件都有符合,那麼最終結果是 TRUE,身份證字號就是正確的了。當時的狀況是如果自訂公式是 TRUE,那麼就會套用條件式格式(讓儲存格變綠、字體變粗等等)。

可是,如果我要做的是「如果身份證驗證沒通過,也就是四個條件其中有一個不符合條件,則顯示條件式格式」呢?

我們先回想一下剛剛的 AND

=AND(條件一, 條件二, 條件三, 條件四)

假設全部條件都是 TRUE,只有條件一是 FALSE,那 AND 也會回傳 FALSE

=AND(FALSE, TRUE, TRUE, TRUE)
=AND(FALSE)

因為 AND 的結果是 FALSE,這樣反而就不會出現條件式格式了。

那,只要我把這個邏輯反轉過來,給個 NOT 看看呢?像是這樣:

=NOT(AND(條件一, 條件二, 條件三, 條件四))

舉例來說,如果符合身份證字號的驗證條件都有符合:

=NOT(AND(TRUE, TRUE, TRUE, TRUE)
=NOT(AND(TRUE))
=NOT(TRUE)
=FALSE

最後就是 FALSE,那麼條件式格式不會啟動。

那如果驗證條件有一個不符合(數個不符甚至全部不符也是):

=NOT(AND(TRUE, TRUE, TRUE, FALSE)
=NOT(AND(FALSE))
=NOT(FALSE)
=TRUE

結果顯示 TRUE,條件式格式就會啟動了!這就是我其中一個 NOT 的應用例子。




如果你喜歡這次的文章,歡迎你透過這些方法支持我:

  • 按下愛心、按下儲存
  • 留言告訴我你的想法
  • 加入喜特先生的官方沙龍,即時看到我發布的教學
  • 付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
  • 追蹤喜特先生的 Facebook
  • 這邊小額贊助我的創作!

想要看更多文章,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!

我是喜特先生,Mr. Sheet,我們下個教學見!



留言
avatar-img
留言分享你的想法!
avatar-img
喜特先生官方沙龍
18.8K會員
153內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
2025/04/20
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
Thumbnail
2025/04/20
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
Thumbnail
2024/06/02
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
Thumbnail
2024/06/02
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
Thumbnail
2024/05/25
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
Thumbnail
2024/05/25
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
高中數學主題練習—和差角公式
Thumbnail
高中數學主題練習—和差角公式
Thumbnail
高中數學主題練習—和差角公式
Thumbnail
高中數學主題練習—和差角公式
Thumbnail
高中數學主題練習—算幾不等式
Thumbnail
高中數學主題練習—算幾不等式
Thumbnail
高中數學主題練習—算幾不等式
Thumbnail
高中數學主題練習—算幾不等式
Thumbnail
在用 QUERY 查詢資料時,你曾遇過在 WHERE 寫很多個 OR 的狀況嗎?有個更簡單好用的寫法推薦給你,來瞧瞧!
Thumbnail
在用 QUERY 查詢資料時,你曾遇過在 WHERE 寫很多個 OR 的狀況嗎?有個更簡單好用的寫法推薦給你,來瞧瞧!
Thumbnail
這邊統整了所有過去發表過關於 QUERY 函式的教學分享,希望可以方便你按照順序閱讀和練習。 QUERY 可以用來查詢、篩選、聚集、排序資料,還可以做張簡易的資料透視表,是我在 Google 試算表上做數據分析、製作報告、製作儀表板時最常用的函式之一,既方便又好用,誠心推薦!
Thumbnail
這邊統整了所有過去發表過關於 QUERY 函式的教學分享,希望可以方便你按照順序閱讀和練習。 QUERY 可以用來查詢、篩選、聚集、排序資料,還可以做張簡易的資料透視表,是我在 Google 試算表上做數據分析、製作報告、製作儀表板時最常用的函式之一,既方便又好用,誠心推薦!
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。
Thumbnail
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。
Thumbnail
專案項目:兩數範圍內的質數判斷 邏輯思維:當按下計算按鈕,如果兩個文字輸入盒當中,只要有一個沒有輸入數字,則判斷為真,顯示提示訊息,否則執行質數的判斷。
Thumbnail
專案項目:兩數範圍內的質數判斷 邏輯思維:當按下計算按鈕,如果兩個文字輸入盒當中,只要有一個沒有輸入數字,則判斷為真,顯示提示訊息,否則執行質數的判斷。
Thumbnail
專案項目:兩數最大公因數判斷 邏輯思維:當按下計算按鈕,如果兩個文字輸入盒當中,只要有一個沒有輸入數字,則判斷為真,顯示提示訊息,否則執行最大公因數的判斷。
Thumbnail
專案項目:兩數最大公因數判斷 邏輯思維:當按下計算按鈕,如果兩個文字輸入盒當中,只要有一個沒有輸入數字,則判斷為真,顯示提示訊息,否則執行最大公因數的判斷。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News