更新:Jul 5, 2024
更新:Mar 29, 2026
- 喜乐君《数据可视化分析》(第2版)正式发售! 2023/9
- 《数据可视化分析》第二版·自序与目录 2023/10
- 《数据可视化分析》第二版配套数据一览 2024/4
第四次印刷勘误(含历史版本) 202603
感谢读者@荠菜 指正 本环节的错误,属于笔者的重大知识错误,将在后续版本修订。
第十章 LOD表达式中,嵌套LOD“内层的聚合,会自动引用外层的LOD限定条件” ,仅仅适用于Include和exclude LOD语法,而不是适用于FIXED LOD语法——FIxed LOD仅仅受它指定的维度所决定的详细级别控制。
因此,如下内容中,红色部分是错误的。
10.5.3 嵌套LOD的语法和SQL表示
在使用嵌套LOD完成多遍聚合时,嵌套的引用详细级别(Reference LOD)是相互影响的,规则是:内层的聚合,会自动引用外层的LOD限定条件。因此,如下两个表达式是完全相同的。
AVG({ FIXED [省份], [客户] : MAX({FIXED [省份], [客户], [订单] : SUM(销售额)} ) } )
AVG({ FIXED [省份], [客户] : MAX({FIXED [订单] : SUM(销售额)} ) } )
同理,如果外层LOD表达式依据使用了“INCLUDE 客户”,那么内层可以忽略外层条件,因此,如下的两个表达式是等价的。
AVG({INCLUDE [客户] : MAX({INCLUDE [客户], [订单] : SUM(销售额)} ) } )
AVG({INCLUDE [客户] : MAX({INCLUDE [订单] : SUM(销售额)} ) } )
因此,在使用嵌套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(销售额)} ) } )
但这一规则不适用于FIXED LOD,如下的两个表达式中,结果相同仅仅因为每一笔订单都在同一个省份、同一个客户,所以FIXED [省份], [客户], [订单] 与 FIXED [订单] 所指定的详细级别完全相同。
- AVG({ FIXED [省份], [客户] : MAX({FIXED [省份], [客户], [订单] : SUM(销售额)} ) } )
- AVG({ FIXED [省份], [客户] : MAX({FIXED [订单] : SUM(销售额)} ) } )
第三次印刷(202407)
喜乐君个人介绍:Tableau Visionary 2021~2024
调整 【内容介绍】与目录的次序。
第三章 原理篇
1、涉及到维度、度量,连续、离散的字段分类,统一改为 “字段角色”

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

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

第四章 数据合并和模型 (更新较大)
更新4.42图片,调整部分字词。

移除部分内容,从而更新“共享维度”。
- 移除内容参见: Tableau关系模型案例:图书销售和多维度模型 。
- 增加2024.2版本的共享维度内容。参见: 【Tableau2024.2】共享维度和“多事实关系模型” 2024/07/05
第五章 可视化
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可视化原理》姜斌