AND、OR、NOT(一):多條件判斷

更新於 2024/10/01閱讀時間約 9 分鐘

ANDORNOT 在試算表函式裡是很方便的函式。我們常用它們來做多條件判斷,搭配 IFIFS 或常用條件式格式、資料驗證這些功能,來完成比較複雜的邏輯判斷需求。

不過其實這樣的「多條件判斷」或許已經在你我的生活裡常常發生。讓我舉個情境給你聽聽!




假設我在某天上班的途中,剛好經過一間便利商店,打算買早餐來吃。我踏入便利商店後,心想:

「如果我錢包裡有 100 塊以上,且飯糰類有買一送一的活動的話,
那我就要買飯糰。」

「好欸,錢包裡還有 300 塊!」我檢查了一下自己的錢包。

再來我走到鮮食區,抬頭一看,發現今天正好有飯糰類買一送一的活動。

最後我就買了飯糰,走出便利商店,繼續趕路了。




你發現了嗎?在這則短短的故事裡,其實就有一個多條件判斷了。回顧一下:

條件 A:錢包裡的錢是否大於 100 塊
條件 B:飯糰類有無買一送一的活動
→ 如果兩個條件都成立的話,就會買飯糰

這裡的「條件 A」跟「條件 B」就是多條件,而「如果兩個條件都成立就做什麼事」就是判斷了。

如果到這邊都沒問題,我們就一起來看看 ANDORNOT 函式是什麼,還有怎麼用它們來做多條件判斷吧。我會再接著寫一篇,準備幾個練習題給大家參考!

註:在這篇教學提到的 ANDORNOT ,是指 Google 試算表的函式,不是邏輯運算子。至於這個邏輯運算子是什麼、在哪用、要怎麼用,我會另外在別的篇幅解釋。




先認識「布林值」

在切入今天的正題之前,我想提一個很簡單的概念,叫做「布林值」(Boolean)。

布林值是一種資料的類型,只會有兩種型態,TRUEFALSE

通常我們會用 TRUE 來表達「是、對、真、正確、符合條件」,用 FALSE 來表達「否、錯、假、不正確、不符合條件」。

我們先回到剛剛買飯糰的例子。記得我們這裡有兩個條件嗎?其中一個是:

條件 A:錢包裡的錢是否大於 100 塊

那麽:

  • 錢包裡的錢如果大於 100 塊,那麼就是「符合條件」,即是 TRUE
  • 錢包裡的錢如果不大於 100 塊,那麼就是「不符合條件」,即是 FALSE
條件 B:飯糰類有無買一送一的活動

那麽:

  • 飯糰類有買一送一的活動,那麼就是「符合條件」,即是 TRUE
  • 飯糰類無買一送一的活動,那麼就是「不符合條件」,即是 FALSE

所以結論來看,在我們剛剛的故事裡,因為兩個條件都有符合,所以我們得到了 TRUETRUE

好,到這邊我們已經準備足夠的知識來了解 ANDORNOT 函式了,進入正題!




AND、OR、NOT 函式

這三個函式的結果都會回傳一個布林值,也就是 TRUEFALSE

我們通常會把 ANDORNOTIFIFS 這類有條件判斷的函式搭配使用,像是這樣:

=IF(AND(...), TRUE 的狀況, FALSE 的狀況)

所以:

  • 如果這行算式的結果是 TRUEIF 就會做 TRUE 的狀況
  • 如果這行算式的結果是 FALSEIF 就會做 FALSE 的狀況

ANDORNOT 函式也常常跟條件式格式、資料驗證的自訂格式一起搭配,達到多條件判斷的效果。如果你需要複習上面的這些函式,我這邊也準備好給你囉:

IF,如果 … 那就 … 不然 …

IFS,IF 只要加個 S...?

條件式格式(二):自訂公式

資料驗證(三):自訂公式

就這麼簡單!接下來一一講解每個函式。




AND 函式:全部 TRUE 才是 TRUE

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

