功能介绍

<< Click to Display Table of Contents >>

当前位置:  制作可视化报告 > 数据处理与分析 > 动态计算 

功能介绍

复制链接

1. 概述

动态计算器指每个格子的数值是动态计算出来的,也可以称为是格间计算。主要用于在表格中沿着特定的方向来动态计算出数值。

2. 为什么用动态计算

制作报告时,我们可能并不需要展示原始数据,而是基于原始数据计算出其他值进行分析,例如:

将值转化为排名

转换值为汇总百分比

转换值为差值百分比

转换值为累积总计

......

3. 基本知识:分区与方向

添加动态计算时,您需要对数据进行分区和定义计算依据

3.1 分区

用于定义计算分组方式(执行表计算所针对的数据范围)的维度称为分区字段,系统在每个分区内单独执行动态计算。例如想做产品关于季度增量的环比计算,就需要把产品字段和季度字段作为分区。

3.2 计算依据

计算依据即沿着特定方向计算,计算依据与表的结构密切相关。

例如,有以下简单销售数据表:

DataProcess_DynamicCalculate1

我们以产品种类为分区,沿着表格纵向,向前依次计算差值,结果如下:

DataProcess_DynamicCalculate2

产品内提供的计算依据包括:表格横向、表格纵向、表格横向然后纵向、表格纵向然后横向、沿平面横向、沿平面纵向、沿平面先横向再纵向、沿平面先纵向再横向、格子、高级。

我们通过一个交叉表案例依次认识不同的计算依据,行表头绑定了年、季度,列表头绑定了产品种类、产品名称,如下图:

DataProcess_DynamicCalculate3

图表组件同样支持动态计算,例如柱图,在列绑定产品种类、产品名称,行绑定年、季度,再绑定利润_总和到列区域,效果如下图:

DataProcess_DynamicCalculate56

表格横向

在每个分组内沿水平方向进行计算,以计算利润_总和差值为例,计算时年和季度为分区,依据每个产品名称按每个季度分别沿横向(产品名称)计算,如下:

DataProcess_DynamicCalculate4

计算时每一行为一个分区,从每行第一个数据开始单独计算差值。

柱形图的计算结果如下图:

DataProcess_DynamicCalculate57

您可以把柱形图看做交叉表,只是将对应的数值用柱形做了渲染,其计算方式跟交叉表一样,都是每个季度分别沿产品名称方向计算差值,然后将结果渲染成柱形,选择其他依据也是类似的。

表格纵向

在每个分组内沿垂直方向进行计算,以计算利润_总和差值为例,计算时产品种类和产品名称为分区,每个产品名称分别沿纵向(季度)计算,如下:

DataProcess_DynamicCalculate5

计算时每一列为一个分区,从每列第一个数据开始单独计算差值。

表格横向然后纵向

在每个分组内先沿水平方向然后沿垂直方向进行计算,以计算利润_总和差值为例,计算时从第一个季度开始先沿横向计算,然后到下一行继续沿横向计算,如下:

DataProcess_DynamicCalculate6

表格纵向然后横向

在每个分组内先沿垂直方向然后沿水平方向进行计算,以计算利润_总和差值为例,计算时从第一个产品名称-伯爵茶开始先沿纵向计算,然后到下一列继续沿纵向计算,如下:

DataProcess_DynamicCalculate7

沿平面横向

在每个平面内沿水平方向进行计算。注意平面是由横向(列表头)绑定的最后一个维度字段的上一层级维度字段确定的,例如“产品名称”的上一层级字段“产品种类”。

以计算利润_总和差值为例,年、季度、产品种类为分区,计算时对每一个平面(产品种类)沿横向(产品名称)分别计算,如下:

DataProcess_DynamicCalculate8

沿平面纵向

在每个平面内沿垂直方向进行计算。注意平面是由纵向(行表头)绑定的最后一个维度字段的上一层级维度字段确定的,例如“季度”的上一层级字段“年”。

以计算利润_总和差值为例,年、产品种类、产品名称为分区,计算时对每一个平面(年)分别沿纵向(季度)计算,如下:

