Tableau有几个特别关键的地方,一个是理解视图和详细级别,另一个是理解计算和表达式。视图构建我们看得见的框架,计算是构建骨架所需要的材料。

1,数据源与虚拟表

数据源对应一个实际的数据表,视图也对应一个虚拟表,虚拟表表结构受限于视图的详细级别。

计算字段和LOD表达式计算是基于数据源的,因此不会完全受限于视图详细级别生成的虚拟表;而表计算则不同,表计算完全是基于视图结果而运行。

Specifically, the virtual table is determined by the dimensions within the “level of detail,” which means the dimensions on any of the following shelves or cards in a Tableau worksheet:

2、与数据源相关的计算

关于数据源与计算的关系,有一个很好的观察的视角,就是Tableau的数据源文件 .tds (Tableau data source),我们看一下这个文件中包含的内容:

数据源( .tds) – 包含连接到数据源所需的信息,包括以下内容:

  • 数据源类型
  • 在数据源页面中指定的连接信息,例如,数据库服务器地址、端口、本地文件的位置、 表
  • 组、集、计算字段、数据桶
  • 默认字段属性,例如,数字格式、聚合和排序顺序

你会发现,在数据源文件中,与数据源相关的设置和字段,特别是数据连接;以及数据源字段相关的所有用户自定义设置,包括组group、集set、计算字段calculated fields、数据桶bins,还有字段属性,都会把保存。

为什么表计算不在数据源文件中?因为它和数据源没有关系,它是基于视图的。同样,筛选器、参考线、预测线,也都是基于视图的。它们在Tableau的操作顺序中,都排在视图筛选器之后。

因此,在选择计算时,可以从这个角度考虑。

— 与数据源相关的用户自定义

— 与视图相关的用户自定义

 

3、如何选择计算

从计算性能的角度看,任何时候,都优先选择表计算;其次才考虑计算字段和LOD表达式。LOD表达式就像视图中的筛选器,是要运行时直接访问数据源的,所以多个LOD和多个筛选器一样都会影响性能。

可以把LOD表达式和筛选器都理解为独立的SQL操作。

具体如何选择,参考另一篇博客 :【tableau】如何选择Tableau计算类型?

 

4、【补充】 Spotlighting calculation 聚焦计算

在可视化分析中,我们经常需要使用计算区分不同的数据,比如利润为负数的商品标记为红色,或者把80后会员单独标记出来,这就需要计算字段实现聚焦数据。

常见的办法就是使用if类型的函数创建自定义字段,相当于按照特定的标准给所有数据库数据打标签,比如说: IIFSUM([profits])>0,’盈利’,’亏损’) 然后我们把这个字段拖入到标记卡的颜色中,就可以区分两类产品。

当然,如果只是区分两种情况,可以用更加简单的办法,直接输入“临时计算字段”返回布尔值就好,一正一负两个布尔值会对应两个不同的颜色。

Screen Shot 2018-11-25 at 20.35.30.png

 

5、Ad-Hoc Calculations 临时计算

临时计算是Tableau“所见即所得”的一大特色功能,随时输入计算字段,就会直接给予可视化的反馈,特别适合于测试想法、尝试假设时。

  • 双击现有字段以开始编辑。

  • 也可以双击空功能区或功能区上的空白部分以创建新计算。
  • 键入以更新表达式,或将新字段从“数据”窗格或视图中的其他位置拖到表达式中。
  • 按 Enter、Tab 或在表达式外部单击以提交表达式,关闭计算,并更新视图。按 Ctrl+Enter(或在 Mac 上按 Command+Enter)以提交表达式并更新视图,而不关闭计算。

 

特别好用的一个地方时,临时计算可以代替标题,仅需要在首行添加“//”表示这是注释即可。多行语句中首行会被默认显示。比如说,输入以下计算语句到临时计算中:

//营业时间
DATEDIFF(‘day’,MIN([order date]),MAX([order date])

 

 

Tableau计算系列

 

7 Oct 2018 更新
Nov 6, 2018
Nov 25, 2018 update 4/5