1. 概述
1.1 版本
FineBI 版本 | 功能变更 |
---|---|
6.0 | - |
6.0.13 | DEF_SUB 合计行逻辑优化:合计-自动计算时,使用的是当前合计视图所使用到的拼接维度。 |
1.2 简介
DEF_SUB 函数使用「分析区域的维度」-「指定维度」,计算聚合指标。引入了「分析区域的维度」,所以分析区域维度的增减会影响计算结果。
这里可以对比下 DEF_ADD 函数 「分析区域的维度」+「指定维度」,即阻止函数使用分析区域中的一个或多个维度。
语法 | DEF_SUB(指标, [维度1,维度2,...], [过滤条件1, 过滤条件2,...]) | 满足过滤条件并按【分析区域维度-[维度1,维度2]】对指标进行计算 |
---|---|---|
参数1 | 聚合指标 | 1)指标只允许有一个,且不可为空; 2)指标支持嵌套。即可以是任意函数输出的指标,包括由 DEF 函数输出的计算指标 注:当指标为明细计算指标时,报错提示「分析函数中不支持明细计算指标」 |
参数2 | 维度 | 1)函数内指定的维度 2)当只有一个维度参数时,可以不加 [ ] |
参数3 | 过滤条件 | 1)过滤条件可为空,当过滤条件为空时,执行指标的聚合运算没有过滤参与计算 2)过滤条件支持明细级别过滤,支持嵌套指标的过滤(def函数输出的指标),不支持聚合函数作为过滤条件 3)支持设置多个过滤条件,相同层级间的过滤以「且」执行 4)当只有一个过滤条件时,可以不加 [ ] 5)当指定维度为空时,格式为 DEF_SUB(聚合指标,[],[过滤条件1, 过滤条件2,...]) |
注:DEF_SUB 函数不支持输出为维度字段。
1.3 注意事项
函数不支持在明细表和自助数据集中使用。
2. 简单示例
假如分析区域拖入了「地区」和「分类」,如下图所示:
DEF_SUB 的维度为「分析区域的维度」-「指定维度」
场景 | 公式 | 描述 |
---|---|---|
计算每个地区的总销售额 | DEF_SUB(SUM_AGG(销售额),[分类]) | 维度栏上有两个维度,但我们只需要使用「地区」维度,所以将「分类」去掉。
获得每个地区小的销售额 |
3. 实操-加入平均值
我们可以很容易得出 2017 年每个季度各个大区的销售额。那如果如下图我们想加入「每个季度各大区平均销售额」,了解平均值多少的同时,还方便每个大区与平均值进行对比,该如何操做呢?
整理下思路:每个季度各大区的销售额=每个季度的总销售额/大区的个数
1)创建分析主题,添加产品已内置的示例数据。如下图所示:
2)制作组件,展示每个季度各大区的销售额是多少。选择图表类型为「自定义图表」,更改「销售日期」的分组为「年季度」。如下图所示:
3)添加计算字段,计算「每季度各大区的平均销售额」,如下图所示:
我们已经往分析区域拖入了两个维度「销售日期(季度)」「所属大区」
场景 | 公式 | 描述 |
---|---|---|
每个季度的销售额是多少 | DEF_SUB(SUM_AGG(销售额),[所属大区]) |
对每个季度的销售额求和 |
求大区的个数 | DEF(COUNTD_AGG(所属大区)) |
数一数整张表有多少个大区 |
每季度大区的平均销售额是多少 | DEF_SUB(SUM_AGG(销售额),[所属大区])/DEF(COUNTD_AGG(所属大区)) | 每个季度的销售额/大区的个数 |
4)将「每个季度大区平均销售额」拖入图表,在图表属性那里调整它的展现形式为「线」。如下图所示:
至此我们便完成了这个分析。