Excel 是我們拿來做資料分析的一個好幫手,在傳統的的 IF 函式,我們必須寫很多判斷式,才會達到巢狀 IF (Nested IF) 的目的,而現在 Excel 和 LibreOffice Calc 都有了新的函式 IFS,讓你更容易使用巢狀 IF 囉!
假設,我們要依學生的分數,產生不同的學生等第。
成績 | 等第 |
---|---|
100分 | 優 |
90~99 | 甲 |
80~89 | 乙 |
70-79 | 丙 |
60-69 | 丁 |
60以下 | 不及格 |
在寫東西之前,我們要先掌握到邏輯,以這範例的邏輯,我們會希望是下面。
if (grade == 100) print ("優") else if (grade >= 90) print ("甲") else if (grade >= 80) print ("乙") else if (grade >= 70) print ("丙") else if (grade >= 60) print ("丁") else print ("不及格")
有了邏輯之後,我們就可以使用 IF 來建立我們的函式,我們先來看一下傳統的 IF 函式的規格。
IF(條件, 條件成立時, 條件不成立時)
也就是說,在這一個範例中,你就要寫了這麼長,才能達到這個目的。
=IF(A2=100,"優",IF(A2>=90, "甲", IF(A2>=80, "乙", IF(A2>=70, "丙", IF(A2>=60, "丁", IF(A2<60, "不及格"))))))
再來看看新的函式 IFS 的描述。
IFS( 條件1, 結果1[, 條件2, 結果2][, …] )
所以,以這個範例來說,我們只要寫成這樣就好,是不是變得超級簡單呢?
=IFS( A3 = 100, "優", A3 >= 90, "甲", A3 >= 80, "乙", A3 >= 70, "丙", A3 >= 60, "丁", A3 < 60, "不及格" )
再搭配 Excel 的公式編輯器,簡直是超級好用的啦!
而新的 IFS 在 Office 2016 以上的版本才會有,因為 LibreOffice 是免費的,所以只要下載最新的 LibreOffice 就有有這個函式了。