跳至正文

《数据可视化分析》(第2版)勘误表

更新:Jul 5, 2024
更新:Mar 29, 2026

第四次印刷勘误(含历史版本) 202603

感谢读者@荠菜 指正 本环节的错误,属于笔者的重大知识错误,将在后续版本修订。

第十章 LOD表达式中,嵌套LOD“内层的聚合,会自动引用外层的LOD限定条件” ,仅仅适用于Include和exclude LOD语法,而不是适用于FIXED LOD语法——FIxed LOD仅仅受它指定的维度所决定的详细级别控制。

因此,如下内容中,红色部分是错误的。

10.5.3  嵌套LOD的语法和SQL表示

在使用嵌套LOD完成多遍聚合时,嵌套的引用详细级别(Reference LOD)是相互影响的,规则是:内层的聚合,会自动引用外层的LOD限定条件。因此,如下两个表达式是完全相同的。

同理,如果外层LOD表达式依据使用了“INCLUDE 客户”,那么内层可以忽略外层条件,因此,如下的两个表达式是等价的。

因此,在使用嵌套LOD计算时要特别注意。此时,减少自定义的字段,将全部语法写在一个过程中,是非常有必要的。

理解了上述过程,高级用户可以尝试理解一下嵌套LOD在数据库中的查询过程。笔者把本案例的三次嵌套引用LOD表达式,简化为如下形式(主视图为“省份”详细级别):

AVG({INCLUDE [客户]: MAX({INCLUDE [订单] : SUM(销售额)} ) } )

高级用户可以借助Tableau的性能记录器,一览背后的SQL查询过程,如

准确的表达应该是:

在使用嵌套LOD完成多遍聚合时,INCLUDE和EXCLUDE所嵌套的引用详细级别(Reference LOD)是相互影响的,规则是:内层的聚合,会自动引用外层的LOD限定条件。

因此,如果外层LOD表达式依据使用了“INCLUDE 客户”,那么内层可以忽略外层条件,因此,如下的两个表达式是等价的。

  • AVG({INCLUDE [客户] : MAX({INCLUDE [客户], [订单] : SUM(销售额)} ) } )
  • AVG({INCLUDE [客户]  : MAX({INCLUDE [订单] : SUM(销售额)} ) } )

第三次印刷(202407)

喜乐君个人介绍:Tableau Visionary 2021~2024 

调整 【内容介绍】与目录的次序。

第三章 原理篇


1、涉及到维度、度量,连续、离散的字段分类,统一改为 “字段角色”

2、一些关键内容的语句诠释。

3、更准确的表达数据类型、字段角色的关系

第四章 数据合并和模型 (更新较大)

更新4.42图片,调整部分字词。

移除部分内容,从而更新“共享维度”。

第五章 可视化

5.2.5 Image role 更新,新版本对数量和图片规格发生了变更。(如下所示,红色部分)

5.2.5  数据图像角色可视化(Tableau 2022.4+版本)

Tableau 2022.4版本发布了图像角色(Image Role)功能,可把图片URL地址解析为图像显示。图像角色在浏览器中以 HTML5<canvas>元素形式渲染,需要 IE 9.0+或 Chrome、Firefox 等浏览器。由于大量图片会降低性能,Tableau 默认限制桌面端不超100张、移动端不超过60张显示。超过约定数量建议增加筛选器,高级用户可以使用 tsm configuration配置更改(可能引起的性能问题)。

目前,使用图像角色功能需要满足几个条件,随着版本升级可能会有变化:

  • 必须是 HTTP或者HTTPS开头的URL地址,且不能包含<、> 、& 、\ 、^ 、’等字符。
  • 目前图像格式支持JPG、JPEG、PNG,且文件小于200KB;自2023.2开始支持 gif 动图(仅在 Tableau Server 和 Online 中动画显示,本地渲染为静态图片)。
  • 在工具提示、移动端等外部显示时,控制在30张图片之内。

增加 Viz Extensions 章节

5.6  向高级自定义扩展:Viz Extensions(2024.2+)

在2024.2版本中,Tableau推出了在笔者看来过去十年来最重要的可视化功能更新:Viz Extension,一举解决了桑基图、雷达图等复杂图表难以绘制、难以复制的问题。如图5-66所示。展示了 Tableau 迄今最重要的三个可视化功能:

  • VizQL:将拖曳转换为数据查询和可视化渲染,是 Tableau 最核心的专利和产品根基
  • Show Me(智能显示):根据所选字段的角色特征(维度/度量,连续/离散)和数量,自动推荐可用的可视化图表,器中红色边框的为最优推荐。
  • Viz Extensions(可视化扩展):将桑基图、雷达图等高级图表配置打包,实现拖曳创建

