功能介绍

<< Click to Display Table of Contents >>

当前位置:  可视化数据计算和交互分析 > 数据处理与分析 > 动态计算 

功能介绍

复制链接

1. 概述

动态计算器是根据视图的数据是动态计算出来的,也可以称为是格间计算。它沿着特定的方向按动态计算方法算出数值。动态计算有两个要素,即计算依据,和计算方法 (或函数)。

2. 为什么用动态计算

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

将值转化为排名

转换值为汇总百分比

转换值为差值百分比

转换值为累积总计

......

3. 基本知识:分区

添加动态计算时,您需要了解分区和计算依据。

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

4. 基本知识:计算方向

计算依据即沿着特定方向计算,计算依据与视图的绑定结构密切相关。如果想做产品关于季度增量的环比计算,就需要把产品字段和季度字段作为分组,沿着季度字段来计算。我们把分组叫做分区 (Partition),沿着什么方向叫做基于的方向(Addressing)。

对于差值、百分比、差值百分比、累积总计、移动计算,产品内提供的计算依据包括:表(横向)表(纵向)表(横向,然后纵向)表(纵向,然后横向)区(横向)区(纵向)区(横向,然后纵向)区(纵向,然后横向)高级维度

对于汇总百分比、排名计算、百分位计算,这三种计算跟表或区范围内的方向无关,也就是(横向、然后纵向)和(纵向、然后横向)的结果一样,所以进行了合并,产品内提供的计算依据包括:表(横向)表(纵向)区(横向)区(纵向)高级维度

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

dataprocess_dynamiccalculate3_zoom85

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

dataprocess_dynamiccalculate56_zoom95

4.1表(横向)

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

dataprocess_dynamiccalculate4_zoom85

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

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

dataprocess_dynamiccalculate57_zoom96

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

4.2表(纵向)

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

dataprocess_dynamiccalculate5_zoom85

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

4.3表(横向,然后纵向)

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

dataprocess_dynamiccalculate6_zoom85

4.4表(纵向,然后横向)

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

dataprocess_dynamiccalculate7_zoom85

4.5区(横向)

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

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

dataprocess_dynamiccalculate8_zoom85

4.6区(纵向)

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

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

dataprocess_dynamiccalculate9_zoom85

4.7区(横向,然后纵向)

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

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

dataprocess_dynamiccalculate10_zoom96

4.8区(纵向,然后横向)

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

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

dataprocess_dynamiccalculate11_zoom105

4.9维度

可以在计算依据中直接快速选择维度进行计算,也可以编辑动态计算器,在高级中指定维度进行计算(见下方“4.10高级”部分内容)

示例:

行/列绑定市场级别,颜色绑定市场分布,计算选择汇总百分比:

如果维度选择市场分布,则计算每个市场级别下每个市场分布的销售额占比,每个饼图加起来100%。

dataprocess_dynamiccalculate65

如果维度选择市场级别,则计算每个市场级别的销售额占比,同颜色的加起来100%。

dataprocess_dynamiccalculate_dimension

4.10高级

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

dataprocess_dynamiccalculate13_zoom86

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

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

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

例如:

有如下销售数据:

dataprocess_dynamiccalculate58_zoom80

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

dataprocess_dynamiccalculate59_zoom80

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

dataprocess_dynamiccalculate60_zoom80

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

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

dataprocess_dynamiccalculate61_zoom80

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

dataprocess_dynamiccalculate62_zoom80

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

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

dataprocess_dynamiccalculate63_zoom80

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

dataprocess_dynamiccalculate64_zoom80

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

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

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

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

由于表组件只存在列,不存在横向分组,只能设置表(纵向)、区(纵向)、维度和高级。

维度列

计算依据

=1

表(纵向)高级维度

>1

表(纵向)区(纵向)高级维度

交叉表

