FineBI环比分析(三种情况)

楼主
大数据分析师进阶中

使用BI版本6.0.5

一、应用场景(按日期筛选)

环比分析根据3种不同情况分开计算

1、从月初第1天开始,筛选时间段小于当月天数(适合月内时间过程环比)

对比对象:本月同一步长对比一个月前同一步长的数据。示例:

筛选日期:5月1日至5月10日。

对比数据:5月1日至5月10日对比4月1日至4月10日的数据。

2、整月筛选,筛选月份数大于等于1个月(适合季度和整月环比)

对比对象:根据筛选的月份数,对比开始月份前几个月份数据。示例:

筛选日期:4月1日至6月30日。

对比数据:4月1日至6月30日对比1月1日至3月31日的数据。

3、不从月初第1天筛选,筛选任意时间段(适合同步长相邻时间段环比)

对比对象:根据筛选的天数,对比筛选开始日期前同样步长的数据。示例:

筛选日期:5月20日至5月30日。

对比数据:5月20日至5月30日对比5月9日至5月19日的数据。

二、实际操作(按日期筛选)

1、新增时间参数并命名为开始时间和结束时间,并在日期区间组件中绑定开始时间和节数时间参数,用来计算筛选时间段。

 

2、计算筛选日期差筛选月份差

筛选日期差:DATEDIF(开始时间,结束时间,"D")+1

筛选月份差:DATEDIF(开始时间,结束时间,"M")+1

得到日期差和月份差

3、计算环期金额-日环期金额-月

环期金额-日:DEF(SUM_AGG(净销售额1),[业务员],[发货时间>=DATEDELTA(开始时间,-筛选日期差),发货时间<=DATEDELTA(结束时间,-筛选日期差)])

注意DEF第二个参数[业务员]这里根据表格中的维度进行分组,因为是固定维度,如果有多个维度分组,查询时不能将部分维度删除,否则计算结果不正确。

DEF第三个参数发货时间可以替换为原始表格中日期格式的字段,

DATEDELTA(开始时间,-筛选日期差)这里使用DATEDELTA用来得到筛选时间后几天日期,推算的时间长度通过筛选日期差来计算,因为是开始时间前的日期,所以筛选日期差前有负号-。DATEDELTA(结束时间,-筛选日期差)同理得到筛选结束时间前几天日期

这里DEF的类似Excel中SUMIFS(销售额,业务员,业务员条件,日期>=开始日期,日期<=结束日期)

环期金额-日

环期金额月:DEF(SUM_AGG(净销售额1),[业务员],[发货时间>=MONTHDELTA(开始时间,-筛选月份差),发货时间<=DATE(YEAR(MONTHDELTA(结束时间,-筛选月份差)),MONTH(MONTHDELTA(结束时间,-筛选月份差))+1,1)-1])

环期金额-月使用是为了确保当用户在筛选多个月时,得到的是月份数相同的相邻时间段销售额,比如4月1日至6月30日对比1月1日至3月31日的数据,这里使用MONTHDELTA第二参数为负值返回前几个月日期,筛选时间段使用筛选月份差,需要注意的是结束时间条件的设置。

DATE(YEAR(MONTHDELTA(结束时间,-筛选月份差)),MONTH(MONTHDELTA(结束时间,-筛选月份差))+1,1)-1

为了得到结束时间所在月份的最后一天DATE(YEAR(MONTHDELTA(结束时间,-筛选月份差)),MONTH(MONTHDELTA(结束时间,-筛选月份差))+1,1),得到结束时间后几个月的日期,这里多加一个月,选择1日,这时候减去1天得到的就是前一个月的最后一天。

环期金额-月

4、环期金额整理

IF(AND(DAY(结束时间)=DAYSOFMONTH(结束时间),DAY(开始时间)=1),环期金额-月,环期金额-日)

当筛选的开始日期是1日,结束日期是当月最后一天,此时使用环期金额-月,否则使用环期金额-日。

环期金额

通过过滤条件得到净销售额-上月环期,这是为第一种月内环比做准备。

设置1月前同一步长

5、计算环比

IF(AND(DAY(开始时间)=1,筛选日期差<DAYSOFMONTH(结束时间)),(SUM_AGG(净销售额)-SUM_AGG(净销售额-上月环期))/SUM_AGG(净销售额-上月环期),IF(OR(SUM_AGG(环期金额)=null,SUM_AGG(环期金额)=0),"",(SUM_AGG(净销售额)-SUM_AGG(环期金额))/SUM_AGG(环期金额)))

第一层条件判断当筛选的开始日期是1日,筛选日期差不足1个月时,对比一个月前同一步长计算环比,第二层条件判断当环期金额为空则显示空值,否则对比环期金额计算环比。

因为净销售额-上月环期是通过过滤条件得到,因而不能在环期金额计算时套用条件判断,只能在计算环比指标时参与计算。

计算环比

6、呈现效果

注意我这里使用的是按业务员字段分组,如果有多维度汇总,对应计算环期金额-月环期金额-日的DEF函数第二参数要对应分组才行。

月内环比(第1种情况)

多月环比(第2种和第3种情况)

以上五个步骤的设置可以完成环比指标计算的所有情况。

三、补充按年月筛选环比

如果过滤组件使用的是年月区间就简单许多,只需要考虑第2种和第3种情况即可。

环期数据(同一步长上一区间)

1月前全月

接待量环期计算,因为在FineBI6.0.5版本中存在使用同一步长上一区间时,如果筛选开始月份和结束月份都是同一个月,此时接待量环期会出现数值为空值的情况,所以我这里多加接待量上月补充当接待量环期出现空值的情况。

IF(SUM_AGG(接待量环期)=NULL,SUM_AGG(接待量上月),SUM_AGG(接待量环期))

 

最后计算环比

IF(OR(接待量环期对比=NULL,接待量环期对比=0),0,(SUM_AGG(接待量)-接待量环期对比)/接待量环期对比)

环比

 

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 1关注人数 64浏览人数
最后回复于:3 小时前

返回顶部 返回列表