今天介紹 Excel 的基本判斷函數 IF,條件判斷在 Excel 中可說是非常實用。
依照不同情況,可以搭配 AND、OR、NOT 一起使用,它們分別有「且」、「或」、「非」的概念。這些邏輯判斷是寫程式的基礎語言之一,所以對寫程式(coding)有興趣的人,絕對不要錯過這篇文章喔。
Excel 範例檔案下載:Excel-IF-IFS-SWITCH-AND-OR-NOT.xlsx
延伸閱讀:【Excel】雙條件、多條件查詢(Multiple Conditions)
單一條件判斷
相信大家多少都看過if…else這樣的語句,其實任何程式的基礎不外乎是 if…else 和迴圈(loop),當然 Excel 也不例外。Excel所擁有的內建的條件判斷函數 IF,使用上也非常直覺、簡單。
PS:下面的範例我會把判斷條件獨立出一個欄位給大家去對照
IF
=IF(a,b,c)
a:判斷條件
b:條件成立傳回值
c:條件不成立傳回值
=IF(判斷條件,條件成立傳回值,條件不成立傳回值)
第一個參數判斷條件,對應欄位[B2]至少(大於等於)60,所以這邊填入「B2>=60」。
第二個參數條件成立傳回值,如果符合至少60分,回傳「及格」。
第三個參數條件不成立傳回值,如果不符合至少60分(低於60),回傳「不及格」。
其他邏輯判斷
除了 IF函數,Excel 常使用的邏輯函數,也就是時常聽到數學老師所說的:交集(A ∩ B)、聯集(A ∪ B),這裡分別代表的函數是 AND、OR。
AND
=AND(a,b,[c]…)
a:判斷條件1
b:判斷條件2
c:判斷條件3
回傳:範圍所有條件的交集結果
全部皆成立,即回傳 TRUE
任一個或一個以上不成立,即回傳 FALSE
=IF(AND(判斷條件1,判斷條件2),條件成立傳回值,條件不成立傳回值)
這裡將 AND 的回傳值,放入 IF 函數當作判斷的邏輯,達到組合的目的。
以第一列資料為例:小莫的國文和英文成績皆及格,所以 AND 回傳 TRUE。接著 IF 判斷 AND 的回傳值-TRUE,認定符合條件,因此回傳符合條件的回傳值「 是」。
OR
=OR(a,b,[c]…)
a:判斷條件1
b:判斷條件2
c:判斷條件3
回傳:範圍所有條件的聯集結果
全部皆不成立,即回傳 FALSE
任一個或一個以上成立,即回傳 TRUE
=IF(OR(判斷條件1,判斷條件2),條件成立傳回值,條件不成立傳回值)
這題和上個範例十分相似,只是把 AND 的判斷方式變成 OR,一樣使用回傳結果當作 IF 函數中當作判斷的邏輯,達到組合的目的。
以第二列資料為例:小非的測驗未及格,但是複測大於等於 60 分,所以 OR 會回傳 TRUE。接著 IF 判斷 OR 的回傳值-TRUE 認定符合條件,因此回傳符合條件的回傳值「 是」。
以第三列資料為例:小工的測驗未及格,複測也未及格,所以 OR 會回傳 FALSE。接著 IF 判斷 OR 的回傳值-FALSE 認定符合條件,因此回傳符合條件的回傳值「 否」。
NOT
=NOT(a)
a:判斷條件
回傳:是否不符合判斷條件
=IF(NOT(判斷條件),條件不成立傳回值,條件成立傳回值)
這個函數是用來判斷是否不符合:是錯誤的嗎(Is false?)。
如果不正確就會回傳 TRUE,反之正確則回傳 FALSE。簡單來說,就是把 TRUE/FALSE 值相反過來。
NOT(TRUE) = FALSE
NOT(FALSE) = TRUE
多條件判斷
巢狀 IF (Nested)
=IF(a,b,IF(c,d…)
a:判斷條件1
b:符合條件1回傳值
c:判斷條件2
d:符合條件2回傳值
=IF(判斷條件1,符合條件1傳回值,IF(判斷條件2,符合條件2回傳值,IF(判斷條件3,符合條件3回傳值,...)
巢狀 IF 看起來很複雜,其實不然。簡單來說,即在一個 IF 函數的回傳值中,再加入一個 IF 函數,可以在成立時回傳一個 IF,也可以在不成立時回傳。
為了幫助大家更好理解,下面我將上方公式重新排版整理式,來解釋這個巢狀 IF。
我們先看最外層藍色底線的 IF:
當分數[B2]大於 855 分,即回傳[E6]的值「金色」。
如果沒有大於 855 分,進入下一個綠色底線 IF:
當分數[B2]大於 725 分,即回傳[E7]的值「藍色」。
如果沒有大於 725 分,進入下一個橘色底線 IF:
當分數[B2]大於 465 分,即回傳[E8]的值「綠色」。
如果沒有大於 465 分,進入下一個紅色底線 IF:
當分數[B2]大於 215 分,即回傳[E9]的值「棕色」
如果沒有大於 215 分,回傳[E10]的值「橘色」
這一層層的結構,被稱為巢狀結構。雖然看起來複雜,但只要細心地完成每個條件,相信大家都可以將問題迎刃而解。
IFS
=IFS(a,b,[c,d]…)
a:判斷條件1
b:符合條件1回傳值
c:判斷條件2
d:符合條件2回傳值
IFS 是 IF 的變化版,可以說是為了簡化巢狀而產生的函數,若使用 IFS 就不用一直重複使用 IF。
=IFS(判斷條件1,符合條件1傳回值,判斷條件2,符合條件2回傳值,判斷條件3,符合條件3回傳值,...)
它是兩個參數兩兩一組:
第一組判斷條件1、符合條件1傳回值,如果[B2]大於 855 分,即回傳[E6]的值「金色」。
第二組判斷條件2、符合條件2傳回值,如果[B2]大於 725 分,即回傳[E7]的值「藍色」。
第三組判斷條件3、符合條件3傳回值,如果[B2]大於 465 分,即回傳[E8]的值「綠色」。
第四組判斷條件4、符合條件4傳回值,如果[B2]大於 215 分,即回傳[E9]的值「棕色」。
第五組判斷條件5、符合條件5傳回值,如果[B2]大於 0 分,即回傳[E10]的值「橘色」。
SWITCH
=SWITCH(a,b,c,[d,e]…)
a:判斷欄位
b:判斷條件1
c:符合條件1回傳值
d:判斷條件2
e:符合條件2回傳值
當然在 Excel 公式中也可以直接使用文字來取代儲存格(cell)。
=SWITCH(B2,1,"奇蹄目",2,"偶蹄目",3,"食肉目",4,"嚙齒目",5,"鯨目",6,"靈長目")
這裡我把上方公式做個簡單的排版整理,對應的欄位換成文字,來解釋SWITCH。
這樣看起來就清楚很多了,要判斷的是[B2]這個欄位:
- 當[B2]等於 1 的時候回傳「奇蹄目」
- 當[B2]等於 2的時候回傳「偶蹄目」
- 當[B2]等於 3的時候回傳「食肉目」
- 當[B2]等於 4的時候回傳「嚙齒目」
- 當[B2]等於 5的時候回傳「鯨目」
- 當[B2]等於 6的時候回傳「靈長目」
IFS 和 SWITCH 幾本上都是多條件判斷,雖然這邊的範例並沒有凸顯兩者的差異,但兩者使用的時機卻不太一樣。IFS 能針對條件寫出更靈活的判斷方式,相對的 SWITCH 只能對一個特定的儲存格(cell),判斷是否等於某個特定的值。
最後,大家是否學會判斷函數的操作方式呢?面對這些函數,其實不需要刻意背誦,等需要用到的時候,再回過頭來複習一下就可以囉。
延伸閱讀:【Excel】雙條件、多條件查詢(Multiple Conditions)
Excel 範例檔案下載:Excel-IF-IFS-SWITCH-AND-OR-NOT.xlsx
更多 Excel 文章請至 文章導覽 尋找,也可利用上方「搜尋(Search...)」功能
有任何莫非工具的問題,歡迎至「表單」提問
Excel 是不是很容易
和墨菲一起用 Excel 把工作變簡單
Pingback: 【Excel Function】COUNT 家族 (下):COUNTIF、COUNTIFS 條件統計 - 墨菲莫非
Pingback: 【Excel Function】條件加總:SUMIF、SUMIFS - 墨菲莫非
Pingback: 【Excel Function】條件平均:AVERAGEIF、AVERAGEIFS - 墨菲莫非
Pingback: 莫非工具 | 文章導覽 - 墨菲莫非
Pingback: 【Excel Date】DATEDIF:計算兩個日期之間的差 - 墨菲莫非