交叉表可以设置的计算依据跟行表头、列表头有关,例如没有行表头时,不存在纵向分组,只能设置表格横向、平面横向、格子、维度、高级。差值、百分比、差值百分比、累积总计、移动计算参考下表。汇总百分比、排名计算、百分位计算同理,只是表(横向,然后纵向)、表(纵向,然后横向)合并成了表,表(横向,然后纵向)、表(纵向,然后横向)合并成了区。

行表头列数

列表头列数

计算依据

0

=1

表(横向)高级维度

0

>1

表(横向)区(横向)高级维度

=1

0

表(纵向)高级维度

≥1

0

表(纵向)区(纵向)高级维度

=1

=1

表(横向)表(纵向)表(横向,然后纵向)表(纵向,然后横向)高级维度

>1

=1

表(横向)表(纵向)表(横向,然后纵向)表(纵向,然后横向)区(纵向)区(横向,然后纵向)区(纵向,然后横向)高级维度

=1

>1

表(横向)表(纵向)表(横向,然后纵向)表(纵向,然后横向)区(横向)区(横向,然后纵向)区(纵向,然后横向)高级维度

>1

>1

表(横向)表(纵向)表(横向,然后纵向)表(纵向,然后横向)区(横向)区(纵向)区(横向,然后纵向)区(纵向,然后横向)高级维度

自由式表格

自由式表格中

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

图表

以柱状图为例,可以设置的计算依据由列、行和度量组的维度列决定。也跟具体的计算方式有关,参考交叉表说明。

当绑定的行区域和度量组无维度列时,仅在列绑定1个维度时,仅能设置表(横向)、高级、维度,编辑动态计算器时可以设置高级。

当列、行区域都绑定了1维度列,度量组无绑定时,可以设置表(横向)、表(纵向)、表(横向,然后纵向)、表(纵向,然后横向)、高级、维度。

5. 高级属性设置

5.1. “动态计算时,空值按零参与计算”

普通表、自由表、交叉表组件的【设置 > 高级】中,V10.1版本增加“动态计算时,空值按零参与计算”。

dashboard_dynamic_computing_optimization_zoom80

使用场景:计算汇总百分比时,空值统一当0处理。如下勾选和不勾选“动态计算时,空值按零参与计算”,汇总百分比的计算对比。例如二级市场、河南的销量数据为空,默认情况下,空值参与计算后还是空。勾选“动态计算时,空值按零参与计算”后,空值当作零计算。

dashboard_dynamic_computing_optimization_1_zoom82

 

5.2. “动态计算时,不存在的值按空值处理”

dashboard_dynamic_computing_optimization_3_zoom80

交叉表组件的【设置 > 高级】中,V10.1版本增加 “动态计算时,不存在的值按空值处理”。

使用场景:交叉表pivot造成的不存在的交叉维度数据,动态计算时按0处理。如下勾选和不勾选“动态计算时,不存在的值按空值处理”和“动态计算时,空值按零参与计算”的差值计算对比。例如没有广东、二级市场的销量数据,交叉之后所在的格子数据不存在。当勾选“动态计算时,不存在的值按空值处理”,不存在的值当作空值处理,空值参与计算后还是空;同时勾选“动态计算时,空值按零参与计算”后,空值当作零计算。

dashboard_dynamic_computing_optimization_2_zoom82

5.3. “动态计算时,小计和明细数据分区保持一致”

dashboard_dynamic_computing_optimization_4_zoom80

交叉表组件的【设置 > 高级】中,V11.0版本增加 “动态计算时,小计和明细数据分区保持一致”。

使用场景:以下图为例,在交叉表中计算“销售额_总和”的“汇总百分比”。计算依据为“区(横向)”,

dashboard_dynamic_computing_optimization_5_zoom50

如果希望每个区域(即市场级别)下的小计为100%,则勾选上 “动态计算时,小计和明细数据分区保持一致”。如果不勾选,则是将小计的值单独计算占比,即小计之和为100%,如下图。

dashboard_dynamic_computing_optimization_6_zoom50