SWITCH,多條件判斷還有這一手!

閱讀時間約 6 分鐘
之前提過 IF 跟 IFS 這兩個可以做條件判斷的函式,但你知道其實條件判斷還有一手!今天要介紹的叫 SWITCH 函式,它跟 IF、IFS 一樣,可以做多條件的判斷,且可以在沒有相符結果時,傳回你指定的預設值。(延伸閱讀:IF,如果 … 那就 … 不然 …IFS,IF 只要加個 S...?
好好的 IF 跟 IFS 不用,為什麼要用 SWITCH?因為優點有這幾個:
  • 函式比較好讀
  • 函式結構簡單,比較彈性、能輕鬆管理
  • 能一次套用在大範圍上,有 ArrayFormula 的效果
  • 如果有條件不符合的狀況,可設定預設值
SWITCH 當然也有最大的缺點:不能處理邏輯運算,所以大於、小於、AND、OR 等等的都不行,這時還是得用 IF 或IFS。
馬上來看看 SWITCH 怎麼寫吧!

語法說明

=SWITCH(判斷範圍, 關鍵字 1, 結果 1, [關鍵字 2, 結果 2, ...], [預設值])
  • 判斷範圍:你要做條件判斷的範圍
  • 關鍵字 1、結果 1:在判斷範圍裡中讓試算表判斷的關鍵字、和要相對應回傳的結果,這兩個參數要成雙成對的出現。舉例來說:
關鍵字是「apple」→ 回傳「蘋果」
關鍵字是「video」→ 回傳「影片」
"Mr. Sheet" → "喜特先生"
  • 關鍵字 2、結果 2:選填,開始指定第二組關鍵字與結果。你可以再繼續往後指定第三組、第四組、第N組關鍵字與結果。
  • 預設值:選填,如果判斷範圍裡面裡都沒有關鍵字,就回傳這個值。你可以寫「無相符值」、「N/A」、「找不到」等等的。
來實際看看怎麼做吧!

範例

假設我們有N位同學參加了全校教室清潔錦標賽的小組賽,這是他們的評分。歡迎複製這個試算表一起跟著做!
我們想讓評分是「優」跟「甲」的同學晉級決賽,其他的話就列為淘汰。
怎麼寫呢?我們要給 SWITCH 判斷的欄位是 B 欄的「評分」,再來就是給 SWITCH 關鍵字,告訴它遇到不同關鍵字的時候該怎麼處理。
用 SWITCH 寫的話,就是:
=SWITCH(B2:B, "優", "入選", "甲", "入選", "乙", "淘汰", "丙", "淘汰", "丁", "淘汰")
在寫這種長函式的時候,你還可以搭配 Ctrl/Command+Enter 斷行,讓它更好讀一點:
=SWITCH(B2:B, "優", "入選", "甲", "入選",
"乙", "淘汰", "丙", "淘汰", "丁", "淘汰")
痛快按下 Enter,這樣就做完了!
按 Enter 後會發現,SWITCH 會把整個名單都判斷完,你就不需要一個個複製函式到下面的儲存格了。

換個方法想

如果你覺得上面的語法好像還是太長了,你也可以這樣想:因為我們最終要的只有「入選」與「淘汰」兩種,換句話說只要 SWITCH 在判斷完入選的「優」和「甲」之後,如果沒有關鍵值,就讓它回傳預設值「淘汰」就好了。
也就是:
=SWITCH(B2:B, "優", "入選", "甲", "入選", "淘汰")
SWITCH 會把「優:入選」、「甲:入選」配成一對,而最後的「淘汰」因為沒有其他配對,就會被 SWITCH 視為預設值。你把這段貼過去的話,會發現結果一模一樣唷!

跟 IF 和 IFS 比較

這是用 IF 的寫法,給你參考:
=ArrayFormula(
 IF(B2:B = "優", "入選", 
 IF(B2:B = "甲", "入選", "淘汰"))
)
這是我用 IFS 的寫法:
=ArrayFormula(
 IFNA(
  IFS(B2:B = "優", "入選", B2:B = "甲", "入選"), "淘汰")
)
跟剛剛的 SWITCH 相比:
=SWITCH(B2:B, "優", "入選", "甲", "入選", "淘汰")
你會發現不管是用 IF 還是 IFS,要寫的部分變多了,而且要指定 B2:B 兩次。SWITCH 相對優雅,之後如果要再更改也比較容易。
所以就結論來看:
  • 如果你只要透過直接的配對得到結果(A = 1、B = 2、C = 3 等等),用 SWITCH。
  • 如果你想用邏輯判斷,用 IF 或 IFS 吧!

說個跟教學無關的題外話,最近追蹤人數要破百、瀏覽量也快破十萬了。如果你覺得這篇文章、這個專題有幫助,歡迎你多多轉發、把我的內容分享給更多人知道,先謝謝你了!
如果你喜歡這次的文章,歡迎你透過這些方法支持我:
・按下愛心、按下儲存
・留言告訴我你的想法
・加入喜特先生的官方沙龍,即時看到我發布的教學
・付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
・追蹤喜特先生的 Facebook
・按這邊小額贊助我的創作!
想要看更多文章,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!
我是喜特先生,Mr. Sheet,我們下個教學見!
avatar-img
14.2K會員
148內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
喜特先生官方沙龍 的其他內容
這次要介紹的兩個叫做 VSTACK 跟 HSTACK,可以讓你把範圍縱向或橫向堆疊起來,省去合併資料的一點麻煩!
2023 到了,今年有什麼新規劃嗎?或是有什麼重要的日子值得倒數一下呢?我們可以在試算表用三個方法,計算兩個日期的相差天數,當然計算倒數日也可以。一起來看看吧!
終於要來完成資料驗證系列文的最後一塊拼圖,核取方塊了! 核取方塊能做的應用有很多,在這邊我會分享兩個,歡迎大家來看看~
在資料驗證(三):自訂公式的教學,我寫了一串可以驗證身分證字號的公式: 如果 A1 是正確的身分證字號格式就會是 TRUE、錯誤的話則是 FALSE。 我會在這篇文稍稍解釋一下上面這串是怎麼做的,也歡迎大家在文章下方留言,告訴我你的看法、或是有更好的建議也可以跟我說說!
上兩週我們介紹了資料驗證是什麼,要怎麼利用它來製作下拉式選單、驗證使用者是否輸入特定的文字、日期和數字,還有當輸入不符合驗證規則的時候、試算表會怎麼樣提醒使用者的設定方式。那麼,這次我們要來接著介紹怎麼用「自訂公式」來設定資料驗證。
今天要簡單介紹三款簡便的函式:UPPER、LOWER 跟 PROPER,讓你簡單轉換字母大小寫,非常簡單、好寫,可以套用在使用大小寫字母的語言上(拉丁字母、希臘字母、西里爾字母等)!
這次要介紹的兩個叫做 VSTACK 跟 HSTACK,可以讓你把範圍縱向或橫向堆疊起來,省去合併資料的一點麻煩!
2023 到了,今年有什麼新規劃嗎?或是有什麼重要的日子值得倒數一下呢?我們可以在試算表用三個方法,計算兩個日期的相差天數,當然計算倒數日也可以。一起來看看吧!
終於要來完成資料驗證系列文的最後一塊拼圖,核取方塊了! 核取方塊能做的應用有很多,在這邊我會分享兩個,歡迎大家來看看~
在資料驗證(三):自訂公式的教學,我寫了一串可以驗證身分證字號的公式: 如果 A1 是正確的身分證字號格式就會是 TRUE、錯誤的話則是 FALSE。 我會在這篇文稍稍解釋一下上面這串是怎麼做的,也歡迎大家在文章下方留言,告訴我你的看法、或是有更好的建議也可以跟我說說!
上兩週我們介紹了資料驗證是什麼,要怎麼利用它來製作下拉式選單、驗證使用者是否輸入特定的文字、日期和數字,還有當輸入不符合驗證規則的時候、試算表會怎麼樣提醒使用者的設定方式。那麼,這次我們要來接著介紹怎麼用「自訂公式」來設定資料驗證。
今天要簡單介紹三款簡便的函式:UPPER、LOWER 跟 PROPER,讓你簡單轉換字母大小寫,非常簡單、好寫,可以套用在使用大小寫字母的語言上(拉丁字母、希臘字母、西里爾字母等)!
你可能也想看
Google News 追蹤
Thumbnail
在程式語言裡,對應到多重選擇路徑判斷的語法, 最通俗也最常見的就是if ... else ... 語法。 今天,我們將從最基本的 若A條件成立 則...否則 ... 的 if ... else ...開始講起, 搭配幾個範例做說明,最後以一個經典的閏年判定最為結尾的Demo
Thumbnail
本篇介紹了Swift程式語言中的各種流程控制元素,包括條件語句(如if, else if, else),三元運算子,多條件分支判斷的switch語句,以及各種迴圈(如for迴圈,while迴圈,以及repeat-while迴圈)。同時也詳細解釋了如何進行迴圈嵌套,以及如何使用控制迴圈語句。
Thumbnail
本章節提供了關於Typescript中流程控制元素的詳細介紹,包括if, else if, else語句,三元運算子,switch語句,各種for迴圈,while迴圈,循環嵌套和控制迴圈語句(break,continue和標籤)的使用。
※ switch用法: ​switch是 JavaScript 中的一個控制結構,是一種更結構化的方法來替代多個 if...else 語句,特別是當需要根據同一變數的多個值進行不同操作時非常有用。 ※ switch語法: switch 語句首先評估括號內的表達式 (expression)。
※ 條件判斷語法 決策中需要處理分歧的狀況,就會用到「if」、「else if」、「else」。 ※ 語法結構: 條件式使用小括號(),裡面放判斷式。 要執行的程式碼放在大括號{}裡。 條件式只會有 true 或 false 兩種結果。 ※ 常用的比較運算子: > 大於 < 小於
Thumbnail
在程式世界裡,if 條件句是我們的好朋友,幫我們做各種決策。如果不注意可能會讓我們掉進小陷阱。文中透過幾個例子,在使用 if 時可能會遇到的一些常見問題,像是不必要的 if、過於複雜的條件、忘了用嚴格比較,還有嵌套太深的 if。透過這篇文章,你將學到如何避免這些小錯誤,寫出更乾淨、更有效率的程式碼。
Thumbnail
在人生中總是會遇到許多選擇,做了不同的選擇產生的結果也會不一樣,大多時候都是在為了要吃什麼在抉擇,小孩才做選擇大人全部都要,全部都要何嘗也不是一個選擇。 在Python程式語言中也有選擇的語法,就是If Else,如果是就做什麼,不是就做什麼,有別於其他程式語言,他不一定要有else,可以只有If
Thumbnail
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。
Thumbnail
在程式語言裡,對應到多重選擇路徑判斷的語法, 最通俗也最常見的就是if ... else ... 語法。 今天,我們將從最基本的 若A條件成立 則...否則 ... 的 if ... else ...開始講起, 搭配幾個範例做說明,最後以一個經典的閏年判定最為結尾的Demo
Thumbnail
本篇介紹了Swift程式語言中的各種流程控制元素,包括條件語句(如if, else if, else),三元運算子,多條件分支判斷的switch語句,以及各種迴圈(如for迴圈,while迴圈,以及repeat-while迴圈)。同時也詳細解釋了如何進行迴圈嵌套,以及如何使用控制迴圈語句。
Thumbnail
本章節提供了關於Typescript中流程控制元素的詳細介紹,包括if, else if, else語句,三元運算子,switch語句,各種for迴圈,while迴圈,循環嵌套和控制迴圈語句(break,continue和標籤)的使用。
※ switch用法: ​switch是 JavaScript 中的一個控制結構,是一種更結構化的方法來替代多個 if...else 語句,特別是當需要根據同一變數的多個值進行不同操作時非常有用。 ※ switch語法: switch 語句首先評估括號內的表達式 (expression)。
※ 條件判斷語法 決策中需要處理分歧的狀況,就會用到「if」、「else if」、「else」。 ※ 語法結構: 條件式使用小括號(),裡面放判斷式。 要執行的程式碼放在大括號{}裡。 條件式只會有 true 或 false 兩種結果。 ※ 常用的比較運算子: > 大於 < 小於
Thumbnail
在程式世界裡,if 條件句是我們的好朋友,幫我們做各種決策。如果不注意可能會讓我們掉進小陷阱。文中透過幾個例子,在使用 if 時可能會遇到的一些常見問題,像是不必要的 if、過於複雜的條件、忘了用嚴格比較,還有嵌套太深的 if。透過這篇文章,你將學到如何避免這些小錯誤,寫出更乾淨、更有效率的程式碼。
Thumbnail
在人生中總是會遇到許多選擇,做了不同的選擇產生的結果也會不一樣,大多時候都是在為了要吃什麼在抉擇,小孩才做選擇大人全部都要,全部都要何嘗也不是一個選擇。 在Python程式語言中也有選擇的語法,就是If Else,如果是就做什麼,不是就做什麼,有別於其他程式語言,他不一定要有else,可以只有If
Thumbnail
IF,Switch,三元運算子語法說明 IF條件選擇結構說明 IF為布林條件,當()內條件式滿足True執行if區塊的程式碼,不滿足則執行else區塊的程式碼,若無else也行。