历史版本27 :筛选展示「自然月」同比环比(图表无日期数据) 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 背景

用户的组件中不包含日期字段,希望可以通过过滤组件筛选日期获得该日期的所在自然月的同环比情况。

本文所对比的是自然月的同环比,若用户想消除月份的天数差异,例如想对比 7 月份 1-30 号 与 6 月份 1-30 号,可参考:使用日期区间过滤展示同比环比

1.2 预期效果

在日期过滤组件中输入「2014-03-01」,组件中自动筛选出各个省份 2014 年 3 月的合同金额,并计算出 3 月合同金额的同比环比。如下图所示:

1.3 实现思路

通过添加不绑定字段的日期过滤组件和计算指标共同实现。

本文使用于自然月的同环比计算,

2. 操作步骤编辑

新建一个仪表板,进入仪表板编辑页面。

2.1 添加组件

2.1.1 添加日期过滤组件

首先新建一个日期过滤组件,为之后筛选日期做准备。

1)在空仪表板中拖入一个「日期过滤组件」,如下图所示:

49.png

2) 在过滤组件编辑页面直接点击保存,如下图所示:

50.png

2.1.2 添加图表组件

使用 FineBI 的 demo 数据「省市签约数据」添加一个新的组件。如下图所示:

51.png2.3

2.2 计算当月、上月、去年同期的合同总价

同比=(当月合同总价-去年同期合同总价)/去年同期合同总价*100%

环比=(当月合同总价-上月合同总价)/上月合同总价*100%

所以要求月同比和月环比,我们需要「当月合同总价」、「去年同期合同总价」、「上月合同总价」三个新字段。这三个新字段都需要绑定我们 2.1 节新创建的日期过滤组件。步骤如下:

2.2.1 计算「当月合同总价」

1)复制「合同总价」字段,并将其命名为「当月合同总价」。

2)对「当月合同总价」字段进行明细过滤。过滤实现的效果为:对合同总价进行筛选,得到日期过滤组件所选日期当月的数据。

52.png

注:这里使用的是日期过滤组件,若设置明细过滤属于过滤组件「日期区间」,则会筛选过滤组件日期区间的步长数据。

2.2.2 计算「去年同期合同总价」

1)复制「合同总价」字段,并将其命名为「去年同期合同总价」

2)对「去年同期合同总价」字段进行明细过滤。过滤实现的效果为:对合同总价进行筛选,得到日期过滤组件所选日期一年前全月的数据

53.png

2.2.3 计算「上月合同总价」

1)复制「合同总价」字段,并将其命名为「上月合同总价」

2)对「上月合同总价」进行明细过滤。过滤实现的效果为:对合同总价进行筛选,得到日期过滤组件所选日期上月的数据

54.png

2.3 计算同比环比

上面已经将计算同比环比所需要的字段计算出来了,接下来就可以计算同比环比。

2.3.1 计算「同比」字段

添加同比计算字段。若「去年同期合同总价」没有值,那么该「同比」字段为空,否则计算同比值。

输入公式:if(ISNULL(sum_agg(去年同期合同总价)),"",(sum_agg(当月合同总价)-sum_agg(去年同期合同总价))/sum_agg(去年同期合同总价))

这里我们将公式拆分成两部分方便用户理解:


用到的函数
if(ISNULL(sum_agg(去年同期合同总价)),"",同比)

SUM_AGG

ISNULL

同比=(sum_agg(当月合同总价)-sum_agg(去年同期合同总价))/sum_agg(去年同期合同总价)

55.png

2.3.2 计算「环比」字段

添加环比计算字段。若「上月合同总价」没有值,那么该「环比」字段为空,否则计算环比值。

输入公式:if(ISNULL(sum_agg(上月合同总价)),"",(sum_agg(当月合同总价)-sum_agg(上月合同总价))/sum_agg(上月合同总价))

这里也将公式拆分成两部分方便用户理解:


用到的函数
if(ISNULL(sum_agg(上月合同总价)),"",环比)

SUM_AGG

ISNULL

环比=(sum_agg(当月合同总价)-sum_agg(上月合同总价))/sum_agg(上月合同总价)

56.png

2.4 制作分组表

所有字段都计算完成后,做出一个图表组件就很容易啦。

这里我们做一个分组表,将字段拖入分析区域,并将「同比、环比」的数值格式改为百分比。如下图所示:

57.png

注:此处由于没有选择日期,因此同一省份当月、上月、去年同期的合同总价都相等,所以同比环比均为0,当日期过滤组件选择日期后即显示对应时间的同环比。

2.5 效果查看

进入仪表板,筛选日期。就可以看到所选日期它当月的合同总价、上月的合同总价及环比、去年同期合同总价和同比。详情参见本文 1.1 节。