DataProcess_DynamicCalculate9

沿平面先横向再纵向

在每个分区内先沿水平方向然后沿垂直方向进行计算。

以计算利润_总和差值为例,年、产品种类为分区,计算时对每一年的各产品种类分别沿横向(产品名称)计算,然后到下一行继续沿横向计算,如下:

DataProcess_DynamicCalculate10

沿平面先纵向再横向

在每个分区内先沿垂直方向然后沿水平方向进行计算。

以计算利润_总和差值为例,年、产品种类为分区,计算时对每一年的各产品种类分别沿纵向(季度)计算,然后到下一列继续沿纵向计算,如下:

DataProcess_DynamicCalculate11

格子

基于每个格子进行计算,此时年、季度、产品种类、产品名称都是分区,会按照格子顺序依次计算,例如下图:

DataProcess_DynamicCalculate12

高级

选择高级时,可以自定义计算依据的列,并可以指定排序,用户点击高级选项,则会弹出自定义计算依据对话框,如下图所示 :

DataProcess_DynamicCalculate13

【可用的列】可用的列中列出了当前组件中绑定的所有维度字段,包括图表的美化界面中绑定的维度字段。

【计算依据】用户可通过鼠标拖拽来设定计算依据那一个数据段进行分组计算。

【排序】按照计算依据计算出结果以后,您可以设置排序,包括无序、升序、降序,排序依据可以选择列,具体请参考高级排序

例如:

有如下销售数据:

DataProcess_DynamicCalculate58

如果要统计2016年每季度较2015年的增长情况,可以设置计算“差值”,计算依据为“年”,相对于为“向前”,计算依据如下图:

DataProcess_DynamicCalculate59

计算时以年为依据,按年去计算不同产品的利润_总和差值,结果如下图:

DataProcess_DynamicCalculate60

可以看到,2016年1季的伯爵茶计算结果为1179,为原来的2016年1季数据-2015年1季数据=3500-2321=1179。

如果想不区分年份,仅统计每个季度较前一季度的差值,可以把年和季度都设置为计算依据:

DataProcess_DynamicCalculate61

此时会将年、季度当做整体,分别对不同产品计算差值,计算结果如下:

DataProcess_DynamicCalculate62

以伯爵茶的数据为例,可以看到结果为237,942,113,为原数据的每个季度较前一个季度差值。

如果要区分年份,统计每年内不同季度较前一季度的差值,可以把季度设置为计算依据:

DataProcess_DynamicCalculate63

此时会以季度为依据,分别计算每年的不同产品利润_总和差值,结果如下图:

DataProcess_DynamicCalculate64

以2015年第2季结果为例,结果为237,为2015年第2季数据-第1季数据=2558-2321=237。

将所有字段全部设为计算依据,计算效果等同于沿格子计算。

您可以根据实际计算场景,类比上面的方法进行设置。

4.不同组件类型的计算依据

由于表组件只存在列,不存在横向分组,只能设置表格纵向、平面纵向、格子、高级。

交叉表

交叉表可以设置的计算依据跟行表头、列表头有关,例如没有行表头时,不存在纵向分组,只能设置表格横向、平面横向、格子、高级。参考下表:

行表头列数

列表头列数

计算依据

0

≥1

表格纵向、沿平面纵向、格子、高级

≥1

0

表格横向、沿平面横向、格子、高级

≥1

≥1

全部计算依据类型

自由式表格

自由式表格的单元格可以设置横向、纵向父单元格,类似于交叉表的列表头、行表头,一个度量数据同时设置了横纵向父单元格时可以设置上面所有类型的计算依据。

图表

以柱状图为例,可以设置的计算依据由列、行的维度列决定;

当绑定的行区域无维度列时,仅能设置表格横向、沿平面横向、格子,编辑动态计算器时可以设置高级:

DataProcess_DynamicCalculate14

当列、行区域都绑定了维度列时,可以设置所有类型的计算依据:

DataProcess_DynamicCalculate15