图 5 66 Tableau 最核心的三个可视化功能

以官方生成的“桑基图”(Sankey Chart)为例,只需要点击“添加扩展程序”,打开官方发布的“桑基图”扩展,而后依次双击类别、细分(至少需要两个维度字段,代表桑基图流向的起点和终点),再双击销售额(默认聚合代表流向的规模),即可生成一个如下图5-67所示的桑基图!非常方便,远超想象。

图 5 67 Tableau 使用扩展创建桑基图(2024.2+)

Tableau Desktop 支持从官方的 Exchange 下载第三方发布的扩展,也支持本地加载。随着越来越多的用户加入到开发队伍,Tableau 的高级图表也就越来越容易,弥补了复杂图表先天不足的缺陷。

第六章 筛选

P178  6.1.2,图6-1下方,问题4 :“各个地区”,改为 “各个类别”,从而和后面的解答保持一致。

6.2.1 小节,存在严重的“第一版本认知错误的毒瘤”。

上个月:【订单日期】与今天的年月距离1个月(计算和等于判断)。

行级别的筛选既可以是维度字段的筛选,也可以是度量字段的筛选(利润<0)。有人说“维度字段创建维度筛选器、度量字段创建度量筛选器”,很明显是错误的。维度、度量、连续、离散都是主观的,可以随着问题的需求而随时转化,筛选和它们的关系也受此影响。

行级别的度量筛选”是在明细中以度量字段为判断条件的筛选,交易是数据表明细行所对应的业务过程。比如,分析“利润亏损的交易,在各个地区的总利润亏损”,这里的交易对应“示例—超市”数据中“订单ID*产品ID”的明细。度量只有在明细行上做判断,才能直接被拖入筛选器。

补充说明:

特别说明,务必要区分“明细中数字类型字段的分类筛选”(如“[利润]<0”)和“(聚合)度量筛选”(如“SUM([利润])<0”)。由于度量必然是聚合的,聚合必然依赖于某个详细级别,“度量筛选器”(Measure Filter)是是“相对于视图详细级别聚合基础上的筛选”的简称,也是接下来的重要内容。

相比之下,6.4小节中,如下的诠释是正确的、合理的,这里值得二次强调:

(第二次印刷207页)
需要特别强调的是,在官方的操作顺序(Operation Orders)讲解中,使用了维度筛选器(Dimension Filter)和度量筛选器(Measure Filter),这里的“度量”是“聚合度量”的简称。很多人误认为是“拖曳维度区域的字段到筛选器创建‘维度筛选器’、拖曳度量区域的字段到筛选器创建‘度量筛选器’”。这是筛选领域中最普遍的错误,背后是对数据类型、字段角色(如维度、度量)的认知偏差。
比如,“[利润]<0”筛选和“SUM([利润])<0”筛选,利润不是度量,利润的聚合(比如SUM([利润]))才是度量,因此前者属于行级别筛选(不含聚合),后者属于度量筛选(聚合默认相对于视图详细级别)。因此笔者在本书中使用了更加完整的表述方式,“度量筛选器”即“基于视图详细级别的聚合度量筛选器”,而维度筛选器则是“行级别筛选器”。

第七章

7.3 指标,由于2024.2版本中,Metrics 将升级 转移到 tableau pulse,因此简化相关内容的介绍,移除表7-2。增加一句话说明。

从 Tableau Server2024.2版本开始,Metrics 将升级成为 AI 驱动的 Tableau Pulse一部分。

由于第七章 最后存在一个空页,调整部分内容,也许能留出完整的一页。

第八章

日期计算包含两种情景:两个日期计算间隔时间、日期和数字计算。对应两个日期函数:DATEDIFF和DATEADD。涉及到周的计算时,参数[start_of_week]默认以周日开始。

需要注意,Tableau 日期函数默认以“周日”为一周开始,计算“周的差异”时,周日和后续的周一间隔就是0周。可以在 Datediff 函数后面增加[start_of_week]参数调节。如下所示:

