1. 版本
FineBI 版本 | 功能變動 |
---|---|
6.0 | - |
6.0.16 | 增強 if 函式多條件指派能力 |
2. 概述
文法 | IF(條件運算式1,結果1,條件運算式2,結果2,.....,其他結果) 如果滿足條件運算式1,則傳回結果1,如果滿足條件運算式2且不滿足條件運算式1,則傳回結果2,如果無滿足的條件運算式,則傳回其他結果。 | |
---|---|---|
參數1 | 條件運算式 | 匯出的結果需為布爾類型或數值類型 |
參數2 | 結果參數 | 所有結果參數的類型必須需相同 |
3. 注意事項
IF 中三個參數,第一個為 bool 類型(true 或者 false)或數值類型(0或者1);第二個和第三個參數相同類型,兩個參數中有空,傳回非空參數類型;兩個參數類型不同:傳回正文類型。
新增計算欄位 寫入公式時,使用的欄位不能進行過 明細過濾 。這是因為 明細過濾後的指標僅支援聚合函式 ,如果需要使用 IF 函式,則使用的欄位不能進行過明細過濾,可以用其他過濾替代。
4. 範例
4.1 範例一:單條件判斷
範例資料:成績表.xlsx
1)判斷學生成績是否合格。在主題中使用 新增列 ,輸入如下圖公式。
若 成績≥60,傳回“合格”,否則傳回“不合格”
2)計算結果如下圖所示:
4.2 範例二:多條件判斷
若還想進一步將學生的成績分成「優秀、良好、及格、不及格」,用 IF 函式如何實現呢?
成績<60分:不及格
60≤成績<70:及格
70≤成績<80:良好
成績≥80:優秀
注:多條件判斷,條件數不能超過200個。
1)使用範例資料,在主題中使用 新增列 ,輸入如下圖公式。
成績滿足第一個條件“<60”時,傳回“不及格”;滿足了第一個條件的資料,不再參與第二個條件的判斷;滿足第一個條件和第二個條件的資料,不再參與第三個條件的判斷,以此類推...
若 FineBI 版本在 6.0.16 之前,多條件判斷需要寫 if 函式巢狀。
本範例實現公式:if(成績<60,"不及格",if(成績<70,"及格",if(成績<80,"良好","優秀")))
2)計算效果如下圖所示:
4.3 更多常用範例
場景範例 | 公式 | 詳解 |
---|---|---|
判斷是否為 null | IF(isnull(訂單編號),0,1) | 若訂單編號為 null ,傳回 0,否則傳回1 |
IF+且條件 | IF(AND(條件1,條件2),"是","否") | 當條件 1 和條件 2 同時滿足時,傳回"是",否則傳回"否" |
IF+或條件 | IF(OR(條件1,條件2),"是","否") | 當滿足條件 1 和條件 2 其中一個時,傳回"是",否則傳回"否" |