1. 概述编辑
1.1 版本
FineBI 版本 | JAR 包 | 功能变动 |
---|---|---|
5.1 | - | - |
5.1.7 | 2020-11-05 | 函数释义优化&明确函数参数合法性 |
5.1.11 | 2021-04-02 | 实时数据公式校验加强 |
1.2 应用场景
逻辑计算允许确定某个特定条件为真还是假(布尔逻辑)。
例如,希望快速过滤出「合同金额」大于 3000 并且「购买数量」大于 10 的数据。
在自助数据集中使用过滤,过滤条件为:AND(合同金额>3000,购买数量>10),如下图所示:
2. 使用说明编辑
2.1 使用位置
使用位置 | |
---|---|
自助数据集 | 新增列、过滤 |
仪表板 | 添加计算字段 |
2.2 支持的逻辑函数
函数 | 语法 | 定义 | 示例 |
---|---|---|---|
IF | IF(boolean,number1/string1,number2/string2) | 判断函数 | IF(各门店净利润>0,"good","bad") |
AND | AND(logical1,logical2,……) | 当所有参数的值为真时,返回1;当任意参数的值为假时,返回0。 | AND(1+7=8,5+7=12) |
SWITCH | SWITCH(表达式,值1,结果1,值2,结果2,……) | 如果表达式的结果是值1,整个函数返回结果1 如果表达式的结果是值2,整个函数返回结果2,如果表达式的结果是值3,整个函数返回结果3等等。 | SWITCH(1+2,3,"今天星期三",4,"今天星期四") |
OR | OR(logical1,logical2,……) | 当所有参数的值为假时,返回0;当任意参数的值为真时,返回1。 | OR(1+7=9,5+7=11) |
2.3 使用规则
IF 函数:参数类型相同时,结果返回第一个非空的参数类型;参数类型不同时,结果返回文本类型
SWITCH 函数:参数类型相同时,结果返回第2n+1(n>0)个非空的参数类型;参数类型不同时,结果返回文本类型
其他逻辑函数:返回布尔类型,FineBI 中, 布尔类型中的 False,会转化为 0 ,True 为 1 。
3. IF-条件判断编辑
1)应用场景:用来完成非此即彼的判断。
2)语法
语法 | IF(boolean,number1/string1,number2/string2) | 判断函数 |
---|---|---|
参数1 | boolean | boolean为true时返回number1/string1,为false时返回number2/string2.第二个参数和第三个参数的类型必须相同。 |
参数2 | number1/string1 | |
参数3 | number2/string2 |
3)示例
要判断订单是否是优秀订单。使用内置数据集「销售DEMO>合同事实表」,新增列并输入公式为:IF(合同金额>3000,"优秀订单","普通订单"),如下图所示:
公式说明:
公式 | 说明 |
---|---|
IF(合同金额>3000,"优秀订单","普通订单") | 若合同金额大于3000,则显示为 优秀订单,否则为普通订单。 |
更多公式示例:
公式 | 结果 | 备注 |
---|---|---|
IF(true,2,8) | 2 | |
IF(false,"first","second") | second | |
IF(各门店净利润>0,"good","bad") | 当净利润>0等于good,净利润<0等于bad。 |
4)注意事项
IF 中三个参数,第二个和第三个参数相同类型,第一个为 bool 类型
注:实时数据中 IF 三个参数,第二个和第三个参数相同类型,第一个为bool 类型或者数值类型。
4. AND-逻辑与编辑
1)应用场景:做多选题,必须所有选项都符合才是对(true),否则就是错(false)
2)语法
语法 | AND(logical1,logical2,……) | 当所有参数的值为真时,返回1;当任意参数的值为假时,返回0。 |
---|---|---|
参数1 | logical1,logical2,…… | 参数 |
3)示例
公式 | 结果 | 备注 |
---|---|---|
AND(1+7=8,5+7=12) | 1 | 对应系统服务器时间为2020-10-23 15:36:25。 |
AND(1+7=8,5+7=11) | 0 |
4)注意事项
可使用任意个参数
注:实时数据中参数必须为 bool 类型或数值类型。
5. 多个条件判断-SWITCH编辑
1)应用场景:对多种情况进行判断,用于判断条件多的情况下。
2)语法
语法 | SWITCH(表达式,值1,结果1,值2,结果2,……) | 如果表达式的结果是值1,整个函数返回结果1 如果表达式的结果是值2,整个函数返回结果2,如果表达式的结果是值3,整个函数返回结果3等等。 |
---|---|---|
参数1 | 表达式 | |
参数2 | 结果 | 所有的结果1,结果2,结果3……必须为同类型数据。 |
3)示例
公式 | 结果 | 备注 |
---|---|---|
SWITCH(1+2,3,"今天星期三",4,"今天星期四") | 今天星期三 |
SWITCH 函数的详细应用参见: Switch函数 。
4)注意事项
参数个数2n+1个,n>0,第2n个参数类型参数相同
注:实时数据中参数个数至少 3 个,且结果参数类型一致。
6. 逻辑或-OR编辑
1)应用场景:任何一个参数逻辑值为 TRUE,即返回 TRUE;所有参数的逻辑值为 FALSE,才返回 FALSE
2)概述
语法 | OR(logical1,logical2,……) | 当所有参数的值为假时,返回0;当任意参数的值为真时,返回1。 |
---|---|---|
参数1 | logical1,logical2,…… | 参数 |
3)示例
公式 | 结果 | 备注 |
---|---|---|
OR(1+7=9,5+7=11) | 0 | |
OR(1+7=8,5+7=11) | 1 |
4)注意事项
参数为 bool 类型
注:实时数据中参数必须为 bool 类型或数值类型。
7. 注意事项编辑
||、&& 只能连接两个布尔类型为bool类型或数值类型的表达式