内容:

计算的类型

  • 版本 :2022.1 及更高版本

适用于: Tableau Desktop, Tableau Online, Tableau Server

本文介绍了您可以在 Tableau 中使用的计算类型。您将了解每个计算和计算方法之间的区别。

可以使用以下三种主要类型的计算在 Tableau 中创建计算字段:

基本表达式

基本表达式允许您在数据源详细信息级别(行级别计算)或可视化项详细信息级别(聚合计算)转换值或成员。

例如,请考虑下面的示例表,其中包含两个奇幻片的作者和他们的书籍的数据。也许您想创建一个只有作者姓氏的列,以及一个显示每个系列中有多少本书的列。

书籍 ID书籍名称系列发行年份作者
1《狮子、女巫和衣橱》纳尼亚传奇1950C.S.Lewis
2《凯斯宾王子:重返纳尼亚》纳尼亚传奇1951C.S.Lewis
3《黎明踏浪号》纳尼亚传奇1952C.S.Lewis
4《银椅》纳尼亚传奇1953C.S.Lewis
5《奇幻马和传说》纳尼亚传奇1954C.S.Lewis
6《魔法师的外甥》纳尼亚传奇1955C.S.Lewis
7《最后的战役》纳尼亚传奇1956C.S.Lewis
8《森林的女儿》Sevenwaters1999Juliet Marillier
9《阴影之子》Sevenwaters2000Juliet Marillier
10《预言之子》Sevenwaters2001Juliet Marillier
11《七水之继承人》Sevenwaters2008Juliet Marillier
12《七水之先知》Sevenwaters2010Juliet Marillier
13《七水之火》Sevenwaters2012Juliet Marillier


行级计算

若要创建一个显示数据源中每行的作者姓氏的列,可以使用以下在空格上拆分的行级别计算:

SPLIT([Author], '', 2 )

可以在下面看到结果。标题为“作者姓氏”的新列显示在最右侧。颜色显示了执行计算的详细级别。在本例中,计算是在数据源的行级别执行的,因此每个行都单独着色。

书籍 ID书籍名称系列发行年份作者作者姓氏
1《狮子、女巫和衣橱》纳尼亚传奇1950C.S.LewisLewis
2《凯斯宾王子:重返纳尼亚》纳尼亚传奇1951C.S.LewisLewis
3《黎明踏浪号》纳尼亚传奇1952C.S.LewisLewis
4《银椅》纳尼亚传奇1953C.S.LewisLewis
5《奇幻马和传说》纳尼亚传奇1954C.S.LewisLewis
6《魔法师的外甥》纳尼亚传奇1955C.S.LewisLewis
7《最后的战役》纳尼亚传奇1956C.S.LewisLewis
8《森林的女儿》Sevenwaters1999Juliet MarillierMarillier
9《阴影之子》Sevenwaters2000Juliet MarillierMarillier
10《预言之子》Sevenwaters2001Juliet MarillierMarillier
11《七水之继承人》Sevenwaters2008Juliet MarillierMarillier
12《七水之先知》Sevenwaters2010Juliet MarillierMarillier
13《七水之火》Sevenwaters2012Juliet MarillierMarillier


聚合计算

要创建一个列来显示每个系列中有多少本图书,可以使用以下聚合计算:

COUNT([Series])

可以在下面看到结果。标题为“系列丛书数量 - 在系列详细级别”的新列介绍了如何在视图的系列详细级别执行该计算。颜色帮助显示了执行计算所在的详细级别。

系列系列丛书数量 - 在系列详细级别
纳尼亚传奇7
纳尼亚传奇
纳尼亚传奇
纳尼亚传奇
纳尼亚传奇
纳尼亚传奇
纳尼亚传奇
Sevenwaters6
Sevenwaters
Sevenwaters
Sevenwaters
Sevenwaters
Sevenwaters


在 Tableau 中,数据如下所示:

但是,如果拖动“书籍 ID”(这是一个更精细的字段),则计算会根据该新粒度进行更新,因为会在可视化项详细级别执行聚合计算。

详细级别 (LOD) 表达式

就像基本表达式一样,LOD 表达式允许您在数据源级别和可视化项级别计算值。但是,LOD 表达式可以让您更好地控制要计算的粒度级别。它们可以在较高粒度级别(包括)、较低粒度级别(排除)或完全独立级别(固定)执行。

有关详细信息,请参见在 Tableau 中创建详细级别表达式(链接在新窗口中打开)

