1. 概述
1.1 版本
| FineBI 版本 | 功能变动 |
|---|---|
| 6.0 | - |
| 6.1.3 | 公式DEF(COUNTD_AGG(关键节点),[关键节点],[每个节点的客户数>EARLIER(每个节点的客户数)])+1 改成DEF(COUNTD_AGG(关键节点),[关键节点],[每个节点的客户数>=EARLIER(每个节点的客户数)]) |
| 7.0 | EARLIER函数字段列支持数组,可配合 SUB_DIM 使用。详情见:配合DEF+EARLIER实现组内行间计算 |
1.2 函数简介
EARLIER :获取当前行的值。只适用于 DEF 类函数 中,用于行间过滤计算。
借助偏移量可计算上一个日期与下一个日期的差,计算上一步数据到下一步数据的转化率等。
| 语法 | EARLIER(参数) | 获取「当前行」和「参数字段列」交叉的单元格的值 |
|---|---|---|
| 参数 | 字段列 | 参数不支持常量,可以使用引用函数。 |
1.3 注意事项
问题描述:数据更新时提示更新失败,报错「更新时检测使用到 earlier 函数不等式导致计算数据严重膨胀,操作中止,请检查公式中的 earlier 函数,去掉 earlier 的不等式或者控制数据量大小。」
原因分析: earlier 函数,对自助数据集存在数据限制,若自助数据集数据量超过 1000000 ,就会出现该报错。
解决方案:请换用其他函数,或控制底表数据在1000000以内。
2. 示例
本文以一份汽车销售行业的漏斗数据为例,演示如何计算每个节点的转化率。
我们需要获取「上一步的客户数」的值,随后相除计算转化率。下图为最终效果:

2.1 数据准备
1)上传示例数据:汽车行业销售漏斗.xlsx
将下载下来的数据上传至分析主题,如下图所示:

2)先求每个节点的客户数,添加计算字段,输入公式,如下图所示:DEF(SUM_AGG(${汽车行业销售漏斗_客户数}),[${汽车行业销售漏斗_关键节点}])

2.2 添加「排名」辅助列
「排名」辅助列的作用是给每个节点一个按客户数排序的编号,为后面用 EARLIER 取「上一节点的客户数」铺好顺序。
1)根据数据「上一节点的客户数」一定比「当前节点客户数」多的特点,「排名」字段的公式如下图所示:

| 公式 | 描述 |
|---|---|
| DEF(COUNTD_AGG(关键节点),[关键节点],[每个节点的客户数>=EARLIER(每个节点的客户数)]) |
求得满足客户数大于等于「当前节点客户数」的节点,计算得到节点排名 |
2)将「排名」拖入分析区域,可校验一下「排名」计算结果是否正确。

2.3 计算上一个节点的客户数
1)计算当前节点的上一个节点的客户数,如下图所示:

| 公式分解 | 描述 |
|---|---|
| SUM_AGG(客户数) | 求客户总数 |
| DEF(SUM_AGG(客户数),[关键节点],排名+1=EARLIER(排名)) |
借助偏移量,排名=EARLIER(排名)-1 ,筛选出比「当前行排名」-1的那个节点,获得那个节点的客户数并求和 |
2)将「上一步的客户数」拖入分析区域,可查看计算结果是否正确。如下图所示:

2.4 计算转化率
1)使用公式:当前客户数/上一步的客户数 ,即可求得。如下图所示:

2)将「转化率」拖入分析区域,并将数值格式改为百分比。如下图所示:

如此我们便完成了转化率分析。
