我们很少在 Tableau 中考虑使用文本创建计算字段的原因可能是 SQL 通常是进行此类操作的更优选择。毕竟,我们总是说,“你可以在 Tableau 中做某件事情,并不意味着你应该做这件事。”
话虽如此,在 Tableau 中创建字符串计算也有许多很好的原因。Tableau 可以作为绝佳的概念测试工具,您可以在 ETL 流程最终确定之前动态测试您的想法。本文将向您介绍 Tableau 中的字符串计算,并向您展示如何在写入 SQL 之前测试细分。
使用字符串计算在 Tableau 中创建自定义细分
假设我们要在 Sub-Category(子类别)维度(来自 Sample - Superstore 数据集)中使用维度成员来创建自定义细分。我将用一个简单,虚拟的例子来说明,假设我们希望所有以'A'开头的子类别为一个细分; 所有以“B”或“C”开头的子类别为第二个细分; 其他的作为最后一个细分。
我们可以将子类别进行分组,但分组是静态的。这意味着如果我们后来更新了数据集并引入了新的维度成员,它并不会自动对其进行分类。相比而言,字符串计算是动态的,因此我们设置一次后则能保证它们会在新数据添加时动态地对其进行细分。在这个例子中,计算字段是:
IF STARTSWITH([Sub-Category], ‘A’) THEN ‘ASub-Categories’
ELSEIF STARTSWITH([Sub-Category],‘B’) ORSTARTSWITH([Sub-Category],‘C’) THEN ‘B & C
Subcategories’
ELSE ‘Other’
END
请注意,您可以在字符串计算中使用单引号(')或双引号(“)。此外,我们在此例子中使用的 STARTSWITH 函数不区分字母的大小写。
就像我会检查 Tableau 中数字的计算字段一样,我也会检查字符串的计算字段。要在这个例子中执行此操作,我会首先将原始子类别维度放在行上,然后将我们新创建的子类别细分维度放在后面。
按照行上维度的顺序,第一列显示的是原始维度成员名称,第二列显示的是计算字段。果然,如果子类别以 A 开头,则其被归类为 A 子类别; 如果它以 B 或 C 开头,则被归类为 B&C 子类别; 其他的部分都被称为“Other”。现在我知道它行得通,我可以单独使用计算维度来,就像任何其他维度一样。下面的条形图展示了子类别细分的平均利润值。
假设我是 B&C 子类别的管理者,如果我无法以这种方式对子类别维度成员进行细分,那么我可能会错失这个能带来奖金的见解!
这种计算在 Tableau 中可以快速轻松地完成,但我建议,当您希望将这些维度计算作为分析的永久部分时,请将计算移到 Tableau 之外。换句话说,一旦您知道此细分将经常用于您的分析,请使用此创建数据集。
我之所以这么建议的原因是,字符串数据类型是 Tableau 添加到视图时要处理的最慢的类型。虽然 Tableau 是一个很好的概念测试工具,但是在预处理方面有更好的工具可以帮助您避免重复(和慢速)查询。
同样,这只是 Tableau 中字符串计算的许多应用之一,但我想向您介绍,以便您可以充分利用这个系列。若要查看 Tableau 中可用的字符串函数的完整列表,请在创建计算字段时展开函数字典,并将下拉菜单更改为“String”(中文版字符串)。
看完了Tableau字符串计算的使用,是不是觉得没想到会有这么多的好处,赶紧下载最新版Tableau 2018.3,亲自上手试一试。慧都科技不仅提供数据可视化工具Tableau的下载、购买、培训和咨询,还提供Tableau以及BI解决方案与技术服务,详情可进入慧都科技BI页面了解更多或留言与我们取得联系,慧都科技将竭诚为您服务。
发表评论