Q1:公式中的字段不能手动输入吗?
A:能,输入字段名部分文字或首字母 FineBI 能自动匹配对应字段,选择字段即可。也支持在左侧的字段选择框中选择。
添加的字段名要和表内字段匹配上,添加的字段为蓝色。如果为黑色则无效,取不到字段内数据。详情参见:函数计算格式
Q2:BI 里的「不等于」怎么表示?
A:!= 详细可参见:计算运算符和优先级
Q3:公式里怎么书写文本表达式?
A:在文本表达式左右需要增加「双引号」,详情参见:函数计算格式
Q4:为什么新增公式列不支持直接输出聚合函数?
A:因为聚合函数是对不同行进行汇总的计算。编辑数据是行级别的明细计算。如果想直接输出聚合函数,可以在组件中计算。
如果在数据编辑中进行聚合,公式需要使用def函数嵌套,或者直接使用新增汇总列。
Q5:为什么公式报错「不合法」?
Q6:如果一个公式里面,一个字段用了聚合函数,其他字段也要统一用聚合函数吗?
A:是的。
Q7:组件标题可以写公式吗?
A:不可以。
Q8:怎么在 BI 里进行条件判断呢?
A:IF 函数和 OR、AND 函数嵌套使用/多个IF函数嵌套使用。
Q9:" " 和 null 有什么区别?
A:抽取数据不区分,实时数据则取决于各个数据库类型。为确保公式准确,可以写成例如:IF(户型=" "||户型=null,建筑性质,户型)的格式。
Q10:|| 和 && 怎么使用?
例如公式:IF(户型=" "||户型=null,建筑性质,户型)与IF(OR(户型=" ",户型=null),建筑性质,户型)相同,都表示如果户型为空或者空格,那么返回「建筑性质」字段对应的数据,否则返回「户型」字段对应的数据。
Q11:如果有分母为 0 的情况,要使用除法做计算,需要怎么写公式?分母为 0 可以直接在BI中公式修正吗?
A:
使用 IF 函数,若被除数为 0 ,则直接输出 0,否则输出相除计算后的结果。
使用 IF 函数,若数值为空,则显示为 0,否则输出相除计算后的结果。
使用 SIGN 函数,若数据为正数=1,则输出该数据,否则输出 0。
Q12:文本字段不为空如何用公式表达?
A:len(字段)!=0
Q13:为什么「准入时间<"2020-12-01"」公式不合法?
A:一个是时间字段一个是文本字段,需要将文本字段转化成时间字段,使用 date 函数:准入时间>DATE(2020,12,1)
Q14:为什么AVG_AGG(记录数)这样公式不合法?
A:记录数实际上就是 COUNT_AGG(数据表条数),已经是聚合函数了,聚合函数不能和AVG_AGG()聚合函数嵌套使用。
Q15:为什么「开始日期<NOW()<结束日期」这个写法不合法?
A:需要使用逻辑与 AND() 或者 &&。例如:开始日期<NOW()&&NOW()<结束日期。
Q16:如何计算两个时间点之间的时间差?
A:DATEDIF 或者 DATESUBDATE 函数。
Q17:为什么使用指标条件后使用字段创建公式显示不合法呢?
A: 指标条件后的指标字段创建公式仅支持使用 聚合函数。
Q18:为什么 IF 函数和聚合函数一起嵌套使用公式不合法?
A:使用 IF 函数对聚合函数进行二次计算,当公式中含有非聚合字段时,公式不合法。详情参见:公式不合法原因排查 3.2节。
Q19:在进行相除计算时,什么时候用聚合函数 SUM_AGG,什么时候直接相除?
A:SUM_AGG 一般用于指标条件后求和,求和后相除。不使用聚合函数得出的相除结果是对明细数据做除法。详情参见:SUM_AGG