内容:

字符串函数

  • 版本 :2022.1 及更高版本

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

本文介绍字符串函数及其在 Tableau 中的用法。它还演示了如何使用示例创建字符串计算。

为何使用字符串函数

字符串函数允许您操作字符串数据(即由文本组成的数据)。

例如,可能有一个包含所有客户的名字和姓氏的字段。一个成员可能为:Jane Johnson。您可以使用字符串函数将姓氏从所有客户拉取到一个新字段中。

计算可能如下所示:

SPLIT([Customer Name], ' ', 2)

因此,SPLIT('Jane Johnson' , ' ', 2) = “Johnson”。

Tableau 中的可用字符串函数

函数

语法

定义

ASCII

ASCII(string)

返回 string 的第一个字符的 ASCII 码。

示例:

ASCII('A') = 65

CHAR

CHAR(number)

返回通过 ASCII 代码 number 编码的字符。

示例:

CHAR(65) = 'A'

CONTAINS

CONTAINS(string, substring)

如果给定字符串包含指定子字符串,则返回 true。

示例:

CONTAINS(“Calculation”, “alcu”) = true

ENDSWITH

ENDSWITH(string, substring)

如果给定字符串以指定子字符串结尾,则返回 true。会忽略尾随空格。

示例:

ENDSWITH(“Tableau”, “leau”) = true

FIND

FIND(string, substring, [start])

返回 substringstring 中的索引位置,如果未找到 substring,则返回 0。如果添加了可选参数 start,则函数会忽略在索引位置 start 之前出现的任何 substring 实例。字符串中第一个字符的位置为 1。

示例:

FIND("Calculation", "alcu") = 2
FIND("Calculation", "Computer") = 0
FIND("Calculation", "a", 3) = 7
FIND("Calculation", "a", 2) = 2
FIND("Calculation", "a", 8) = 0
FIND("Calculation", "a", 3) = 7
FIND("Calculation", "a", 2) = 2
FIND("Calculation", "a", 8) = 0

FINDNTH

FINDNTH(string, substring, occurrence)

返回指定字符串内的第 n 个子字符串的位置,其中 n 由 occurrence 参数定义。

注意: 所有数据源都不可使用 FINDNTH。

示例:

FINDNTH("Calculation", "a", 2) = 7

LEFT

LEFT(string, number)

返回字符串最左侧一定数量的字符。

示例:

LEFT("Matador", 4) = "Mata"

LEN

LEN(string)

返回字符串长度。

示例:

LEN("Matador") = 7

LOWER

LOWER(string)

返回 string,其所有字符为小写。

示例:

LOWER("ProductVersion") = "productversion"

LTRIM

LTRIM(string)

返回移除了所有前导空格的字符串。

示例:

LTRIM(" Matador ") = "Matador "

MAX

MAX(a, b)

返回 ab(必须为相同类型)中的较大值。此函数常用于比较数字,但也对字符串有效。对于字符串,MAX 查找数据库为该列定义的排序序列中的最高值。如果任一参数为 Null,则返回 Null

示例:

MAX ("Apple","Banana") = "Banana"

MID

