當你在分析資料,遇到條件判斷的情境時,該怎麼做呢? 如果用白話一點的方式解釋條件判斷,可以表達成「如果….就….,不然就…..」。
舉例來說,針對下方學生們的成績,如果我們想在D欄針對成績60分以上的學生打上「及格」,其餘則為「不及格」,這就是典型的條件判斷:如果大於等於60分就及格,不然就不及格。

今天的文章要跟各位讀者介紹試算表中三個條件判斷的函數:IF, IFS, SWITCH。如果你準備好就跟我們一起看下去吧!
開始前,你也可以針對《練習檔案》以「建立副本」的方式 copy 一份出來,跟著我們一起做練習喔~
IF 函數
語法
= IF(logical_expression, value_if_true, value_if_false)
- logical_expression:邏輯運算式,也就是輸出為 TRUE/FALSE 的式⼦
- value_if_true, value_if_false:如果是 TRUE/FALSE 時輸出的値
應用
根據上面範例,套用 IF 公式我們可以寫成:
=IF(C2>=60,"及格","不及格")
如此可以得到以下結果:

進階:巢狀公式
接下來,若我們想進一步將成績細分為A~F等第:
- 90~100分:輸出等第A
- 70~90分:輸出等第B
- 60~70分:輸出等第C
- 低於60分:輸出等第F
這時候該怎麼做呢? 以A學生為例,等第的地方我們可以寫成:
=IF(C2>=80,"A",IF(C2>=70,"B",IF(C2>=60,"C","F")))

這邊看似複雜的公式被稱為「巢狀公式」。但它所遵循的邏輯跟上面的語法是一樣的,這裡我們拆成三部分來看就會變地簡單許多:
- 紅框:假設A學生的成績大於等於80分,那就打A,否則就進入綠框的條件
- 綠框:假設A學生的成績大於等於70分,那就打B,否則就進入黃框的條件
- 黃框:假設A學生的成績大於等於60分,那就打C,否則就打F
通過 IF() 函數就可以輕易地用條件判斷整理出學生們的等第囉!
IFS 函數
語法
=IFS(logical_expression1, value_if_true1, [logical_expression2, value_if_true2, …])
IFS() 的語法與 IF() 十分相似,唯一不同的地方在於遇到 FALSE 會直接輸出 #N/A。因此,在下公式時要記得考慮所有條件。
- logical_expression:邏輯運算式,也就是輸出為 TRUE/FALSE 的式⼦
- value_if_true:如果是 TRUE 時輸出的値
應用
同樣以上面等第的範例,也可以用 IFS() 來完成。
雖然跟 IF() 可以達到相同效果,不過看起來就相對親切許多。公式如下:
=IFS(C2>=80,"A",C2>=70,"B",C2>=60,"C", C2<60,"F")

針對 IF() & IFS() 這兩個函數,時常會搭配其他函數一起使用,像是SUMIF/SUMIFS, AVERAGEIF/AVERAGEIFS, COUNTIF,COUNTIFS…等等。
套用其他函數一起使用時,與原先的邏輯一樣。不過這裡我們就不另外介紹,有興趣的讀者們可以去看看之前的文章~
SWITCH 函數
如果我們想把A~F等第轉換為”優秀”、”佳等”、”尚可”、”待加強”等評語,該怎麼做呢?
這邊你可以直接使用 IFS() 來完成,不過我們想介紹另一個函數 SWITCH()。SWITCH 函數的最大優點是它有類似 ARRAYFORMULA 的功能,只要輸入一次公式就可以獲得整行的結果。
語法
=SWITCH(expression, case1, value1, [case2, value2, ...], [default])
- expression:要轉換的值
- case:⽤來比對 expression 的條件
- value:如果符合 case 時輸出的値
- default:如果所有 case 都不符合時輸出的値
應用
根據上面提出的問題,我們要進行等第與評語之間的轉換。
因此,在 expression 中要放入的是等第,也就是 E2:E7 ; 接著依序將不同等第想轉換成的評語依序列出。這裡你只要在 F2 的地方輸入公式,F2~F7 都會自動出現評語(類似前面提到 ARRAYFORMULA 功能)。
=SWITCH(E2:E7,"A","優秀","B","佳等","C","尚可","F","待加強")
最後,就可以得到我們要的結果啦!

那麼以上是今天條件判斷相關函數的分享,如果你有任何問題,歡迎留言或是來信給我們~
Pingback: 莫非工具 | 文章導覽 - 墨菲莫非