chentianwei

计算:

  • 常规计算:向数据源发出计算请求,数据源计算后,tableau接收计算结果集。比如销售-成本
  • 表计算:基于返回的结果集的二次分析计算。原数据“group by”后对聚合的数据的各种分析,tableau称为"表计算"

 

表计算

参考了https://zhuanlan.zhihu.com/p/60641444

本数据:是tableau desktop的已保存数据:“世界指标”

 

这是一个聚合表。以地区+年份分组: 求列“人均医疗”的和。

表计算就是真对这个聚合表中的“聚合的数据”进行二次分析计算

  1. 右键单击“总和(人均医疗)”,选择“编辑表计算”。确定计算类型:“排序”
  2. 确定“计算依据”:“特定维度”。特定维度就是指参与了数据划分的“维度”。
    • ☑️的"维度": 对数据进行第2次分组。
    • 没有☑️的“维度”,对数据进行第一次分组。
    • 对第二次分组的数据,用已经选择好的计算类型进行计算。第一次分组只是隔离,第二次分组的数据,才会参与二次运算。

 

本例子比如:

计算类型:排序(降序)

计算依据:特定维度:☑️区域+☑️年份

所以,每行记录都被单独的分出来,然后对他们按照数值大小降序排序--不是真的排序,而是用数字代表排序的顺序。

 

还是本例子,比如:

计算类型:排序(降序)

计算依据:特定维度:☑️区年份

  1. 首先,把数据按照区域划分开。
  2. 然后,每个区域的数据再按照“年份”二次划分。
  3. 最后,对二次划分的数据,按照降序排序。因为是降序,2011年数据数值最大,所以2011年数据赋予“数号:1”

 

 

还是本例子,如果:

计算类型:排序(降序)

计算依据:特定维度:☑️区域

  1. 首先,把数据按照“年份”进行一轮划分。即每年的记录分到一组中,比如2000年的记录算一组。
  2. 然后,每组数据按照“区域”进行而论划分
  3. 最后,对每条数据进行排序(降序)。

 

 

 

 

使用参数来改变字段

1.创建参数

2.创建计算字段

3.在图表上使用计算字段

4.使用“参数控件”,并可以设置它的格式。

 

 这是创建计算字段的图。

 

分析客户在6个月之内,进行第2次购买,未购买,6个月之后购买的比率

本题思路和步骤:

  1. 创建首次购买的计算函数 
    • {FIXED [Customer ID]: MIN([Order Date])}
    • ⚠️这里的fixed相当于MySQL的group by后使用聚合函数
  2. 创建第2次购买的计算函数
    • {FIXED [Customer ID] : MIN(IF [Order Date] > [ First Order Date]
      THEN [Order Date]
      END)}

  3. 创建上面2者的差值的计算函数:"Repeat Purchasing"
    • IF [Months to Second Purcase] >= 6 then "More than 6 months"
      ELSEIF [Months to Second Purcase] < 6 then "Within 6 month"
      ELSE "No second purchase"
      end
  4. 创建一个文件夹,把这3个计算函数放到一起。
  5. 把他们放到图表的列上或行上,显示效果不同。
  6. 新建工作表,行为"Repeat Purchasing", 列为“Customer ID”并选择它的属性为“计数”+快速表计算->"合计百分比"

 

详细级别表达式-分组表达式 Level of Detail Expressions(LOD)

 

 

 

{FIXED [订单 ID]: SUM([利润])}

这是一个详细级别表达式:它由fix关键字和聚合函数sum组成。

详细级别表达式的关键字有3种:

  • fixed:  只按照表达式内的字段来分组
  • include: 除了按照表达式内的字段分组,还会考虑到视图中的维度字段来分组。
  • exclude:排除指定的维度。

 

fixed和include不同的用处:

{FIXED [订单 ID]: SUM([利润])}

  • 如果id是唯一的,那么fixed和include会得出相同的结果。
  • 如果id不是唯一的,就用include.
    • 不唯一是指:一个id有多条记录。

上面的例子中,如果表格内有相同的

分类:

技术点:

相关文章: