1. 概述
1.1 背景
在不使用 DEF 函数的时候,我们可以通过 BI 的快速计算,得出每年的销售额月累计值。
但我们在日常工作时,经常需要将月累计值与去年的月累计值进行同比,而快速计算的结果无法再利用,这时候我们需要使用 DEF 函数。
1.2 预期效果
求得 每月累计值 与 去年同期累计值 的同比。如下图所示:
可以看出截止 2014-6 ,2014 年的累计销售额为 138.55 万,而 2013-6 月的累计销售额为 116.57 万,同比提升 18.86%。
在线预览:对月累计求同比
2. 操作步骤
2.1 添加数据
下载示例数据:超市销售数据.xlsx
创建一个主题,将下载下来的示例数据上传至主题。如下图所示:
2.2 处理数据表
我们希望由小月份到大月份对销售额进行累计,为了能够月份之间方便进行比较,我们可以在处理数据表的时候就提取「月份」「年份」。
1)点击获取时间,获取「订单日期」的年份,如下图所示:
2)同样的方法,获取「订单日期」的月份,如下图所示:
3)点击「保存并更新」。
2.3 制作组件
按照我们的预期实现效果,维度上需要拖入字段订单日期,将分组改为「年」和「月」,如下图所示:
2.3.1 计算每年的月累计值
添加计算字段,对满足过滤条件【年份=当前年份,月份小于当前月份】的所有销售额,进行求和。如下图所示:
例如 2014 年 3 月的值便是 1-3 月的累计销售额。
公式拆解 | 描述 | 帮助文档 |
---|---|---|
SUM_AGG(销售额) | 对销售额求和 | SUM_AGG 求和 |
DEF_ADD(SUM_AGG(销售额),[],[年份=EARLIER(年份),月份<=EARLIER(月份)]) | 求每年的月销售额累计值
|
2.3.2 计算去年同期的月累计值
计算去年同期的月累计值,仅需要在上一步的基础上将过滤条件「年份取当前年份」改成「年份取去年」即可。如下图所示:
公式拆解 | 描述 | 帮助文档 |
---|---|---|
DEF_ADD(SUM_AGG(销售额),[],[年份=EARLIER(年份-1),月份<=EARLIER(月份)]) | 求去年同期的累计销售额
| DEF_ADD(分析区域维度+指定维度) |
2.3.3 计算累计值同比
求累计值同比增长,同比增长=月累计值/上一年月累计值-1。如下图所示:
公式拆解 | 描述 | 帮助文档 |
---|---|---|
月累计值/上一年月累计值-1 | 求累计销售额的同比增长率 | - |
IF(ISNULL(上一年月累计值),"",月累计值/上一年月累计值-1) | 判断「上一年月累计值」是否为null:若为null,结果显示空值;若不为空,结果显示同比 | IF 条件判断 |
2.3.4 制作分组表
选择图标类型为「分组表」,将字段拖入到分析区域。注意第一个订单日期的分组为「年」,第二个订单日期的分组为「月份」。如下图所示:
用户可以将所有「销售额或累计值」的数值类型改为「万」,「月累计同比增长」的数值类型改为「百分比」。
到此,我们便分析成功了。
2.4 效果查看
详情请参见本文 1.2 节