例如,考虑与上面相同的示例表。如果您想计算书籍系列的启动时间,则可以使用以下 LOD 表达式:

{ FIXED [Series]:(MIN([Year Released]))}

可以在下面看到结果。标题为“系列启动时间”的新列显示了每个系列的最早年份。颜色帮助显示了应用计算所在的详细级别。

书籍 ID书籍名称系列发行年份作者系列启动时间
1《狮子、女巫和衣橱》纳尼亚传奇1950C.S.Lewis1950
2《凯斯宾王子:重返纳尼亚》纳尼亚传奇1951C.S.Lewis1950
3《黎明踏浪号》纳尼亚传奇1952C.S.Lewis1950
4《银椅》纳尼亚传奇1953C.S.Lewis1950
5《奇幻马和传说》纳尼亚传奇1954C.S.Lewis1950
6《魔法师的外甥》纳尼亚传奇1955C.S.Lewis1950
7《最后的战役》纳尼亚传奇1956C.S.Lewis1950
8《森林的女儿》Sevenwaters1999Juliet Marillier1999
9《阴影之子》Sevenwaters2000Juliet Marillier1999
10《预言之子》Sevenwaters2001Juliet Marillier1999
11《七水之继承人》Sevenwaters2008Juliet Marillier1999
12《七水之先知》Sevenwaters2010Juliet Marillier1999
13《七水之火》Sevenwaters2012Juliet Marillier1999


在 Tableau 中,由于使用了 FIXED 函数,因此计算保持在系列详细级别。

为《纳尼亚传奇》显示日期 1950 并为《七水》显示日期 1999 的可视化项

如果向视图添加另一个字段(这会增大粒度),则与聚合计算不同,计算值不会受到影响。

为所有《纳尼亚》图书重复显示 1950 年日期并为所有《七水》图书重复显示 1999 年日期的可视化项

表计算

表计算仅允许您在可视化项详细级别转换值。

有关详细信息,请参见使用表计算转换值(链接在新窗口中打开)

例如,考虑与上面相同的示例表。如果您想要计算自作者发布上一本书以来的年数,则可以使用以下表计算:

ATTR([Year Released]) - LOOKUP(ATTR([Year Released]), -1)

结果如下所示。标题为“自上一本书以来的年数”的新列显示了该行中发行的书与上一行(列的最右侧)中发行的书之间的年数,并(在列的左侧)演示了如何计算表计算。

颜色有助于演示表计算如何运算。在本例中,系统按每个窗格进行表计算。

注意:根据表计算以及如何在整个表中进行计算,结果可能会有所不同。有关详细信息,请参见使用表计算转换值(链接在新窗口中打开)

书籍 ID书籍名称系列发行年份作者自上一本书以来的年数
1《狮子、女巫和衣橱》纳尼亚传奇1950C.S.LewisNull
2《凯斯宾王子:重返纳尼亚》纳尼亚传奇1951C.S.Lewis1951-19501
3《黎明踏浪号》纳尼亚传奇1952C.S.Lewis1952-19511
4《银椅》纳尼亚传奇1953C.S.Lewis1953-19521
5《奇幻马和传说》纳尼亚传奇1954C.S.Lewis1954-19531
6《魔法师的外甥》纳尼亚传奇1955C.S.Lewis1955-19541
7《最后的战役》纳尼亚传奇1956C.S.Lewis1956-19551
8《森林的女儿》Sevenwaters1999Juliet MarillierNull
9《阴影之子》Sevenwaters2000Juliet Marillier2000-19991
10《预言之子》Sevenwaters2001Juliet Marillier2001-20001
11《七水之继承人》Sevenwaters2008Juliet Marillier2008-20017
12《七水之先知》Sevenwaters2010Juliet Marillier2010-20082
13《七水之火》Sevenwaters2012Juliet Marillier2012-20102


在 Tableau 中,数据如下所示:

为每本书显示自上一本书以来的正确年份的可视化项

但是,如果以影响布局的方式更改可视化项,例如从视图中移除维度,则计算值会发生变化。

例如,在以下图像中,从可视化项中移除了“作者”。由于表计算是按窗格计算的,因此移除“作者”会更改可视化项的粒度和布局(这里只有一个窗格,而不是两个窗格)。因此,表计算会计算介于 1956 年到 1999 年之间的时间。

为《七水》图书显示自上一本书以来的不正确年份的可视化项


继续选择正确的计算类型