這邊的「條件」要寫可以回傳布林值的條件,常見的有:

  • 比較運算式:大於、小於(A1 >= 50A2 < 120
  • 等於不等於:等於、不等於(A1 = "喜特先生"A2 <> 100
  • IS 類的函式:ISNUMBERISTEXTISNULL 等(ISNUMBER(A1)ISTEXT(A2)

除了條件一是必填以外,條件二之後的條件都是選填,記得要把條件跟條件用逗號隔開。

那既然剛剛提到 AND 函式會回傳布林值,那它在什麼時候回傳 TRUE、什麼時候會回傳 FALSE 呢?答案是:

AND 裡的全部條件都是 TRUE 時,
才會回傳 TRUE
否則就回傳 FALSE

舉我們剛剛買飯糰的例子。當錢包裡的錢是否大於 100 塊、且飯糰類有買一送一的活動,那麼就會買飯糰,不然就不買。

翻譯成 IF 的算式就可以寫成這樣:

=IF(AND(錢包的錢 > 100, 飯糰類有買一送一的活動), "買飯糰", "不買飯糰")

我在便利商店的時候,發現錢包的錢的確有超過 100、且飯糰類也有買一送一的活動,也就是 AND 裡面的條件全部都是 TRUE

=IF(AND(TRUE, TRUE), "買飯糰", "不買飯糰")

那麽 AND 就會給你 TRUE 了:

=IF(TRUE, "買飯糰", "不買飯糰")

所以你就會得到「買飯糰」。


那假如我身上的錢沒有帶夠,只有 50 塊,不符合第一個條件,那就會變這樣:

=IF(AND(FALSE, TRUE), "買飯糰", "不買飯糰")

AND 裡面的條件並沒有全部都是 TRUE,所以 AND 會給你 FALSE,也就會從 IF 得到「不買飯糰」了。

=IF(FALSE, "買飯糰", "不買飯糰")
--> "不買飯糰"




OR 函式:一個 TRUE 就是 TRUE

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

OR 函式的寫法跟剛剛 AND 函式一樣,「條件」要寫可以回傳布林值的條件,然後條件一必填以外,條件二之後的條件都是選填。

那麼剛剛的 AND 是「當所有條件都滿足時,才會回傳 TRUE,否則回傳 FALSE」,那 OR 呢?

OR 裡的任一條件TRUE 時,
就會回傳 TRUE
否則回傳 FALSE

好,我們改寫一下剛剛的買飯糰故事,改成:

只要錢包的錢大於 100 塊、或是飯糰類有買一送一的活動,那就買飯糰」。

當然,如果兩個條件都有達成,那也會買飯糰。

要用函式來表達這樣的狀況,就可以把 OR 派上用場,就可以寫成這樣囉:

=IF(OR(錢包的錢 > 100, 飯糰類有買一送一的活動), "買飯糰", "不買飯糰")

那假設這時我又出現在便利商店,發現錢包的錢雖然超過 100 塊,但飯糰類沒有買一送一的活動,也就是有一個 TRUE 跟一個 FALSE

=IF(OR(TRUE, FALSE), "買飯糰", "不買飯糰")

那這時 OR 也會給你 TRUE,因為只要有一個條件滿足,OR 就會給 TRUE

=IF(TRUE, "買飯糰", "不買飯糰")

所以你還是會得到「買飯糰」。


那假如我身上的錢沒有帶夠、便利商店又沒提供買一送一的活動,那就會變這樣:

=IF(OR(FALSE, FALSE), "買飯糰", "不買飯糰")

因為 OR 裡面的條件完全沒有 TRUE,所以 OR 會給你 FALSE,也就會從 IF 得到「不買飯糰」了。

=IF(FALSE, "買飯糰", "不買飯糰")
--> "不買飯糰"




NOT 函式

=NOT(條件)

最後,是 NOT 函式。它的寫法跟剛剛的 ANDOR 不一樣,不過 NOT 很好理解,就只是把條件產生出的布林值反轉而已。一句話來概括:

TRUEFALSEFALSETRUE

示範幾個寫法:

=NOT(TRUE) --> FALSE
=NOT(FALSE) --> TRUE
=NOT(AND(TRUE, TRUE)) --> FALSE
=NOT(OR(TRUE, FALSE)) --> FALSE
=NOT(AND(TRUE, FALSE)) --> TRUE
=NOT(OR(FALSE, FALSE)) --> TRUE




大家辛苦了!到這邊統整一下,ANDORNOT 的不同:

  • AND:只有全部條件為 TRUE,那結果才會是 TRUE
  • OR:只要任一條件為 TRUE,那結果就會是 TRUE
  • NOT:把布林值反轉,TRUEFALSEFALSETRUE

下一篇會給大家實際演練,帶大家體驗看看 ANDORNOT 能達到的多條件判斷唷!請看這邊:



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

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

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

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



avatar-img
14.1K會員
148內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
喜特先生官方沙龍 的其他內容
這是你一定要學的條件式格式的關鍵用法!快點進來看看~
兩層式下拉式選單怎麼做?或許比你想像中來得簡單唷!一起來看看~
把文字分隔成不同欄還有第二招!歡迎來看看~
今天介紹 TOCOL 和 TOROW 這兩個最近新增的函式,它們的功用是可以把資料拉〜成一條,而 TOCOL 則是把資料轉成一欄、而 TOROW 是把資料轉成一列。
這次要介紹的是 IFNA 和 IFERROR 這兩個函式,它們可以幫助我們在試算表中可以靈活處理錯誤和缺失的數據。語法很單純,但也很實用!我們一起來看看怎麼做。
這是你一定要學的條件式格式的關鍵用法!快點進來看看~
兩層式下拉式選單怎麼做?或許比你想像中來得簡單唷!一起來看看~
把文字分隔成不同欄還有第二招!歡迎來看看~
今天介紹 TOCOL 和 TOROW 這兩個最近新增的函式,它們的功用是可以把資料拉〜成一條,而 TOCOL 則是把資料轉成一欄、而 TOROW 是把資料轉成一列。
這次要介紹的是 IFNA 和 IFERROR 這兩個函式,它們可以幫助我們在試算表中可以靈活處理錯誤和缺失的數據。語法很單純,但也很實用!我們一起來看看怎麼做。
本篇參與的主題活動
先前麥克買了在預算及性能方面都十分複合需求的NXTPAPER 11平板,但拿到辦公室使用後便發現因為時不時有簡報需求,主機本身不支援有線視訊輸出實在是非常不方便,因又開始尋找新歡。最終麥克選擇了算是還滿熟悉的品牌小米旗下的小米平板6,以下為麥克這一個月下來的使用心得。
從預計的十月底出貨經過重重波折,Pubu自家開發的10寸彩色閱讀器Pubook Pro終於是送到第一批集資者手中了。究竟這台閱讀器有沒有本事撼動目前的電子紙閱讀器市場?有達到集資時承諾的各項功能嗎?且讓身為首批集資者之一的麥克跟大家談談收到主機後使用數天的感想。
Steam Deck 迎來大改版,最重要的更新就是換成 OLED 螢幕。使用 OLED 螢幕帶來更好看的顏色,大小還小幅提升到 7.4 吋。關係續航力的電池也從 40 瓦小時升級到 50 瓦小時, 3A 大作都可以多玩一小時呢!這麼香的更新,怎麼不給他買下去呢 😄
先前麥克買了在預算及性能方面都十分複合需求的NXTPAPER 11平板,但拿到辦公室使用後便發現因為時不時有簡報需求,主機本身不支援有線視訊輸出實在是非常不方便,因又開始尋找新歡。最終麥克選擇了算是還滿熟悉的品牌小米旗下的小米平板6,以下為麥克這一個月下來的使用心得。
從預計的十月底出貨經過重重波折,Pubu自家開發的10寸彩色閱讀器Pubook Pro終於是送到第一批集資者手中了。究竟這台閱讀器有沒有本事撼動目前的電子紙閱讀器市場?有達到集資時承諾的各項功能嗎?且讓身為首批集資者之一的麥克跟大家談談收到主機後使用數天的感想。
Steam Deck 迎來大改版,最重要的更新就是換成 OLED 螢幕。使用 OLED 螢幕帶來更好看的顏色,大小還小幅提升到 7.4 吋。關係續航力的電池也從 40 瓦小時升級到 50 瓦小時, 3A 大作都可以多玩一小時呢!這麼香的更新,怎麼不給他買下去呢 😄
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
在程式語言裡,對應到多重選擇路徑判斷的語法, 最通俗也最常見的就是if ... else ... 語法。 今天,我們將從最基本的 若A條件成立 則...否則 ... 的 if ... else ...開始講起, 搭配幾個範例做說明,最後以一個經典的閏年判定最為結尾的Demo
Thumbnail
bool(boolean)布林值: 布林值在程式設計和演算法中扮演著至關重要的角色。它主要用於決策過程中,幫助程序根據不同的條件做出不同的處理。 在布林值中只有兩種可能的值,True(為真) 跟 False(為假),用來判斷結果。 布林值中我們使用 if 的條件語句,在我們設置一些條件的時候,
Thumbnail
本章節帶領讀者了解 Kotlin 的流程控制語法,包括條件判斷、當做三元運算子使用的 if 表達式、用來替代 switch 語句的 when 語句、用於迴圈運作的 for 和 while 語句,以及控制迴圈執行流程的語句和標籤概念。該章節目的在於讓讀者深入掌握流程控制功能,進一步提升編程技巧。
※ 條件判斷語法 決策中需要處理分歧的狀況,就會用到「if」、「else if」、「else」。 ※ 語法結構: 條件式使用小括號(),裡面放判斷式。 要執行的程式碼放在大括號{}裡。 條件式只會有 true 或 false 兩種結果。 ※ 常用的比較運算子: > 大於 < 小於
Thumbnail
「條件」非常現實,雖然還有伸縮的空間,但幅度基本上不大。 所以,如果,真的,沒辦法,一定要,用到條件的話,對於這件事就要有進一步的認知。 》條件要用條件來補齊 比如說「年薪百萬」,如果達不到這個條件,就可以用房產或名車這類物質條件來彌補,當然最相近的就是存款跟投資金額。
Thumbnail
🎗️布林邏輯 布林邏輯在EXCEL中扮演一個超級重要的角色,其實是兩個角色才對,一個叫做TRUE、一個叫做FALSE。 那TRUE跟FALSE代表什麼意思,又有什麼意義呢? TRUE英文翻譯是真,在布林邏輯上則是成立的意思 FALSE英文翻譯為假,在布林邏輯上則是不成立的意思 TRUE
Thumbnail
SUMIF是EXCEL中一個超級實用的統計函數,他可以依據指定的關鍵字進行加總。 SUMIF有條件加總 函數說明=SUMIF(條件範圍,條件,加總範圍) 但如果遇到很多個資料範圍,大多數的人就會使用很多個SUMIF計算後再相加,如下範例所示。 其實這樣多範圍的資料不需要3個SUMIF,
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
在程式語言裡,對應到多重選擇路徑判斷的語法, 最通俗也最常見的就是if ... else ... 語法。 今天,我們將從最基本的 若A條件成立 則...否則 ... 的 if ... else ...開始講起, 搭配幾個範例做說明,最後以一個經典的閏年判定最為結尾的Demo
Thumbnail
bool(boolean)布林值: 布林值在程式設計和演算法中扮演著至關重要的角色。它主要用於決策過程中,幫助程序根據不同的條件做出不同的處理。 在布林值中只有兩種可能的值,True(為真) 跟 False(為假),用來判斷結果。 布林值中我們使用 if 的條件語句,在我們設置一些條件的時候,
Thumbnail
本章節帶領讀者了解 Kotlin 的流程控制語法,包括條件判斷、當做三元運算子使用的 if 表達式、用來替代 switch 語句的 when 語句、用於迴圈運作的 for 和 while 語句,以及控制迴圈執行流程的語句和標籤概念。該章節目的在於讓讀者深入掌握流程控制功能,進一步提升編程技巧。
※ 條件判斷語法 決策中需要處理分歧的狀況,就會用到「if」、「else if」、「else」。 ※ 語法結構: 條件式使用小括號(),裡面放判斷式。 要執行的程式碼放在大括號{}裡。 條件式只會有 true 或 false 兩種結果。 ※ 常用的比較運算子: > 大於 < 小於
Thumbnail
「條件」非常現實,雖然還有伸縮的空間,但幅度基本上不大。 所以,如果,真的,沒辦法,一定要,用到條件的話,對於這件事就要有進一步的認知。 》條件要用條件來補齊 比如說「年薪百萬」,如果達不到這個條件,就可以用房產或名車這類物質條件來彌補,當然最相近的就是存款跟投資金額。
Thumbnail
🎗️布林邏輯 布林邏輯在EXCEL中扮演一個超級重要的角色,其實是兩個角色才對,一個叫做TRUE、一個叫做FALSE。 那TRUE跟FALSE代表什麼意思,又有什麼意義呢? TRUE英文翻譯是真,在布林邏輯上則是成立的意思 FALSE英文翻譯為假,在布林邏輯上則是不成立的意思 TRUE
Thumbnail
SUMIF是EXCEL中一個超級實用的統計函數,他可以依據指定的關鍵字進行加總。 SUMIF有條件加總 函數說明=SUMIF(條件範圍,條件,加總範圍) 但如果遇到很多個資料範圍,大多數的人就會使用很多個SUMIF計算後再相加,如下範例所示。 其實這樣多範圍的資料不需要3個SUMIF,
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。