1. 概述
1.1 問題描述
當需要判斷條件多的時候,使用 IF 函式 可能會覺得用要對每種情況都進行判斷,比較麻煩,那麼可以使用 switch 函式與NVL函式
結合進行多條件指派。
例如希望對班級進行設定:當前值是 Class1 則顯示一班,如果是 Class2,則顯示二班,如果是 Class3,則顯示三班,否則則顯示四班,如下圖所示:
1.2 實現思路
使用 SWITCH 函式與NVL函式結合進行多條件指派。
注:不支援 Switch 函式中增加 else 判斷。
1.3 函式說明
對多種情況進行判斷,用於判斷條件多的情況下。
1)概述
文法 | SWITCH(表式,值1,結果1,值2,結果2,……) | 如果表式的結果是值1,整個函式傳回結果1 如果表式的結果是值2,整個函式傳回結果2,如果表式的結果是值3,整個函式傳回結果3等等。 |
---|---|---|
参数1 | 表式 | - |
参数2 | 結果 | 所有的結果1,結果2,結果3……必須為同型別資料。 |
2)注意事項
至少三個參數
注:實時資料中參數個數至少 3 個,且結果參數型別一致。
3)範例
公式 | 結果 | 備註 |
---|---|---|
SWITCH(1+2,3,"今天星期三",4,"今天星期四") | 今天星期三 |
2. 操作步驟
範例資料:成績表.xlsx。
2.1 新增資料表
將成績表新增至 FineBI ,如下圖所示:
2.2 進行條件指派
建立自助資料集,選擇成績表中的所有欄位,如下圖所示:
在建立的自助資料集中選擇「新增欄」,編輯公式:nvl(switch(班級,"Class1","一班","Class2","二班","Class3","三班"),"四班"),輸入新增列名,點選「確定」,下圖所示:
注:公式中城市並非手動輸入,而是在左側欄位中按選擇。
公式說明:
公式 | 說明 |
---|---|
switch(班級,"Class1","一班","Class2","二班","Class3","三班") | 如果資料為 Class1,則指派為一班,Class2 則指派為二班,Class 三則指派為三班 |
nvl(switch(班級,"Class1","一班","Class2","二班","Class3","三班"),"四班") | 傳回第一個不是空的欄位,即資料如果不是一班、二班或者三班,則傳回「四班」 |
儲存並更新資料集。
2.3 效果查看
參見本文 1.1 節。