DATEDIFF('week', #2024-06-30#, #2024-07-01#, 'monday') = 1  // 本周日和下周一间隔1周

8.7.3 “SUMIF” 改为 “SUM+IF”,二者还是有一些差异的。

8.7.3  SUM+IF条件聚合:将行级别筛选和聚合分析合二为一

在本书6.1.1节,笔者介绍了独立筛选和条件计算筛选两个筛选情景,后者的典型是SUM+IF函数组合,这里姑且可以理解为 Excel 中的 SUMIF 或 SUMIFS 函数,或者更准确地称之为表达式。

从计算的角度,SUMIF表达式是建立在数据表行级别计算基础上的聚合计算。它的结构如下:

SUM( IF [condition指定条件] THEN [measure度量] END )

这里以下面两个案例为例,介绍如何使用SUMIF表达式完成聚合。

  • 问题1:消费者细分,(公司的)2021年利润总和。
  • 问题2:消费者细分,(公司的)2020年的利润、2021年的利润和同比增长率。

8.8 地理空间可视化

过去多年,Tableau陆续推出了多个空间函数,增强了地理可视化分析功能,如图8-53所示。

  • MAKEPOINT:把一对经度、纬度数据合并为点,可称为“空间点”。
  • MAKELINE:在两个空间点之间创建连线,可称为“空间路径”(Tableau 2019.2+版本可用)。
  • DISTANCE:测量两个空间点之间的距离,可称为“空间距离” Tableau 2019.3+版本可用)。
  • BUFFER:计算数据点周边缓冲区,可以理解为“指定半径范围”(Tableau 2020.1+版本可用)。

图8-53  Tableau主要的空间函数

上述函数都是建立在经纬度空间坐标基础上的。在引用经纬度时,必须纬度(Latitude)在前,经度(Longitude)在后。涉及单位,可选的单位主要有米(meters、metres、m)、千米(kilometers、kilometres、km)、英里(miles或mi)、英尺(feet、ft)等——注意必须使用英文。

除此之外,AREA 和近年来新增的 Length、Outline、Intersects 等函数是基于空间几何的,通常需要专门的空间数据库或空间文件。

  • AREA:用于计算空间多边形的表面积Tableau 2020.2+版本可用)。
  • INTERSECTS:判断两个几何空间是否重叠(Tableau 2022.4+版本可用)。
  • LENGTH:计算几何空间的边长(Tableau 2023.2+版本可用)。
  • OUTLINE:将空间几何转换为线(Tableau 2023.2+版本可用)
  • 另外,2023.2版本还退出了空间几何类型判断函数:
  • SHAPETYPE:判断几何空间的类型,返回结果为Empty、Point、MultiPoint、LineString、MultiLinestring、Polygon、MultiPolygon、Mixed 和不支持。

封底,补充 姜老师图书封面。

——————————

第二次印刷(202312)

————

Nov 30, 2023 新增

P116,图4-52,红圈处“产品信息表”应该是“销售目标表”

Nov 22, 2023新增

 @石倩

P102

第三行,销售目标表代表退货过程,应该是代表“管理目标明细”

P194 

图6 25 在SQL中,指定详细级别,完成行级别辅助字段的聚合判断

视图中,修改 “指定层次”,改为“指定详细级别” 

————

封面和封底

⚠️个人介绍、Wendy介绍,Tableau Visionary 2020~2023,年度范围改为“2021~2023”

第一章 

P3

图1-1 重做,消除中间图片的阴影 

P17 

“支持处理数据量大”,改为“支持企业级大数据量自助分析”,删除“,市场占有率不高”

  • P34页 ,引文3,Kimball 和Ross前面应该有空格,另外,建一个改为首字母大写。 

第三章 

P35 

图3-1 ,重做图片,不使用阴影功能,从而提高清晰度;增加一个箭头

P36~37

之前计划第三章用黑白打印,后来放弃了,图3-2 和 图3-3改为彩色模式。

P43

如下所示, “……交易的相关指标量化分别多少(How much) ”——明细中没有“指标”,这里不应该使用这个词。

这里改为: “……用哪些数据值(How much)准确计量交易”

P47

如下所示,a string of character 一串字符,后面应该是复数 +s

P48 脚注  改成从Tableau 2021.3版本开始

第四章

P100

图4-38下面,删除“数据表的”

P102

下面“类别*类别*年月”,修改为 “类别*细分*年月”

P107 最后一行 ,YEAR应是MONTH

P108 

⚠️ 表4-3(应该表4-5),右侧图示第七行,三个“发票号”后面的“订单id”,应该是 “订单ID*发票号” 

第三行 多对一中,右侧都是“区域”,代表数据表的详细级别,不应该是区域经理、发票号 

对应关系如下

