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);第二个和第三个参数相同类型,两个参数中有空,返回非空参数类型;两个参数类型不同:返回文本类型。
添加计算字段 写入公式时,使用的字段不能进行过 指标条件 。这是因为 指标条件后的指标仅支持聚合函数 。
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 其中一个时,返回"是",否则返回"否" |