tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

一、 表计算是什么?

表计算是指不通过数据源进行直接计算,而是借助中间表计算得出结果的计算,其基本特征是基于视图中聚合数据的二次聚合计算。

二、 分区与寻址的概念

要了解表计算,必须先了解——分区与寻址

分区 partitioning:分区规定了表计算的范围。每个分区就是一个单独的”表”,每个计算都是在独立的表中进行的。各个表在计算时没有关系,互不影响。

寻址 addressing:寻址规定了每个分区的源(锚点)(读mao),它定义了表计算的根节点,指明了计算的方向。

举个栗子<

  1. 制作中间表(视图)

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

视图中的每一个值表示:各个类别在不同季度的销售额之和。

  1. 添加表计算

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

两者任选其一, 进行合计百分比。

合计百分比是指某一部分占总体的比重是多少。
计算公式:sum([销售额])/total(sum([销售额]))
分子:是每一个 单元格的值
分母:每一个 分区的总和

最终视图如下:

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算
  1. 修改分区和寻址的方式

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

3.1 表(横穿)table across

意义:在每个季度中,各类别销售额占比情况

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

3.2 表(向下)table down

意义:各类别的销售额在各季度占比情况。

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

3.3 表 across then down

意义:各类别的各季度在总销售额的占比情况

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

3.4 区(横穿)pane across

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

3.5 区向下 pane down

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

3.6 区 pane (across then down)

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

3.7 单元格(cell)

3.8 特定维度

四、 表计算的分类

表计算可以分为快速表分类和手动表分类。

1.索引排序函数:
index()、size()、first()、last()。这四个函数不需要参数;
rank()以及延伸函数。如rank_dense()、rank_modified()等。
2.移动计算函数:
running_x。比如running_sum、running_avg、running_max等。
3.范围计算函数:
window_x。比如window_sum、window_avg、window_max等。

4.1 手动表计算

  1. total(expression)计算

total()是为每一个分区返回同一个结果,也就是说,total为各个分区求和,每个分区返回同一个数值。

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算
  1. running_sum(expression) 递归计算

对于同一个分区的不同行,running_sum()返回不同的数值

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算
  1. 索引排序函数

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

first():返回当前行到第一行的偏移行数
last():返回当前行到分区最后一行的偏移行数
size():返回分区的行数
index():返回分区的当前行索引

  1. window_sum(expression,[start,end])

在手动表计算中,window_x函数是使用最多的。

total(expression)=window_sum(expression)
running(expression)=window_sum(expression,first(),0)
移动平均=window_sum(expression,start,end)

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算
  1. previous_value(expression) 返回前一个值

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算
  1. lookup(expression,[offset]) 返回目标行的值

tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

4.2 快速表计算

tableau内置了部分常用的表计算,称之为”快速表计算”,这些快速表计算视为预设好的表计算表达式,使用了上面介绍的lookup、first等快速表计算。

比如:总额百分比=sum([销售额])/total(sum([销售额]))

A 常见快速表计算

第一类的快速表计算与日期无关,常见的七种快速表计算的基本对应关系如下:

1.汇总=running_sum(sum([销售额]))

2.差异=zn(sum([销售额]))-lookup(zn(sum([销售额])),-1)

3.差异百分比=(zn(sum([销售额]))-lookup(zn(sum([销售额])),-1))/abs(lookup(zn(sum([销售额])),-1))

4.总额百分比=sum([销售额])/total(sum([销售额]))

5.排序=rank(sum([销售额]))

6.百分位=rank_percentile(sum([销售额]))

7.移动平均=window_avg(sum([销售额]),-2,0) (前两位到当前)

B 日期类快速表计算

另外四个快速表计算是基于连续时间的,其中前三个需要详细级别至少到”年”,当存在多个日期维度时,分区字段默认为最低的详细级别的字段,比如有年、季度,则以季度为计算。

使用日期类表计算有一个前提: 视图中必须有相应的日期字段
年度累计、年度同比:详细级别必须是
YTD累计、YTD同比:详细级别必须是想表达的D, 比如month或者day,不能是年

1.年度累计=running_sum(sum([销售额]))

2.复合增长率=power(zn(sum([销售额])) /lookup(zn(sum([销售额])),first)),zn(1/(index(-1)))-1

3.年度同比

C 特殊类—二次表计算

在表计算中,比较特殊的是最后一个”年度累计增长率”,YTD Growth,当我们添加这个表计算,并拖入到度量中时,会发现度量中出现了两个计算字段。中文下是”计算10″和”计算10 1″(10代表的是第10次通过拖动生成的计算字段)。为什么?因为年度累计增长率是二次表计算,虽然也可以在一个公式中表明,但这样更有助于用户看清楚。我们将两个表计算改成YTD SUM计算累计绝对值和YTD GROWTH累计增长率

累计绝对值=running_sum(sum([销售额]))

累计增长率=(zn([累计绝对值])-lookup(zn(累计绝对值)),-1))/abs(lookup(zn(累计绝对值)),-1))

五、总结

表计算是一种高效而快速的tableau计算,它有几个显而易见的好处:

  1. 不需要读取数据源,因此计算更快,真正的所见即所得

  2. 可以一个计算字段返回多个数值,因此在执行移动运算、递归运算、自身运算等情形下,是其他计算不可替代的

  3. 预设的快速计算和二次计算方法,基本满足大多数需求,无需代码开发,学习成本低

使用表计算,需要注意的地方:

  1. 表计算在操作顺序中的优先级低于所有的筛选器,因此调整筛选器后,表计算都会根据新的视图数据重新计算,因此要特别注意数据的详细级别,如果视图中没有了去年的数据,表计算的YTD就无法运行

  2. 编辑表计算时需要理解分区和寻址这两个概念,这是表计算的逻辑基础,分区隔离了表计算,寻址确定了运行的顺序。

Original: https://blog.csdn.net/weixin_48364917/article/details/124064132
Author: 李扬洋
Title: tableau计算之(三)表计算——分区/寻址——手动计算/快速计算

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/694159/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球