历史版本2 :「月维度环比增长率」日期不同步的问题 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 版本编辑

FineBI 版本
6.0.14

2. 描述编辑

2.1 问题描述

当我们要看销售额在月维度的环比变化情况时,在FineBI中画这样一张组合图形,条形图表示月维度的销售额以及环期值,折线图表示月维度的环比增长率,销售额的环期值和环比增长率通过FineBI自带的快速计算功能实现,结果如下。


我们主要关注最近月份12月份的环期值和环比增长率,在数据源中,12月份的销售数据仅更新到12月4号,只有1,2,3,4号四天的销售数据,对应的总销售额是46.05万,FineBI计算正确,而12月份的环期值快速计算的结果是641.06万,也就是说FineBI把整个11月份的销售额作为12月份的环期值,这样12月份的环比增长率是-92.82%,这在实际业务运用中是不正确的。

正确结果应该是,由于12月份仅更新到12月4号的销售数据,那么环期值应该是11月1号到11月4号的总销售额才是12月份的环期值,然后再计算对应的环比增长率才是正确的,那么该如何解决该问题呢?


2.2 解决方案

以上提到的问题会出现在最近的月份中,尤其是最近的月份数据还不完整的情况下,

12月份数据仅更新到12月4号,那么11月份可以进行环比的日期就是11/1,11/2,11/3,11/4号,从11/5到11/30的数据是不可以跟12月份的数据进行环比的,那么我们需要在数据源中识别出哪些日期是可以进行环比,哪些日期是不可以进行环比。

2.2.1 创建【最近日期】

先识别出数据源中最近的日期,创建【最近日期】字段,用DEF函数实现,【最近日期】=DEF(MAX_AGG(日期1))。

可以看出最近日期是2023年12月4号

2.2.2 创建【可比日期-月环比】字段

识别出哪些日期是可以进行月维度环比,哪些是不可以进行月维度环比,创建【可比日期-月环比】字段,可以进行月环比的日期标记为true,否则标记为false。具体公式如下:

【可比日期-月环比】=

IF(    

OR(日期1<=DATE(  YEAR(最近日期)  ,MONTH(最近日期)-1,DAY(最近日期)), 

YEAR(日期1)=YEAR(最近日期)  && MONTH(日期1) =MONTH(最近日期) && DAY(日期1) <=DAY(最近日期) ),

"true","false"

)

以该数据源为例,数据更新到12/4,那么该公式利用最近日期把11/1,11/2,11/3,11/4识别出来标记为可比日期,11月份剩下的日期标记为不可比日期,同时将12/1,12/2,12/3,12/4标记为可比日期

2.2.3 开始绘图,

进入组件中开始绘图,复制【销售额】字段,得到【销售额1】,对【销售额1】字段进行明细过滤,过滤条件字段选择【可比日期-月环比】,属于固定值true。

2.2.4 新建计算字段【月环期销售额】

【月环期销售额】=PREVIOUS_PERIOD(SUM_AGG(销售额1)),或者将【销售额1】字段直接拖到纵轴,利用快速计算功能计算环期值。

2.2.5 新建计算字段【销售额月环比增长率】

【销售额月环比增长率】=(SUM_AGG(销售额)-PREVIOUS_PERIOD(SUM_AGG(销售额1)))/PREVIOUS_PERIOD(SUM_AGG(销售额1)),这里必须编写环比增长率计算公式,不能用快速计算功能。

2.3 结果验证

绘制图形,选择自定义图表,

  • 【日期1】拖到横轴,并设置为年月

  • 【销售额】,【月环期销售额】,【销售额月环比增长率】拖到纵轴

  • 【销售额月环比增长率】设置为折线图,值轴设置为右值轴

  • 给【销售额】,【月环期销售额】,【销售额月环比增长率】加上数据标签验证结果

结果如下,现在12月份的销售额不变,还是46.05万,但是环期值变成69.39万,也就是11/1,11/2,11/3,11/4这4天的总销售额,对应的环比增长率为-33.63%,结果正确