P118

修改图4-56 

左边的图我觉得少了内侧引用完整性的注释,右边的图我觉得在产品明细表漏了关系图示。

右侧遮挡了关系

应该改为:(每个产品都有一个对应,但不是每个产品都有销售)

P120,

更改图4-58, 右边的“Author表”应该是“Info”表

第六章

P180

红色位置应该是“类别”,和上下文、图6-4比较统一

P186

6.2.2上面一段。

1)务必区分“明细中度量字段的筛选”(如这里的…… )改为 “ 明细中数字类型字段的分类筛选” (如…… )

2)“建立在指定详细级别聚合基础上的筛选”改为“建立在视图详细级别聚合基础上的筛选”

P202

符合问题需求,改为 “这显然不符合问题需求”。

P204

红圈“并集”是否为“交集”

P217,(见图6-57位置④)应该是:图6-58

第七章 

P221,散点图的标题V2应该是V3(非关键)

P240,图7-15和P239页的描述感觉有点不匹配:

仪表板由3个区域(呈“丁”之形)组成。删除(呈“丁”之形) 的括号内容。

P261

红圈处应为“见图是7-40”

P270  (是否修改??待定)

选择度量字段, 应该改为 “选择度量名称”,和参数名称保持。

和图7-42对比 …… 

第八章

P280,红圈处的“多个日期的几”是否是“多个日期的值”

P302,, LEF 漏了T

P310,

红圈处“01996”和“yyyyy”,应该是“1996”和“yyyy”,删除一个0,一个y

P 318

最后一行修改,如下

P319(语句不通顺)

删除两处“使用”

P320

删除“AVG、” 

P321

补充“平均值是170,”

P329页, 符号,应该是 符合。 

第九章 

P353,

倒数第七行,销售额外面 的括号,应该是方括号。 

SUM((销售额))/ TOTAL( SUM((销售额))) , 改为:

SUM([销售额])/ TOTAL( SUM([销售额])) 

P357,

图9-12,需要修改,第一个红圈处少了(

下面,第二、三红圈处[利润]应该是[销售额]

P359 (图片标题错误)

图9-15的标题重复了图9-14的标题,和图的内容不匹配。 改为: 

图9 15 在Tableau中,快速表计算自动设置维度字段的角色(范围或依据)

P371,

升序和降序搞反了。升序,“最小值标记为1”, 降序,“最大值标记为1”。

P390(更换图片)

红圈处是否代表MA4,前面3个和当前值聚合后的算术平均,换图9-56

更改为:

P392,

图9-58下面第一行最后位置, “标记表计算”,应该改为 “编辑表计算”

P400,

倒数第八行, “改为数据的最大值”

改为“改为数据的最大值和最小值”

P405 图9-74 修改

图片最上面的条件 MAX(区域),应该改为 ATTR() ,和图文保持一致。 

P410 

表9-3 第二列(2021/12/31)第三行(O+Y)/2 

应该改为(O+X)/2 

第十章

P430

图10-11上面第三行 FIXED ‘全国” ——左侧的单引号,应该改为双引号。 

P451

图片10-29 修改

顶部的 Reference LOD_01,左侧是01,右侧是02,右侧忘记修改了。 

P464 

10.6.5小节,标题下面第七行 

“问题7会在10.6.7节单独分析”改为 “问题7会在10.6.6节单独分析”.

P478(修改图片)

图10-61 修改, 条件应该是 大于等于1,不是等于0. 两侧不一致

改为:

——————

封底

后记 

承蒙各位读者厚爱,本书在发行两个月之后即将加印,众多读者在此期间发来了对本书细节的勘误建议(包括各类语病、插图瑕疵等)一一择善而从,加印得以修订。

特别感谢阿凯(厦门·制造业)为勘误做出的卓越贡献,它贡献了本次修订超过大半的勘误线索,并在读者群中不吝分享自己的读书笔记和思维导图,这是“费曼学习法”以教为学的最佳实践。

不久,姜斌老师的处女座《解构Tableau可视化原理》也将由电子工业出版社出版发行,作为“业务数据分析系列”丛书的全新成员,期待大家的关注和支持。 

——喜乐君

2023年11月21日

“业务数据分析”系列图书

《数据可视化分析:Tableau原理与实践》喜乐君

《业务可视化分析:从问题到图形的Tableau方法》喜乐君

《数据可视化分析(第2版):分析原理与Tableau、SQL实践》喜乐君

《解构Tableau可视化原理》姜斌