IF
IF 函數會傳回兩個值中的一個,視指定的表示式是評估為布林值 TRUE 還是 FALSE。
IF(條件表示式, 如為 true, 如為 false)
條件表示式: 邏輯表示式。 條件表示式可以包含任何內容,只要表示式可以評估為布林值。如果指定的表示式評估出數字,則會將 0 視同為 FALSE,而其他任何數字將視為 TRUE。
如為 true: 如果條件表示式為 TRUE 時傳回的值。 如為 true 可以包含任何值。如省略如為 true,(有逗號,但無值)且條件表示式評估為 TRUE,則 IF 會傳回 0。
如為 false: 指定如條件表示式為 FALSE 時所傳回的值(可留空)。 如為 false 可以包含任何值。如省略如為 false,(有逗號,但無值)且條件表示式評估為 FALSE,則 IF 會傳回 0。如果完全省略如為 false(如為 true 後無逗號)且條件表示式評估為 FALSE,則 IF 會傳回 FALSE。
備註
如為 true 和 如為 false 之一或兩者都可以包含其他 IF 函數(通常稱為巢狀 IF 函數)。
使用 IF 來進行簡單比較 |
---|
以下的表格顯示一個追蹤學生成績的簡單方法。 |
A | B | C | D | E | F | |
---|---|---|---|---|---|---|
1 | 學生 | 測驗分數 1 | 測驗分數 2 | 最終分數 | 等級 | 最終結果 |
2 | 1 | 56 | 59 | 59 | F | 不合格 |
3 | 2 | 75 | 84 | 84 | B | 合格 |
4 | 3 | 100 | 93 | 100 | A | 合格 |
你可以使用此資料執行簡單的 IF 比較。以下是一些使用 IF 函數的方式: |
根據規則傳回文字值: 在此公式中使用了以下引數:
如「學生 1」的測驗分數為 60 或以上,公式會指定「合格」結果,否則會傳回「不合格」。 |
根據規則傳回數字值: 在此公式中使用了以下引數:
此公式會計算的最終分數為兩個測驗分數較高的一個,且可以透過更改輸入格參照來在上方的表格中為任何其他學生作出修改,以配合正確的學生分數。 |
使用巢狀 IF 函數來測試更多條件: 如最少一個學生的測驗結果為 60 或以上,以上的公式就會指定「合格」結果。 以上的公式會根據學生的最終分數指定等級。 附註:使用巢狀 IF 函數,比較的排序十分重要,因為出現首個結果為 true 的敘述句後,公式就會停止。例如,如果你想將新的條件「未曾嘗試」(如學生的分數為 0)加入等級公式,你需將其加入為第一個條件。將其加至最後方的話,即使分數為 0,公式仍會傳回「F」,因為其已被計算為少於 60。亦因為此原因,無需為等級「A」製作獨立的條件表示式,如學生的分數不是「B」,其也不會有其他等級,因為一定是「A」。 |
試用 |
---|
如要查看用於 Numbers 試算表中的 IF 函數,請使用「成績表」範本製作一個新的試算表。在「全班概覽」表格中移除一個姓名,並查看那會如何更改「期末成績」直欄中的值。探索在「期末成績」直欄中使用的函數。 |
配搭其他函數使用 IF |
---|
以下的公式可以配搭 ISBLANK 一起使用,以決定輸入格是否空白。 在此公式中使用了以下引數:
|
進一步使用 IFS |
---|
IFS 函數可用於計算一系列的表示式,並根據第一個結果為 true 的條件傳回值,取代多個巢狀的 IF 敘述句。 |
其他範例 |
---|
如果輸入格 A5 包含大於或等於 0 的數字,或者非數值,則 =IF(A5>=0, "非負數", "負數") 會傳回文字「非負數」。如果輸入格 A5 包含小於 0 的值,則函數會傳回「負數」。 如果輸入格 A5 包含不是 0 的數字,則 =IF(A5<>0, "非零", "零") 會傳回文字「非零」。如果輸入格 A5 包含 0,則函數會傳回「零」。 如果輸入格 B4 和 B5 兩者都包含數字,則 =IF(IFERROR(OR(ISEVEN(B4+B5), ISODD(B4+B5)), FALSE), "全是數字", "不全是數字") 會傳回文字「全是數字」;否則會傳回文字「不全是數字」。完成此操作來進行測試,查看兩個輸入格的加總是偶數還是奇數。如果輸入格不是數字,則 EVEN 和 ODD 函數會傳回錯誤,且 IFERROR 函數會傳回 FALSE;否則會傳回 TRUE,因為 EVEN 或 ODD 為 TRUE。所以,如果 B4 或 B5 不是數字或布林值,則 IF 敘述句會傳回如為 false 表示式「不全是數字」;否則會傳回如為 true 表示式「全是數字」。 |
範例:避免發生除數為 0 的錯誤 |
---|
有時候無法以能夠避免除數為 0 的方式建構表格。然而,如發生除數為 0 的情況,輸入格中的結果會是錯誤值,這通常不是期望的結果。此範例會示範避免此錯誤發生的三種方式。 假設輸入格 D2 和 E2 各包含一個數字。E2 可能會包含 0。你希望 D2 除以 E2,但要避免除數為 0 的錯誤。如果輸入格 E2 等於 0,則下列三種方式各會傳回 0;否則皆會傳回 D2/E2 的結果。 =IF(E2=0, 0, D2/E2) 會直接測試輸入格 E2 來查看結果是否為 0。 如發生錯誤,=IFERROR(D2/E2, 0) 會傳回 0。除數為 0 為錯誤。 =IF(ISERROR(D2/E2), 0, D2/E2) 會執行一項邏輯測試來查看 D2/E2 是否為 TRUE。 |
使用 REGEX 的範例 |
---|
讓 A1 包含「marina@example.com」 =IF(A1 = REGEX("([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"), "包含電郵", "沒有電郵") 會傳回 "包含電郵"。 |