字符串函数

本文介绍字符串函数及其在 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 两侧 10 2008 及更高版本

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)的右侧。

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

另请参见

Tableau 中的函数

Tableau 函数(按字母顺序)

Tableau 函数(按类别)

在 Tableau 中设置计算的格式

感谢您的反馈!