1. 概述
1.1 版本
FineBI版本 | 功能变动 |
---|---|
7.0 | - |
1.2 函数简介
语法 | SUB_DIM(维度字段1,维度字段2...) | 返回指定视图中除去函数声明的其他维度 指定视图定义:
|
---|---|---|
参数 | 维度字段1,维度字段2... | 支持书写多个维度表达式,表达式之间通过“,”进行区分 参数可以为空,为空则输出指定视图的全部维度 |
1.3 注意事项
函数需要配合 DEF/WINDOW/FIELD_IN 使用。
2. 示例
下载示例数据:表格图表_办公用品销售数据.xlsx
2.1 配合 WINDOW 实现组内行间计算
2.1.1 应用场景
例如月累计销售额场景中,不同角色和分析需求关注的维度不同,需要依据不同的分析需求调整维度,查看月累计销售额。
角色/场景 | 分析需求 | 维度 |
---|---|---|
cfo | 分析地区月累计销售额 | 省份、城市 |
进货预测 | 分析商品月累计销售额 | 大类、产品名称 |
WINDOW 的分组维度没法动态的随着用户在分析区的调整保持始终正确的逻辑,维度在省份、城市和大类、产品名称间切换时,需更改计算字段。
运用 SUB_DIM 函数后,无需调整计算字段,只需更换维度,即可查看相应的月累计销售额。
2.1.2 实现思路
WINDOW_SUM 配合 SUB_DIM 实现组内行间计算,用「一份数据模型」适应不同维度的月累计销售额展示需求
月累计销售额动态字段=WINDOW_SUM(SUM_AGG(销售额),[SUB_DIM(签约时间)],[签约时间],["first",0])
2.1.3 操作步骤
1)准备分析维度:
在分析区依次拖入维度字段「省份」「城市」「签约时间」,并设置「签约时间」按「年月」分组。如下图所示:
2)计算组内年月累计销售额:
添加计算字段,计算动态月累计销售额,如下图所示:
组内年月累计销售额=WINDOW_SUM(SUM_AGG(销售额),[SUB_DIM(签约时间)],[签约时间],["first",0])
步骤 | 公式 | 说明 |
---|---|---|
计算指标:销售额之和 | SUM_AGG(销售额) | 基础聚合函数,计算销售额的总和 详情见文档:聚合函数概述 |
按分析区维度字段分组(排除签约时间) | [SUB_DIM(签约时间)] | SUB_DIM 通常表示返回外部视图的维度,且需排除函数声明里的维度。此处返回分析区除了签约时间的字段:省份、城市,在 WINDOW 函数中按省份、城市分组 |
指定按签约时间排序 | [签约时间] | 按签约时间进行升序排列 详情见文档:WINDOW_SUM-跨行求和/求累计 |
求累计 | ["first",0] | 窗口范围参数,定义窗口的起始和结束位置 "first"表示从分区的第一行开始 0 表示到当前行结束 详情见文档:WINDOW_SUM-跨行求和/求累计 |
计算指定窗口范围内的汇总值 | WINDOW_SUM(SUM_AGG(销售额),[SUB_DIM(签约时间)],[签约时间],["first",0]) |
详情见文档:WINDOW_SUM-跨行求和/求累计 |
3)将「组内年月累计销售额」拖入分析区,完成分析。如下图所示:
2.1.4 效果预览
计算指定窗口范围内的累计值。可查看每个月省份到城市的组内累计销售额,如下图所示:
维度切换:例如切换「签约时间」前的维度为「大类」「产品名称」,会自动展示每个产品的月累计销售额,如下图所示:
2.2 配合DEF+EARLIER实现组内行间计算
2.2.1 应用场景
例如月累计销售额场景中,不同角色和分析需求关注的维度不同,需要依据不同的分析需求调整维度,查看月累计销售额。
角色/场景 | 分析需求 | 维度 |
---|---|---|
cfo | 分析地区月累计销售额 | 省份、城市 |
进货预测 | 分析商品月累计销售额 | 大类、产品名称 |
DEF+EARLIER 的分组维度没法动态的随着用户在分析区的调整保持始终正确的逻辑,维度在省份、城市和大类、产品名称间切换时,需更改计算字段。
运用 SUB_DIM 函数后,无需调整计算字段,只需更换维度,即可查看相应的月累计销售额。
2.2.2 实现思路
DEF+EARLIER 配合 SUB_DIM 实现组内行间计算,用「一份数据模型」适应不同维度的月累计销售额展示需求
月累计销售额动态字段=DEF_ADD(SUM_AGG(销售额),[],[EARLIER(SUB_DIM(签约时间-月))=SUB_DIM(签约时间-月),月份<=EARLIER(月份)])
2.2.3 操作步骤
1)处理数据表:
我们希望由小月份到大月份对销售额进行累计,为了能够月份之间方便进行比较,我们可以在处理数据表的时候就提取「年份」「月份」。
点击获取时间,获取「订单日期」的年份,如下图所示:
点击获取时间,获取「订单日期」的月份,如下图所示:
完成后点击保存更新。
2)准备分析维度:
复制两次「签约时间」维度,重命名为「签约时间-年」「签约时间-月」
在分析区依次拖入维度字段「省份」「城市」「签约时间-年」「签约时间-月」,并设置「签约时间-年」按「年」分组,「签约时间-月」按「月份」分组,如下图所示:
3)计算组内年月累计销售额:
添加计算字段,计算动态月累计销售额。如下图所示:
组内年月累计=DEF_ADD(SUM_AGG(销售额),[],[EARLIER(SUB_DIM(签约时间-月))=SUB_DIM(签约时间-月),月份<=EARLIER(月份)])
步骤 | 公式 | 说明 |
---|---|---|
计算销售额之和 | SUM_AGG(销售额) | 基础聚合函数,计算销售额的总和 详情见文档:聚合函数概述 |
获取分析维度 | [] | 自动获取分析区拖入的维度字段 |
进行条件分组并获取组内指定行的销售额 | [EARLIER(SUB_DIM(签约时间-月))=SUB_DIM(签约时间-月),月份<=EARLIER(月份)] 注:当 SUB_DIM() 位于 DEF 的 非维度参数时 ,返回当前视图维度。示例返回的是 DEF_ADD 维度参数引用的分析区字段 - 「签约时间-月」 |
|
计算分组下按月累计销售额 | DEF_ADD(SUM_AGG(销售额),[],[EARLIER(SUB_DIM(签约时间-月))=SUB_DIM(签约时间-月),月份<=EARLIER(月份)]) | 满足过滤条件并按分析区域中的维度对指标进行计算 详情见文档:DEF_ADD |
2.2.4 效果预览
将「组内年月累计」拖入分析区,完成分析,可查看每个月省份到城市的累计销售额,如下图所示:
维度切换:例如切换「签约时间-年」「签约时间-月」前的维度为「大类」「产品名称」,会自动展示每个产品的月累计销售额,如下图所示: