小提示:请确保将条件包裹在聚合之内。否则,您会遇到著名的错误:“Cannot mix aggregate and non aggregate comparisons or results in 'IF' expressions.”。例如,下面的语句会报错,因为我们试图对单个未聚合的数据点进行聚合。
Tableau CASE 语句
介绍
CASE 语句是 Tableau 中另一种条件语句,允许用户针对单个字段执行多次测试,并根据结果返回不同的值。与依赖布尔表达式判断的 IF 语句不同,CASE 语句依赖精确值匹配。如果在 WHEN 子句中使用布尔逻辑,您会在 Tableau 中看到如下错误:
CASE 语句的语法为:
CASE [expression]
WHEN [value1] THEN [result1]
WHEN [value2] THEN [result2]
ELSE [default result]
END技术支持
例如,让我们用它重写识别 2017 至 2019 年间制作过热门歌曲的词曲作者的逻辑:
CASE [Year]
WHEN IN (2017, 2018, 2019) THEN '2017-2019 Top Songs'
ELSE 'Not Top Song in 2017-2019'
END技术支持
在上述示例中,我们使用 WHEN IN 结构列出关注的年份(2017、2018 和 2019)。Tableau 随后使用该集合在数据中查找精确匹配。如果未找到匹配,且未指定默认值,则返回空值。
嵌套 CASE 语句
与嵌套的 IF 语句类似,您可以在 Tableau 中使用嵌套的 CASE 语句,通过计算字段实现复杂逻辑。您可以使用以下语法在 CASE 语句中返回嵌套逻辑:
CASE [expression1]
WHEN [value1] THEN
(CASE [expression2]
WHEN [value2] THEN [result1]
WHEN [value3] THEN [result2]
…
ELSE [default result]
END)
WHEN [value4] THEN
(CASE [expression2]
WHEN [value5] THEN [result3]
WHEN [value6] THEN [result4]
…
ELSE [default result]
END)
ELSE [default result]
END技术支持
尽管 CASE 语句无法评估布尔表达式,也不适合识别数据中的复杂模式,但它比 IF 语句更易读且性能更好。如果数据转换足够简单,不需要复杂的 TRUE/FALSE 判断,使用 CASE 语句会更合适。在某些情况下,您也可以将 IF 与 CASE 搭配使用,实现更强大的分析。
“如果您全力以赴,您就能做到任何事。” “如果等于 8,我就赢了!” 条件语句是日常生活的一部分。我们经常用它们基于逻辑判断来决定行动方案:
在 Tableau 中,您可以应用条件逻辑来模拟日常使用的相同逻辑。Tableau 提供了一系列逻辑函数,便于根据逻辑判断(布尔表达式 TRUE/FALSE,或精确值匹配)有条件地转换数据。本文将探讨 Tableau 中一些最常见的条件语句,并展示如何用它们来分析与可视化数据。
Tableau IF 语句
IF语句是 Tableau 中的基础条件语句,允许用户评估一个布尔表达式,并在条件为真时返回一个值、在为假时返回另一个值。IF语句的基本语法为:如果最终结果取决于对另一个布尔表达式的判断,您可以像这样在语句中加入
ELSEIF子句:例如,想要根据名称中是否包含“pop”来识别流行(pop)与非流行音乐类型,我们可以使用如下
IF语句:嵌套 IF 语句
IF语句也可以嵌套,以创建更复杂的条件,并针对数据的子群体评估多个条件。要构建嵌套的IF语句,请使用以下语法:假设我们想要找出流行歌曲中有多大比例是适合跳舞的(依据 Spotify 音乐数据集中的 danceability 指标)。我们可以使用以下嵌套的
IF语句来完成:嵌套的
IF语句功能强大,尤其适用于不同数据子群需要满足多个条件的情形。IIF 语句
IIF函数是 Tableau 中另一种条件语句,它允许用户测试一个条件并返回两个值之一。IIF函数的语法为:例如,要创建一个计算字段,用于识别在 2017 至 2019 年间制作过热门歌曲的词曲作者,我们可以使用如下
IIF函数:如果该歌曲在 2017 至 2019 年间(以 Billboard 为准)是热门歌曲,则返回“2017-2019 Top Song”,否则返回“Not Top Song in 2017-2019”。
将 Tableau 聚合函数与 IF 搭配使用
Tableau 提供了广泛的内置函数,可与条件语句配合使用以执行更高级的计算。最常用的一些聚合函数包括
COUNTD、SUM、AVG、MIN和MAX。借助聚合函数,您可以在 Tableau 中构建新指标,有效汇总洞见。您需要使用以下语法:例如,让我们使用
COUNTD函数统计在 2017 至 2019 年间拥有热门歌曲的独立艺人数:上述语句将返回 2017 至 2019 年间拥有热门歌曲的艺人去重数量。如果某位艺人在这些年份有多首热门歌曲,该艺人只会被计数一次。
类似地,我们可以将
SUM和AVG函数与条件语句结合,对特定数据子集执行计算。小提示:请确保将条件包裹在聚合之内。否则,您会遇到著名的错误:“Cannot mix aggregate and non aggregate comparisons or results in '
IF' expressions.”。例如,下面的语句会报错,因为我们试图对单个未聚合的数据点进行聚合。Tableau CASE 语句
介绍
CASE语句是 Tableau 中另一种条件语句,允许用户针对单个字段执行多次测试,并根据结果返回不同的值。与依赖布尔表达式判断的IF语句不同,CASE语句依赖精确值匹配。如果在WHEN子句中使用布尔逻辑,您会在 Tableau 中看到如下错误:CASE语句的语法为:例如,让我们用它重写识别 2017 至 2019 年间制作过热门歌曲的词曲作者的逻辑:
在上述示例中,我们使用
WHEN IN结构列出关注的年份(2017、2018 和 2019)。Tableau 随后使用该集合在数据中查找精确匹配。如果未找到匹配,且未指定默认值,则返回空值。嵌套 CASE 语句
与嵌套的
IF语句类似,您可以在 Tableau 中使用嵌套的CASE语句,通过计算字段实现复杂逻辑。您可以使用以下语法在CASE语句中返回嵌套逻辑:尽管
CASE语句无法评估布尔表达式,也不适合识别数据中的复杂模式,但它比IF语句更易读且性能更好。如果数据转换足够简单,不需要复杂的 TRUE/FALSE 判断,使用CASE语句会更合适。在某些情况下,您也可以将IF与CASE搭配使用,实现更强大的分析。结语
诸如
IF和CASE的条件语句,是帮助您提升 Tableau 技能的有力工具。想要从入门到进阶,请务必查阅我们的资源,例如 Data Analyst in Tableau 职业路径或 Analyzing Data in Tableau 课程。打好基础后,欢迎使用 DataLab 上提供的数据集在 Tableau 中练习可视化。
IF、IIF和CASE WHEN语句很快就会成为您的本能。祝您好运!