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 的值,則函數會傳回「負數」。 =IF(A5<>0, “非零", "零") 會在 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;否則皆會傳回 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})"), "Contains e-mail", "No e-mail") 會傳回 "Contains e-mail"。 |