今天要來聊聊 IF,還有它背後那兩個只會說「對」或「不對」的值,TRUE 和 FALSE。
IF 的用途很直白:讓儲存格看條件,條件成立顯示一個結果,不成立顯示另一個。
手動標記有多麻煩
我手上有一份小考成績,7 個人,放在 A1:B8:
| A | B | |
|---|---|---|
| 1 | 座號 | 分數 |
| 2 | 1 | 62 |
| 3 | 2 | 58 |
| 4 | 3 | 91 |
| 5 | 4 | 60 |
| 6 | 5 | 77 |
| 7 | 6 | 45 |
| 8 | 7 | 83 |
我想在旁邊標出每個人「及格」或「不及格」,60 分算及格。7 筆還能一格一格打,可是分數只要改一個,標記就得跟著手動改,有點太累了吧!這時候就可以請 IF 派上場。
不過在那之前,先認識它判斷時用的東西。
TRUE 與 FALSE
在空白儲存格輸入 ,按下 Enter,會看到 TRUE,因為 10 確實大於 5。輸入 ,會看到 FALSE。
TRUE 和 FALSE 叫做布林值(Boolean,只有兩種可能的值),在 zh-TW 的 Google 試算表裡就是顯示成這兩個英文字。它們不是文字,所以前面不用加引號,儲存格預設會置中對齊。
六個比較運算子
會產生 TRUE 或 FALSE 的,是比較運算子。拿 B2 的 62 分來試試看:
| 運算子 | 意思 | 範例 | 結果 |
|---|---|---|---|
= | 等於 | FALSE | |
> | 大於 | TRUE | |
< | 小於 | FALSE | |
>= | 大於等於 | TRUE | |
<= | 小於等於 | FALSE | |
<> | 不等於 | TRUE |
第一個範例裡有兩個等號,這邊看起來怪怪的,其實第一個是「這是公式」,第二個才是「等於」。
「大於等於」要記得把 > 放在 = 前面,寫成 => 的話會出錯。<> 這個「不等於」比較少見,但我自己用得很頻繁,例如 可以檢查 A2 是不是空白以外的東西。
IF
IF 會先檢查一個條件,成立就回傳第一個值,不成立就回傳第二個值。
語法
- 條件:結果是
TRUE或FALSE的運算式,通常就是上面的比較運算。 - 成立時的值:條件是
TRUE時,儲存格顯示什麼。 - 不成立時的值:選填。官方英文說明寫「預設空白」,但實際省略時
IF(FALSE,"x")會回傳FALSE;IF(FALSE,"x",)與IF(FALSE,"x","")才會顯示空白。省略參數和明確空值不要混為一談;教學建議一律明寫不成立時的結果,想要空白就寫""。
範例
回到成績表。我想在 C 欄標記及格與否,60 分以上算及格。
如果要用 IF 寫,就是:
60 分以上顯示及格,其他顯示不及格
=IF(B2>=60, "及格", "不及格")B2>=60:條件,B2的分數是不是大於等於 60。"及格":成立時顯示的文字。"不及格":不成立時顯示的文字。
文字要用雙引號包起來,漏掉的話,Sheets 會把「及格」當成一個名稱去找,找不到就會出現 #NAME?。
在 C2 輸入公式,按下 Enter,再往下複製到 C8。來看看結果:
| 座號 | 分數 | 結果 |
|---|---|---|
| 1 | 62 | 及格 |
| 2 | 58 | 不及格 |
| 3 | 91 | 及格 |
| 4 | 60 | 及格 |
| 5 | 77 | 及格 |
| 6 | 45 | 不及格 |
| 7 | 83 | 及格 |
注意第 4 個人,剛好 60 分,因為我們寫的是 >=,所以算及格。如果寫成 B2>60,這一格就會變成「不及格」。邊界值要算在哪一邊,是寫 IF 時最常要多想一秒的地方。
只標出需要處理的人
我想只標需要補考的,也就是不及格的,及格的就留空:
不及格才顯示補考,其他留空
=IF(B2>=60, "", "補考")成立時的值寫成一對空引號 "",儲存格看起來就是空的。結果只有座號 2 和座號 6 會顯示「補考」,其他 5 格都是空白。
回傳的不一定是文字
IF 的兩個值可以是文字、數字,也可以是另一條公式。例如我想把不及格的分數直接顯示成 0,及格的維持原分數:
及格顯示原分數,不及格顯示 0
=IF(B2>=60, B2, 0)結果依序是 62、0、91、60、77、0、83。
多一層:巢狀 IF
只分「及格」和「不及格」有點粗,我想再多加一個「優」,80 分以上算優。做法是把 IF 的第三個參數換成另一個 IF,這叫巢狀 IF:
80 分以上優,60 分以上及格,其他不及格
=IF(B2>=80, "優", IF(B2>=60, "及格", "不及格"))先檢查 80 分,成立就是「優」;不成立才進到裡面那個 IF 檢查 60 分。結果依序是及格、不及格、優、及格、及格、不及格、優。
兩層還看得懂,層數一多,括號和順序就開始會出事。下一篇會專門聊 巢狀 IF 與 AND / OR 的陷阱,這邊先講到這裡。
練習
標記出貨延遲
訂單的出貨天數放在 B2:B6,依序是 3、7、2、5、10。超過 5 天算「延遲」,剛好 5 天以內都算「準時」。請在 C2 寫一條公式,往下複製後,結果依序要是準時、延遲、準時、準時、延遲。
測驗
IF 基礎測驗
B2 是 60, 會顯示什麼?
只有兩種結果的判斷,IF 已經夠用了。條件變多的時候,換成 巢狀 IF 與 AND / OR 來看看吧!
我是喜特先生,Mr. Sheet,我們下個教學見!
接下來可以
這篇在技能樹的 Lv.1「基礎操作」,模組「做簡單的判斷」(第 1/2 篇)。
回到技能樹相關文章
查看所有文章留言討論
共 0 則留言