(MID(string, start, [length])

返回从索引位置 start 开始的字符串。字符串中第一个字符的位置为 1。如果添加了可选参数 length,则返回的字符串仅包含该数量的字符。

示例:

MID("Calculation", 2) = "alculation"
MID("Calculation", 2, 5) ="alcul"

MIN

MIN(a, b)

返回 ab(必须为相同类型)中的较小值。此函数常用于比较数字,但也对字符串有效。对于字符串,MIN 查找排序序列中的最低值。如果任一参数为 Null,则返回 Null

示例:

MIN ("Apple","Banana") = "Apple"

REPLACE

REPLACE(string, substring, replacement)

string 中搜索 substring 并将其替换为 replacement。如果未找到 substring,则字符串保持不变。

示例:

REPLACE("Version8.5", "8.5", "9.0") = "Version9.0"

RIGHT

RIGHT(string, number)

返回 string 中最右侧一定数量的字符。

示例:

RIGHT("Calculation", 4) = "tion"

RTRIM

RTRIM(string)

返回移除了所有尾随空格的 string

示例:

RTRIM(" Calculation ") = " Calculation"

SPACE

SPACE(number)

返回由指定 number 个重复空格组成的字符串。

示例:

SPACE(1) = " "

SPLIT

SPLIT(string, delimiter, token number)返回字符串中的一个子字符串,并使用分隔符字符将字符串分为一系列标记。字符串将被解释为分隔符和标记的交替序列。因此,对于字符串 abc-defgh-i-jkl,分隔符字符为“-”,标记为 abc、defgh、i 和 jkl。将这些标记想像为标记 1 至 4。SPLIT 将返回与标记编号对应的标记。如果标记编号为正,则从字符串的左侧开始计算标记;如果标记编号为负,则从右侧开始计算标记。示例:SPLIT (‘a-b-c-d’, ‘-‘, 2) = ‘b’SPLIT (‘a|b|c|d’, ‘|‘, -2) = ‘c’注意:可以为以下数据源类型使用拆分和自定义拆分命令:Tableau 数据提取、Microsoft Excel、文本文件、PDF 文件、Salesforce、OData、Microsoft Azure Market Place、Google Analytics、Vertica、Oracle、MySQL、PostgreSQL、Teradata、Amazon Redshift、Aster 数据、Google Big Query、Cloudera Hadoop Hive、Hortonworks Hive 和 Microsoft SQL Server。某些数据源在拆分字符串时会有限制。下表显示了哪些数据源支持负标记数量(从右拆分),以及每个数据源允许的拆分数是否有限制。指定负标记编号并且对其他数据源合法的 SPLIT 函数对于这些数据源将返回以下错误:“数据源不支持从右拆分。” 数据源左/右约束最大拆分数量版本限制Tableau 数据提取两侧无限 Microsoft Excel两侧无限 文本文件两侧无限 Salesforce两侧无限 OData两侧无限 Google Analytics两侧无限 Tableau 数据服务器两侧无限在版本 9.0 中支持。Vertica仅左侧10 Oracle仅左侧10 MySQL两侧10 PostgreSQL在版本 9.0 之前仅左侧;版本 9.0 及更高版本中为两侧10 Teradata仅左侧10版本 14 及更高版本Amazon Redshift仅左侧10 Aster Database仅左侧10 Google BigQuery仅左侧10 Hortonworks Hadoop Hive仅左侧10 Cloudera Hadoop仅左侧10版本 2.3.0 中开始支持 Impala。Microsoft SQL Server两侧102008 及更高版本

STARTSWITH

STARTSWITH(string, substring)

如果 stringsubstring 开头,则返回 true。会忽略前导空格。

示例:

STARTSWITH(“Joker”, “Jo”) = true

TRIM

TRIM(string)

返回移除了前导和尾随空格的字符串。

示例:

TRIM(" Calculation ") = "Calculation"

UPPER

UPPER(string)

返回字符串,其所有字符为大写。

示例:

UPPER("Calculation") = "CALCULATION"


创建字符串计算

按照下面的步骤进行操作以了解如何创建字符串计算。

  1. 在 Tableau Desktop 中,连接到 Tableau 附带的“Sample - Superstore”已保存数据源。

  2. 导航到工作表。

  3. 从“数据”窗格中的“维度”下,将“Order ID”(订单 ID)拖到“行”功能区。

    请注意,每个订单 ID 都包含国家/地区值(例如,CA 和 US)、年份值 (2011),以及订单编号值 (100006)。对于此示例,您将创建一个计算以仅从字段中拉取订单编号。

  4. 选择“分析”>“创建计算字段”

  5. 在打开的计算编辑器中,执行以下操作:

    • 将计算字段命名为“Order ID Numbers”(订单 ID 编号)。

    • 输入以下公式:

      RIGHT([Order ID], 6)

      此公式从字符串的右侧获取指定位数 (6) 的数字,并将其拉取到新字段中。

      因此,RIGHT('CA-2011-100006' , 6) =“100006”。

    • 完成后,单击“确定”

      新的计算字段将出现在“数据”窗格中的“维度”下。就像其他字段一样,您可以在一个或多个可视化项中使用该字段。

  6. 从“数据”窗格中,将“Order ID Numbers”(订单 ID 编号)拖到“行”功能区。将其放在“Order Id”(订单 Id)的右侧。

    留意这些字段现在的不同之处。