You need to enable JavaScript to run this app.
导航

表计算函数说明及常用场景示例

最近更新时间2023.05.26 20:16:56

首次发布时间2021.06.18 15:29:12

1. 使用场景

表计算 即对已生成可视化图表做二次计算。在对基础数据做好汇总后,通过表计算可以对其中数据做二次运算处理。

当我们需要做二次计算时,可以使用表计算来省略一些下载导出再在excel中二次处理的步骤。比如对指标汇总求和、移动计算等。

产品目前支持可视化进行表计算配置,除此之外,也可以通过增加字段,编写表计算函数来实现。本文将对表计算函数进行介绍。同时,将介绍表计算函数的典型应用场景 帕累托图

2. 常见表达式
  • 表计算表达式仅能作为指标应用

  • along的维度必须存在于查询面板中,否则报错

TOTAL( <指标> ) along ( <维度>)

含义: 根据维度求指标总额。该函数通常用于计算总额百分比的场景。

在下述案例中,即通过函数,根据省份维度计算出了每个省份的付款总额。为接下来计算 [每个城市的付款额] 占 [省份付款总额] 的比重,做好了准备。

函数示例: TOTAL(sum([付款金额])) along([城市]),即求所有城市的付款金额总和。如图所示,当图表中存在其他维度(省份)时,则求各省份下所有城市的付款金额总和。

image.png

总额百分比 :以上述案例为例,计算 sum([付款金额])/TOTAL(sum([付款金额])) along([城市]) ,可求得每个城市的付款总额占省份付款总额占比。

image.png

2.1 RUNNING_SUM( <指标> )along( <维度> )

含义: 依据维度滚动求和

示例: RUNNING_SUM(sum([付款金额])) along([城市]),即依据城市滚动求和,如图所示,118,578为临沧和丽江的付款金额和,174,599为临沧、丽江和保山的付款金额和。当图表中存在其他维度(省份)时,则在各省份下,滚动求所有城市的付款金额总和。

image.png

扩展: 除RUNNING_SUM表达式外,还可使用RUNNING_AVG、RUNNING_MIN、RUNNING_MAX滚动求均值/最小值/最大值。例:RUNNING_AVG(sum([付款金额])) along([城市])

image.png

2.2 RANK( <指标> ,'asc'/'desc') along( <维度> )

含义
返回分区中当前行的唯一排名。为相同的值分配相同的排名,允许并列。
使用可选的 “asc” 或者”desc” 参数指定升序或降序顺序。默认为降序。

示例
RANK(sum([利润]), “asc”) along [地区],利用此函数,可以按照地区的利润求和进行升序排名,其中的排名有并列且会跳过并列名次,若销售额分别为(6, 7, 7, 9) 则排名结果为(4, 2, 2, 1)。
image.png
查询结果如下:
image.png

2.3 RANK_PERCENTILE( <指标> ,'asc') along( <维度> )

含义: 依据维度,求指标的正序百分位(将asc替换为dsc求倒序百分位)

示例: RANK_PERCENTILE(sum([付款金额]),'asc') along([城市]),即由低到高计算各个城市付款金额在所在的百分位。当图表中存在其他维度(省份)时,则求各省份下,各城市付款总额在多少百分位上。

image.png

2.4 WINDOW_AVG( <指标> ,start,end) along( <维度> )

含义: 窗口函数。依据维度,计算指标从start到end窗口内所有指标值均值。如start为-1,end为1,则计算指标沿着维度,从前一个到后一个窗口内,三个值的均值。

示例: WINDOW_AVG(sum([付款金额]),-1,1) along([付费日期]),即依据付费日期,计算每天从前一天到后一天的付款金额均值。

image.png

扩展: 除WINDOW_AVG表达式外,还可使用WINDOW_SUM、WINDOW_MIN、WINDOW_MAX窗口求和/最小值/最大值。

常用场景: 查看波动较大的数据趋势时,通过WINDOW_AVG平滑曲线,起到趋势线作用。

image.png

2.5 LOOKUP( <指标> , 偏移量) along( <维度> )

含义: 依据维度,取当前指标位置+偏移量位置的指标值。如偏移量为-1,就是取当前指标前一位指标值。

示例: LOOKUP(sum([付款金额]),-1) along([付费日期]),显示前一天的付款总额。

image.png

3. 经典应用

主要补充无法直接通过分析模块下的表计算功能配置实现,需要用到表计算函数的案例。

3.1 帕累托图

3.1.1 示例

帕累托图包含柱状图和折线图,其中柱降序展示指标数值,折线展示累计百分比。以各类别销售额为例,可以通过绘制帕累托图,显示顶层产品类别的累计占比,确定关键类别。

image.png

3.1.2操作步骤

以子类别的销售额帕累托图为例:选择图表类型为双轴图,将子类别作为维度,销售额作为主轴,确定子类别-销售额图表

image.png

使用分析模块中的排序功能,对销售额降序

image.png

创建累计占比字段,表达式:

running_sum(sum([销售额])) along ([子类别])/total(sum([销售额])) along ([子类别])

为两个表计算函数的组合,通过running_sum函数滚动求和子类别的销售总额,除以所有子类别的销售总额,得出的结果为截至每个子类别的总额累计占比

image.png

将累计百分比字段拖入指标次轴,形成帕累托图。可以使用左侧图表配置,调整坐标轴数据格式,将次轴数据格式改为百分比。

image.png