Tableau 函数(按类别)

此参考中的 Tableau 函数按类别组织。单击类别可浏览其函数。或者,按 Ctrl+F(在 Mac 上按 Command-F)打开搜索框,您可以使用该搜索框在页面中搜索特定函数。

数字函数

ABS

语法ABS(number)
输出数字(正数)
定义返回给定 <number> 的绝对值。
示例
ABS(-7) = 7
ABS([Budget Variance])

第二个示例返回“Budget Variance”(预算差异)字段中包含的所有数字的绝对值。

说明另请参见 SIGN

ACOS

语法ACOS(number)
输出数字(以弧度表示的角度)
定义返回给定 <number> 的反余弦(角度)。
示例
ACOS(-1) = 3.14159265358979
说明反函数 COS 以弧度为单位的角度作为参数,并返回余弦值。

ASIN

语法ASIN(number)
输出数字(以弧度表示的角度)
定义返回给定 <number> 的反正弦(角度)。
示例
ASIN(1) = 1.5707963267949
说明反函数 SIN 以弧度为单位的角度作为参数,并返回正弦值。

ATAN

语法ATAN(number)
输出数字(以弧度表示的角度)
定义返回给定 <number> 的反正切(角度)。
示例
ATAN(180) = 1.5652408283942
说明

反函数 TAN 以弧度为单位的角度作为参数,并返回正切值。

另请参见 ATAN2COT

ATAN2

语法ATAN2(y number, x number)
输出数字(以弧度表示的角度)
定义返回两个数字(x 和 y)之间的反正切(角度)。结果以弧度表示。
示例
ATAN2(2, 1) = 1.10714871779409
说明另请参见 ATANTANCOT

CEILING

语法CEILING(number)
输出整数
定义<number> 舍入为值相等或更大的最近整数。
示例
CEILING(2.1) = 3
说明另请参见 FLOORROUND
数据库限制

CEILING 可通过以下连接器使用:Microsoft Excel、文本文件、统计文件、已发布数据源、Amazon EMR Hadoop Hive、Amazon Redshift、Cloudera Hadoop、DataStax Enterprise、Google Analytics、Google BigQuery、Hortonworks Hadoop Hive、MapR Hadoop Hive、Microsoft SQL Server、Salesforce、Spark SQL。

COS

语法COS(number)

number 参数是以弧度表示的角度。

输出数字
定义返回角度的余弦。
示例
COS(PI( ) /4) = 0.707106781186548
说明

反函数 ACOS 以余弦为参数并返回以弧度表示的角度。

另请参见 PI。若要将角度从度数转换为弧度,请使用 RADIANS

COT

语法COT(number)

number 参数是以弧度表示的角度。

输出数字
定义返回角度的余切。
示例
COT(PI( ) /4) = 1
说明另请参见 ATANTANPI。若要将角度从度数转换为弧度,请使用 RADIANS

DEGREES

语法DEGREES(number)

number 参数是以弧度表示的角度。

输出数字(度)
定义将以弧度表示的角度转换为度数。
示例
DEGREES(PI( )/4) = 45.0
说明

反函数 RADIANS 获取以度为单位的角度并返回以弧度为单位的角度。

另请参见 PI()

DIV

语法DIV(integer1, integer2)
输出整数
定义返回将 <integer1> 除以 <integer2> 的除法运算的整数部分。
示例
DIV(11,2) = 5

EXP

语法EXP(number)
输出数字
定义返回 e 的给定 <number> 次幂。
示例
EXP(2) = 7.389
EXP(-[Growth Rate]*[Time])
说明另请参见 LN

FLOOR

语法FLOOR(number)
输出整数
定义将数字舍入为值相等或更小的最近 <number>
示例
FLOOR(7.9) = 7
说明另请参见 CEILINGROUND
数据库限制

FLOOR 可通过以下连接器使用:Microsoft Excel、文本文件、统计文件、已发布数据源、Amazon EMR Hadoop Hive、Cloudera Hadoop、DataStax Enterprise、Google Analytics、Google BigQuery、Hortonworks Hadoop Hive、MapR Hadoop Hive、Microsoft SQL Server、Salesforce、Spark SQL。

HEXBINX

语法HEXBINX(number, number)
输出数字
定义将 x、y 坐标映射到最接近的六边形数据桶的 x 坐标。数据桶的边长为 1,因此,可能需要相应地缩放输入。
示例
HEXBINX([Longitude]*2.5, [Latitude]*2.5)
说明HEXBINX HEXBINY 是用于六边形数据桶的分桶和标绘函数。六边形数据桶是对 x/y 平面(例如地图)中的数据进行可视化的有效而简洁的选项。由于数据桶是六边形的,因此每个数据桶都非常近似于一个圆,并最大程度地减少了从数据点到数据桶中心的距离变化。这使得聚类分析更加准确并且能提供有用的信息。

HEXBINY

语法HEXBINY(number, number)
输出数字
定义将 x、y 坐标映射到最接近的六边形数据桶的 y 坐标。数据桶的边长为 1,因此,可能需要相应地缩放输入。
示例
HEXBINY([Longitude]*2.5, [Latitude]*2.5)
说明另请参见 HEXBINX

LN

语法LN(number)
输出

数字

如果参数小于或等于零,则输出为 Null

定义返回 <number> 的自然对数。
示例
LN(50) = 3.912023005
说明另请参见 EXPLOG

LOG

语法LOG(number, [base])

如果可选的 base 参数不存在,则使用底数 10。

输出数字
定义返回数字以给定底数为底的对数。
示例
LOG(16,4) = 2
说明另请参见 POWER LN

MAX

语法MAX(expression)MAX(expr1, expr2)
输出与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 
定义

返回两个参数(必须为相同数据类型)中的最大值。

MAX 也可以聚合形式应用于单个字段。

示例
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
说明

对于字符串

MAX 通常是按字母顺序排在最后的值。

对于数据库数据源,MAX 字符串值在数据库为该列定义的排序序列中最高。

对于日期

对于日期,MAX 是最近的日期。如果 MAX 是聚合,结果不会有日期层次结构。如果 MAX 是比较,结果将保留日期层次结构。

作为聚合

MAX(expression) 是聚合函数,返回单个聚合结果。这在可视化项中显示为 AGG(expression)

作为比较

MAX(expr1, expr2) 比较这两个值并返回一个行级值。

另请参见 MIN

MIN

语法MIN(expression)MIN(expr1, expr2)
输出与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 
定义

返回两个参数(必须为相同数据类型)中的最小值。

MIN 也可以聚合形式应用于单个字段。

示例
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
说明

对于字符串

MIN 通常是按字母顺序排列在前面的值。

对于数据库数据源,MIN 字符串值在数据库为该列定义的排序序列中最低。

对于日期

对于日期,MIN 是最早的日期。如果 MIN 是聚合,结果不会有日期层次结构。如果 MIN 是比较,结果将保留日期层次结构。

作为聚合

MIN(expression) 是聚合函数,返回单个聚合结果。这在可视化项中显示为 AGG(expression)

作为比较

MIN(expr1, expr2) 比较这两个值并返回一个行级值。

另请参见 MAX

PI

语法PI()
输出数字
定义返回数字常量 pi:3.14159。
示例
PI() = 3.14159
说明对于以弧度为输入的三角函数非常有用。另请参见 RADIANS

POWER

语法POWER(number, power)
输出数字
定义计算 <number> 的指定次 <power>
示例
POWER(5,3) = 125
POWER([Temperature], 2)
说明也可以使用 ^ 符号,例如 5^3 = POWER(5,3) = 125

另请参见 EXPLOGSQUARE

RADIANS

语法RADIANS(number)
输出数字(以弧度表示的角度)
定义将给定 <number> 从度数转换为弧度。
示例
RADIANS(180) = 3.14159
说明反函数 DEGREES 获取以弧度为单位的角度,并返回以度为单位的角度。

ROUND

语法ROUND(number, [decimals])
输出数字
定义

<number> 舍入为指定位数。

decimals 可选参数指定要在最终结果中包含的小数位数精度。如果省略 decimals,则 number 舍入为最接近的整数。

示例
ROUND(1/3, 2) = 0.33
说明

某些数据库(例如 SQL Server)允许指定负长度,其中 -1 将数字舍入为 10 的倍数,-2 舍入为 100 的倍数,依此类推。此功能并不适用于所有数据库。例如,Excel 和 Access 不具备此功能。

提示:由于 ROUND 可能会因数字的基础浮点表示而遇到问题 — 例如 9.405 四舍五入到 9.40 — 最好将数字格式化为所需的小数位数而不是四舍五入。将 9.405 格式化为两位小数将产生预期的 9.41。

另请参见 CEILINGFLOOR

SIGN

语法SIGN(number)
输出-1、0 或 1
定义返回 <number> 的符号:可能的返回值为:在数字为负时为 -1,在数字为零时为 0,在数字为正时为 1。
示例
SIGN(AVG(Profit)) = -1
说明另请参见 ABS

SIN

语法SIN(number)

number 参数是以弧度表示的角度。

输出数字
定义返回角度的正弦。
示例
SIN(0) = 1.0
SIN(PI( )/4) = 0.707106781186548
说明

反函数 ASIN 以正弦作为参数并返回以弧度为单位的角度。

另请参见 PI。若要将角度从度数转换为弧度,请使用 RADIANS

SQRT

语法SQRT(number)
输出数字
定义返回 <number> 的平方根。
示例
SQRT(25) = 5
说明另请参见 SQUARE

SQUARE

语法SQUARE(number)
输出数字
定义返回 <number> 的平方。
示例
SQUARE(5) = 25
说明另请参见 SQRTPOWER

TAN

语法TAN(number)

number 参数是以弧度表示的角度。

输出数字
定义返回角度的正切。
示例
TAN(PI ( )/4) = 1.0
说明另请参见 ATANATAN2COTPI。若要将角度从度数转换为弧度,请使用 RADIANS

ZN

语法ZN(expression)
输出任意,或 o
定义

如果 <expression> 不为 Null,则返回该表达式,否则返回零。

使用此函数将 null 值替换为零。

示例
ZN(Grade) = 0
说明当在计算中使用可能包含 null 的字段时,这是一个非常有用的函数。用 ZN 封装字段可以防止用 null 计算导致的错误。
字符串函数

ASCII

语法ASCII(string)
输出数字
定义返回 <string> 的第一个字符的 ASCII 码。
示例
ASCII('A') = 65
说明这是 CHAR 函数的反函数。

CHAR

语法CHAR(number)
输出字符串
定义返回通过 ASCII 代码 <number> 编码的字符。
示例
CHAR(65) = 'A'
说明这是 ASCII 函数的反函数。

CONTAINS

语法CONTAINS(string, substring)
输出布尔值
定义如果给定字符串包含指定子字符串,则返回 true。
示例
CONTAINS("Calculation", "alcu") = true
说明另请参见逻辑函数(链接在新窗口中打开) IN 以及附加函数文档(链接在新窗口中打开)中支持的正则表达式。

ENDSWITH

语法ENDSWITH(string, substring)
输出布尔值
定义如果给定字符串以指定子字符串结尾,则返回 true。会忽略尾随空格。
示例
ENDSWITH("Tableau", "leau") = true
说明另请参见附加函数文档(链接在新窗口中打开)中支持的正则表达式。

FIND

语法FIND(string, substring, [start])
输出数字
定义

返回子字符串在字符串中的索引位置,如果未找到子字符串,则返回 0。字符串中第一个字符的位置为 1。

如果添加了可选参数 start,则函数会忽略在起始位置之前出现的任何子字符串的实例。

示例
FIND("Calculation", "alcu") = 2
FIND("Calculation", "Computer") = 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("Calculation", "a", 2) = 7
说明

所有数据源都不可使用 FINDNTH

另请参见附加函数文档(链接在新窗口中打开)中支持的正则表达式。

LEFT

语法 LEFT(string, number)
输出字符串
定义返回字符串最左侧一定 <number> 的字符。
示例
LEFT("Matador", 4) = "Mata"
说明另请参见 MIDRIGHT

LEN

语法LEN(string)
输出数字
定义返回字符串长度。
示例
LEN("Matador") = 7
说明不要与空间函数 LENGTH(链接在新窗口中打开) 混淆。

LOWER

语法LOWER(string)
输出字符串
定义以全小写字符返回提供的 <string>
示例
LOWER("ProductVersion") = "productversion"
说明另请参见 UPPERPROPER

LTRIM

语法 LTRIM(string)
输出字符串
定义返回移除了所有前导空格的所提供的 <string>
示例
LTRIM(" Matador ") = "Matador "
说明另请参见 RTRIM

MAX

语法MAX(expression)MAX(expr1, expr2)
输出与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 
定义

返回两个参数(必须为相同数据类型)中的最大值。

MAX 也可以聚合形式应用于单个字段。

示例
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
说明

对于字符串

MAX 通常是按字母顺序排在最后的值。

对于数据库数据源,MAX 字符串值在数据库为该列定义的排序序列中最高。

对于日期

对于日期,MAX 是最近的日期。如果 MAX 是聚合,结果不会有日期层次结构。如果 MAX 是比较,结果将保留日期层次结构。

作为聚合

MAX(expression) 是聚合函数,返回单个聚合结果。这在可视化项中显示为 AGG(expression)

作为比较

MAX(expr1, expr2) 比较这两个值并返回一个行级值。

另请参见 MIN

MID

语法(MID(string, start, [length])
输出字符串
定义

返回从指定 start 位置处开始的字符串t。字符串中第一个字符的位置为 1。

如果添加了可选数字参数 length,则返回的字符串仅包含该数量的字符。

示例
MID("Calculation", 2) = "alculation"
MID("Calculation", 2, 5) ="alcul"
说明另请参见附加函数文档(链接在新窗口中打开)中支持的正则表达式。

MIN

语法MIN(expression)MIN(expr1, expr2)
输出与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 
定义

返回两个参数(必须为相同数据类型)中的最小值。

MIN 也可以聚合形式应用于单个字段。

示例
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
说明

对于字符串

MIN 通常是按字母顺序排列在前面的值。

对于数据库数据源,MIN 字符串值在数据库为该列定义的排序序列中最低。

对于日期

对于日期,MIN 是最早的日期。如果 MIN 是聚合,结果不会有日期层次结构。如果 MIN 是比较,结果将保留日期层次结构。

作为聚合

MIN(expression) 是聚合函数,返回单个聚合结果。这在可视化项中显示为 AGG(expression)

作为比较

MIN(expr1, expr2) 比较这两个值并返回一个行级值。

另请参见 MAX

PROPER

语法PROPER(string)
输出字符串
定义

返回所提供的 <string>,每个单词的第一个字母大写,其余字母小写。

示例
PROPER("PRODUCT name") = "Product Name"
PROPER("darcy-mae") = "Darcy-Mae"
说明

空格和非字母数字字符(如标点符号)被视为分隔符。

另请参见 LOWERUPPER

数据库限制PROPER 仅适用于某些平面文件和数据提取。如果您需要在不支持 PROPER 的数据源中使用 PROPER,请考虑使用数据提取。

REPLACE

语法REPLACE(string, substring, replacement
输出字符串
定义<string> 中搜索 <substring> 并将其替换为 <replacement>。如果未找到 <substring>,则字符串保持不变。
示例
REPLACE("Version 3.8", "3.8", "4x") = "Version 4x"
说明另请参见附加函数文档(链接在新窗口中打开)中的 REGEXP_REPLACE

RIGHT

语法RIGHT(string, number)
输出字符串
定义返回字符串最右侧一定 <number> 的字符。
示例
RIGHT("Calculation", 4) = "tion"
说明另请参见 LEFTMID

RTRIM

语法RTRIM(string)
输出字符串
定义返回移除了所有尾随空格的所提供的 <string>
示例
RTRIM(" Calculation ") = " Calculation"
说明另请参见 LTRIMTRIM

SPACE

语法SPACE(number)
输出字符串(具体来说,只是空格)
定义返回由指定数量的重复空格组成的字符串。
示例
SPACE(2) = "  "

SPLIT

语法SPLIT(string, delimiter, token number)
输出字符串
定义返回字符串中的一个子字符串,并使用分隔符字符将字符串分为一系列标记。
示例
SPLIT ("a-b-c-d", "-", 2) = "b"
SPLIT ("a|b|c|d", "|", -2) = "c"
说明

字符串将被解释为分隔符和标记的交替序列。因此,对于字符串 abc-defgh-i-jkl,分隔符字符为“-”,标记为 (1) abc、(2) defgh、(3) i 和 (4) jlk

SPLIT 将返回与标记编号对应的标记。如果标记编号为正,则从字符串的左侧开始计算标记;如果标记编号为负,则从右侧开始计算标记。

另请参见附加函数文档(链接在新窗口中打开)中支持的正则表达式。

数据库限制

可以为以下数据源类型使用拆分和自定义拆分命令: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 函数限制。

STARTSWITH

语法STARTSWITH(string, substring)
输出布尔值
定义如果 stringsubstring 开头,则返回 true。会忽略前导空格。
示例
STARTSWITH("Matador, "Ma") = TRUE
说明另请参见附加函数文档(链接在新窗口中打开)中的 CONTAINS 以及支持的正则表达式。

TRIM

语法TRIM(string)
输出字符串
定义返回移除了前导和尾随空格的所提供的 <string>
示例
TRIM(" Calculation ") = "Calculation"
说明另请参见 LTRIMRTRIM

UPPER

语法UPPER(string)
输出字符串
定义以全大写字符返回提供的 <string>
示例
UPPER("Calculation") = "CALCULATION"
说明另请参见 PROPERLOWER
日期函数

注意:日期函数不考虑配置的会计年度开始。请参见会计日期

DATE

将字符串和数字表达式转换为日期的类型转换函数,只要它们是可识别的格式。

语法DATE(expression)
输出日期
定义在给定数字、字符串或日期 <expression> 的情况下返回日期。
示例
DATE([Employee Start Date])
DATE("September 22, 2018") 
DATE("9/22/2018")
DATE(#2018-09-22 14:52#)
说明

DATEPARSE 不同,不需要提供模式,因为 DATE 会自动识别许多标准日期格式。但是,如果 DATE 不能识别输入,请尝试使用 DATEPARSE 并指定格式。

MAKEDATE 是另一个类似的函数,但是 MAKEDATE 要求输入年、月和日的数值。

DATEADD

将指定数量的日期部分(月、日等)添加到开始日期。

语法DATEADD(date_part, interval, date)
输出日期
定义返回 <date>,该日期的指定 <date_part> 中添加了指定的数字 <interval>。例如,将开始日期增加 3 个月或 12 天。
示例

将所有的到期日推迟一周

DATEADD('week', 1, [due date])

将 2021 年 2 月 20 日加上 280 天

DATEADD('day', 280, #2/20/21#) = #November 27, 2021#
说明支持 ISO 8601 日期。

DATEDIFF

返回两个日期之间的日期部分(周、年等)的数量。

语法DATEDIFF(date_part, date1, date2, [start_of_week])
输出整数
定义返回 <date1><date2> 之差(以 <date_part> 的单位表示)。例如,减去某人加入和离开乐队的日期,就可以知道他们在乐队里呆了多久。
示例

1986 年 3 月 25 日到 2021 年 2 月 20 日之间的天数

DATEDIFF('day', #3/25/1986#, #2/20/2021#) = 12,751

一个人在乐队里呆了几个月

DATEDIFF('month', [date joined band], [date left band])
说明支持 ISO 8601 日期。

DATENAME

以离散字符串形式返回指定日期部分的名称。

语法DATENAME(date_part, date, [start_of_week])
输出字符串
定义以字符串的形式返回 <date><date_part>
示例
DATENAME('year', #3/25/1986#) = "1986"
DATENAME('month', #1986-03-25#) = "March"
说明

支持 ISO 8601 日期。

一个非常类似的计算是 DATEPART,它以连续整数的形式返回指定日期部分的值。DATEPART 可能更快,因为它是一个数值运算。

通过更改计算结果的属性(维度或度量、连续或离散)和日期格式,可以将 DATEPARTDATENAME 的结果格式设置为相同。

反函数是 DATEPARSE,它接受一个字符串值并将其格式化为日期。

DATEPARSE

以日期形式返回特定格式的字符串。

语法DATEPARSE(date_format, date_string)
输出日期
定义<date_format> 参数将描述 <date_string> 字段的排列方式。由于可通过各种方式对字符串字段进行排序,因此 <date_format> 必须完全匹配。有关完整解释和格式设置详细信息,请参见将字段转换为日期字段(链接在新窗口中打开)
示例
DATEPARSE('yyyy-MM-dd', "1986-03-25") = #March 25, 1986#
说明

DATE是一个类似的函数,可以自动识别许多标准的日期格式。如果 DATE 不能识别输入模式,DATEPARSE 可能是更好的选择。

MAKEDATE 是另一个类似的函数,但是 MAKEDATE 要求输入年、月和日的数值。

反函数是 DATEPART(整数输出)和 DATENAME(字符串输出),它将日期分开并返回其各部分的值。

数据库限制

DATEPARSE 可通过以下连接器获得:非旧版 Excel 和文本文件连接、Amazon EMR Hadoop Hive、Cloudera Hadoop、Google 表格、Hortonworks Hadoop Hive、MapR Hadoop Hive、MySQL、Oracle、PostgreSQL 以及 Tableau 数据提取。有些格式可能并非适用于所有连接。

Hive 变体不支持 DATEPARSE。仅支持 Denodo、Drill 和 Snowflake。

DATEPART

以整数形式返回指定日期部分的名称。

语法DATEPART(date_part, date, [start_of_week])
输出整数
定义以整数的形式返回 <date><date_part>
示例
DATEPART('year', #1986-03-25#) = 1986
DATEPART('month', #1986-03-25#) = 3
说明

支持 ISO 8601 日期。

一个非常类似的计算是 DATENAME,它以离散字符串的形式返回指定日期部分的名称。DATEPART 可能更快,因为它是一个数值运算。通过更改字段的属性(维度或度量、连续或离散)和日期格式,可以将 DATEPARTDATENAME 的结果格式设置为相同。

反函数是 DATEPARSE,它接受一个字符串值并将其格式化为日期。

DATETRUNC

可以将此函数视为日期舍入。它获取特定的日期,并返回该日期在所需的特定程度上的版本。由于每个日期都必须有日、月、季度和年的值,因此 DATETRUNC 将这些值设置为指定日期部分之前每个日期部分的最小值。有关详细信息,请参考见示例。

语法DATETRUNC(date_part, date, [start_of_week])
输出日期
定义<date_part>指定的准确度截断 <date>。此函数返回新日期。例如,以月份级别截断处于月份中间的日期时,此函数返回当月的第一天。
示例
DATETRUNC('day', #9/22/2018#) = #9/22/2018#
DATETRUNC('iso-week', #9/22/2018#) = #9/17/2018#

(包含 2018 年 9 月 22 日的一周中的星期一)

DATETRUNC(quarter, #9/22/2018#) = #7/1/2018# 

(包含 2018 年 9 月 22 日的季度的第一天)

注意:对于周和 iso 周,start_of_week 有作用。ISO 周始终从星期一开始。对于本例的区域设置,未指定的 start_of_week 意味着一周从星期日开始。

说明

支持 ISO 8601 日期。

例如,您不应使用 DATETRUNC 来停止在可视化项中显示日期时间字段的时间。如果要截断日期的显示方式而不是舍入其精度,请调整格式(链接在新窗口中打开)

举例来说,如果在可视化项中格式为显示秒,DATETRUNC('day', #5/17/2022 3:12:48 PM#) 将显示为 5/17/2022 12:00:00 AM。该值被截断为天,但显示为秒。

DAY

以整数形式返回一个月中的第几天 (1-31)。

语法DAY(date)
输出整数
定义以整数的形式返回给定 <date> 的天。
示例
Day(#September 22, 2018#) = 22
说明另请参见 WEEKMONTHQUARTERYEAR 以及 ISO 等效值。

ISDATE

检查字符串是否为有效的日期格式。

语法ISDATE(string)
输出布尔值
定义如果给定 <string> 为有效日期,则返回 true。
示例
ISDATE(09/22/2018) = true
ISDATE(22SEP18) = false
说明所需的参数必须是字符串。ISDATE 不能用于日期数据类型的字段,计算将返回错误。

ISOQUARTER

语法ISOQUARTER(date)
输出整数
定义以整数的形式返回给定 <date> 的基于 ISO8601 周的季度。
示例
ISOQUARTER(#1986-03-25#) = 1
说明另请参见 ISOWEEKISOWEEKDAYISOYEAR, 以及 -ISO 等效值。

ISOWEEK

语法ISOWEEK(date)
输出整数
定义以整数的形式返回给定 <date> 基于 ISO8601 周的周。
示例
ISOWEEK(#1986-03-25#) = 13
说明另请参见 ISOWEEKDAYISOQUARTERISOYEAR, 以及 -ISO 等效值。

ISOWEEKDAY

语法ISOWEEKDAY(date)
输出整数
定义以整数的形式返回给定 <date> 的基于 ISO8601 周的工作日。
示例
ISOWEEKDAY(#1986-03-25#) = 2
说明另请参见 ISOWEEKISOQUARTERISOYEAR, 以及 -ISO 等效值。

ISOYEAR

语法ISOYEAR(date)
输出整数
定义以整数的形式返回给定 <date> 的基于 ISO8601 年份的工作日。
示例
ISOYEAR(#1986-03-25#) = 1,986
说明另请参见 ISOWEEKISOWEEKDAYISOQUARTER, 以及 -ISO 等效值。

MAKEDATE

语法MAKEDATE(year, month, day)
输出日期
定义返回一个依据指定 <year><month><day> 构造的日期值。
示例
MAKEDATE(1986,3,25) = #1986-03-25#
说明

注意,输入错误的值将被调整为一个日期,例如 MAKEDATE(2020,4,31) = May 1, 2020,而不是返回指出没有 4 月 31 日的错误。

可用于 Tableau 数据提取。检查在其他数据源中的可用性。

MAKEDATE 要求为日期的各个部分输入数字。如果您的数据是应该是日期的字符串,请尝试 DATE 函数。DATE 可自动识别许多标准的日期格式。如果 DATE 不能识别输入,请尝试使用 DATEPARSE

MAKEDATETIME

语法MAKEDATETIME(date, time)
输出日期时间
定义返回合并了 <date><time>的日期时间。日期可以是 date、datetime 或 string 类型。时间必须是 datetime。
示例
MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM#
MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM#
说明

此函数仅适用于与 MySQL 兼容的连接(对于 Tableau 为 MySQL 和 Amazon Aurora)。

MAKETIME 是一个类似的函数,可用于 Tableau 数据提取和其他一些数据源。

MAKETIME

语法MAKETIME(hour, minute, second)
输出日期时间
定义返回一个依据指定 <hour><minute><second> 构造的日期值。
示例
MAKETIME(14, 52, 40) = #1/1/1899 14:52:40#
说明

由于 Tableau 不支持时间数据类型,只支持日期时间,因此输出是日期时间。字段的日期部分将是 1/1/1899。

类似于 MAKEDATETIME 的函数,只适用于 MYSQL 兼容的连接。

MAX

语法MAX(expression)MAX(expr1, expr2)
输出与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL
定义

返回两个参数(必须为相同数据类型)中的最大值。

MAX 也可以聚合形式应用于单个字段。

示例
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
说明

对于字符串

MAX 通常是按字母顺序排在最后的值。

对于数据库数据源,MAX 字符串值在数据库为该列定义的排序序列中最高。

对于日期

对于日期,MAX 是最近的日期。如果 MAX 是聚合,结果不会有日期层次结构。如果 MAX 是比较,结果将保留日期层次结构。

作为聚合

MAX(expression) 是聚合函数,返回单个聚合结果。这在可视化项中显示为 AGG(expression)

作为比较

MAX(expr1, expr2) 比较这两个值并返回一个行级值。

另请参见 MIN

MIN

语法MIN(expression)MIN(expr1, expr2)
输出与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 
定义

返回两个参数(必须为相同数据类型)中的最小值。

MIN 也可以聚合形式应用于单个字段。

示例
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
说明

对于字符串

MIN 通常是按字母顺序排列在前面的值。

对于数据库数据源,MIN 字符串值在数据库为该列定义的排序序列中最低。

对于日期

对于日期,MIN 是最早的日期。如果 MIN 是聚合,结果不会有日期层次结构。如果 MIN 是比较,结果将保留日期层次结构。

作为聚合

MIN(expression) 是聚合函数,返回单个聚合结果。这在可视化项中显示为 AGG(expression)

作为比较

MIN(expr1, expr2) 比较这两个值并返回一个行级值。

另请参见 MAX

MONTH

语法MONTH(date)
输出整数
定义以整数形式返回给定 <date> 的月份。
示例
MONTH(#1986-03-25#) = 3
说明另请参见 DAYWEEKQUARTERYEAR 以及 ISO 等效值

NOW

语法NOW()
输出日期时间
定义返回当前本地系统日期和时间。
示例
NOW() = 1986-03-25 1:08:21 PM
说明

NOW 不接受参数。

另请参见返回日期而不是日期时间的类似计算 TODAY

如果数据源是实时连接,则系统日期和时间可能位于另一个时区。有关如何解决此问题的详细信息,请参见知识库

QUARTER

语法QUARTER(date)
输出整数
定义以整数形式返回给定 <date> 的季度。
示例
QUARTER(#1986-03-25#) = 1
说明另请参见 DAYWEEKMONTHYEAR 以及 ISO 等效值

TODAY

语法TODAY()
输出日期
定义返回当前本地系统日期。
示例
TODAY() = 1986-03-25
说明

TODAY 不接受参数。

另请参见返回日期时间而不是日期的类似计算 NOW

如果数据源是实时连接,则系统日期可能位于另一个时区。有关如何解决此问题的详细信息,请参见知识库

WEEK

语法WEEK(date)
输出整数
定义以整数形式返回给定 <date> 的周。
示例
WEEK(#1986-03-25#) = 13
说明另请参见 DAYMONTHQUARTERYEAR 以及 ISO 等效值

YEAR

语法YEAR(date)
输出整数
定义以整数形式返回给定 <date> 的年份。
示例
YEAR(#1986-03-25#) = 1,986
说明另请参见 DAYWEEKMONTHQUARTER 以及 ISO 等效值

date_part

Tableau 中的许多日期函数都采用参数 date_part,这是一个字符串常量,它告诉函数要考虑日期的哪一部分,例如日、周、季度等。您可以使用的有效 date_part 值包括:

date_part
'year'四位数年份
'quarter'1-4
'month'1-12 或 "January"、"February" 等
'dayofyear'一年中的第几天;1 月 1 日为 1、2 月 1 日为 32,依此类推
'day'1-31
'weekday'1-7 或 "Sunday"、"Monday" 等
'week'1-52
'hour'0-23
'minute'0-59
'second'0-60
'iso-year'4 位数 ISO 8601 年份
'iso-quarter'1-4
'iso-week'1-52,每周始终从星期一开始
'iso-weekday'1-7,每周始终从星期一开始

逻辑函数

AND

语法<expr1> AND <expr2>
定义对两个表达式执行逻辑合取运算。(如果两边都为 true,则逻辑测试返回 true。)
输出布尔值(True 或 False)
示例
IF [Season] = "Spring" AND "[Season] = "Fall" 
THEN "It's the apocalypse and footwear doesn't matter"
END

“如果(Season = Spring)和(Season = Fall)同时为 true,则返回“It's the apocalypse and footwear doesn't matter”。

说明

通常与 IFIIF 一起使用。另请参见 NOT或者

如果两个表达式都为 TRUE(即不为 FALSENULL),则结果为 TRUE。如果任一表达式为 NULL,则结果为 NULL。在所有其他情况下,结果都为 FALSE

如果所创建的计算中的 AND 比较结果显示在工作表上,则 Tableau 显示 TRUEFALSE。如果要更改此情况,请使用设置格式对话框中的“设置格式”区域。

注意AND 运算符使用短路计算。这表示如果第一个表达式计算为 FALSE,则根本不会计算第二个表达式。如果第二个表达式在第一个表达式为 FALSE 时产生错误,则这可能十分有用,因为在这种情况下从不计算第二个表达式。

CASE

语法CASE <expression>
WHEN <value1> THEN <then1>
WHEN <value2> THEN <then2>
...
[ELSE <default>]
END
输出取决于 <then> 值的数据类型。
定义

expression 进行求值,并将其与指定选项(<value1><value2> 等)进行比较。遇到一个与表达式匹配的 value 时,CASE 返回相应的 return。如果未找到匹配值,则返回(可选)默认值。如果不存在默认值并且没有任何值匹配,则会返回 Null。

示例
CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END

“看看“Season”字段。如果值为 Summer,则返回 Sandals。如果值为 Winter,则返回 Boots。如果计算中的选项均不匹配“Season”字段中的选项,则返回 Sneakers。”

说明

另请参见 IFIIF

WHENTHENELSEEND 结合使用。

提示:很多时候,您可以使用组来获得与复杂 CASE 函数相同的结果,或者使用 CASE 来替换本机分组功能,例如前面的示例。您可能想测试哪个更适合您的场景。

ELSE

语法CASE <expression>
WHEN <value1> THEN <then1>
WHEN <value2> THEN <then2>
...
[ELSE <default>]
END
定义IFCASE 表达式的一个可选部分,用于指定如果没有一个测试表达式为 true 则返回的默认值。
示例
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSE 'Sneakers' 
END
CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END
说明

CASEWHENIFELSEIFTHENEND 一起使用

ELSE 对于 CASEIF 是可选的。在计算中,其中ELSE未指定,如果没有<test> 为 true 时,整体计算将返回 null。

ELSE不需要条件(例如 [Season] = "Winter")并且可以被认为是 null 处理的一种形式。

ELSEIF

语法[ELSEIF <test2> THEN <then2>]
定义IF 表达式的一个可选部分,用于指定初始 IF 之外的附加条件。
示例
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSEIF [Season] = "Spring" THEN 'Sneakers'
ELSEIF [Season] = "Autumn" THEN 'Sneakers'
ELSE 'Bare feet'
END
说明

IFTHENELSEEND 一起使用

ELSEIF 可以被认为是额外的 IF 子句。ELSEIF 是可选的,并且可以重复多次。

ELSE 不同,ELSEIF 需要一个条件(例如 [Season] = "Winter")。

END

定义用于结束一个 IFCASE 表达式。
示例
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSE 'Sneakers' 
END

“如果 Season = Summer,,则返回 Sandals。否则,请查看下一个表达式。如果 Season = Winter,则返回 Boots。如果两个表达式都不为 true,则返回 Sneakers。”

CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END

“看看“Season”字段。如果值为 Summer,则返回 Sandals。如果值为 Winter,则返回 Boots。如果计算中的选项均不匹配“Season”字段中的选项,则返回 Sneakers。”

说明

CASEWHENIFELSEIFTHENELSE 一起使用。

IF

语法IF <test1> THEN <then1>
[ELSEIF <test2> THEN <then2>...]
[ELSE <default>]
END
输出取决于 <then> 值的数据类型。
定义

测试一系列表达式,同时为第一个为 true 的 <test> 返回 <then> 值。

示例
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSE 'Sneakers' 
END

“如果 Season = Summer,,则返回 Sandals。否则,请查看下一个表达式。如果 Season = Winter,则返回 Boots。如果两个表达式都不为 true,则返回 Sneakers。”

说明

另请参见 IFIIF

ELSEIFTHENELSEEND 一起使用

IFNULL

语法IFNULL(expr1, expr2)
输出取决于 <expr> 值的数据类型。
定义

如果 <expr1> 不为 null,则返回该表达式,否则返回 <expr2>

示例
IFNULL([Assigned Room], "TBD")

“如果“Assigned Room”(分配的房间)字段不为 null,则返回其值。如果“Assigned Room”(分配的房间)字段为 null,则返回 TBD。”

说明

ISNULL 进行比较。IFNULL 始终返回一个值。ISNULL 返回一个布尔值(true 或 false)。

另请参见 ZN

IIF

语法IIF(<test>, <then>, <else>, [<unknown>])
输出取决于表达式中值的数据类型。
定义检查是否满足条件(<test>),并在 test 为 true 时返回 <then>,在 test 为 false 时返回 <else>,如果 test 为 null 则为可选值 <unknown>。如果未指定可选的 unknown,IIF 将返回 null。
示例
IIF([Season] = 'Summer', 'Sandals', 'Other footwear')

“如果 Season = Summer,,则返回 Sandals。否则返回 Other footwear”

IIF([Season] = 'Summer', 'Sandals', 
IIF('Season' = 'Winter', 'Boots', 'Other footwear')
)

“如果 Season = Summer,,则返回 Sandals。否则,请查看下一个表达式。如果 Season = Winter,则返回 Boots。如果两者均不为 true,则返回 Sneakers。”

IIF('Season' = 'Summer', 'Sandals', 
IIF('Season' = 'Winter', 'Boots',
IIF('Season' = 'Spring', 'Sneakers', 'Other footwear')
)
)

“如果 Season = Summer,,则返回 Sandals。否则,请查看下一个表达式。如果 Season = Winter,则返回 Boots。如果没有一个表达式为 true,则返回 Sneakers。”

说明

另请参见 IFCASE

IIF 没有等同于 ELSEIF(如 IF)或重复 WHEN 子句(如 CASE)的语句。相反,可以通过将 IIF 语句嵌套为 <unknown> 元素来按顺序计算多个测试。返回第一个(最外面的)true。

也就是说,在下面的计算中,结果将是红色,而不是橙色,因为一旦 A=A 计算为 true,表达式就会停止计算:

IIF('A' = 'A', 'Red', IIF('B' = 'B', 'Orange', IIF('C' = 'D', 'Yellow', 'Green')))

IN

语法<expr1> IN <expr2>
输出布尔值(True 或 False)
定义如果 <expr1> 中的任何值与 <expr2> 中的任何值匹配,则返回 TRUE
示例
SUM([Cost]) IN (1000, 15, 200)

“Cost 字段的值是 1000、15 还是 200?”

[Field] IN [Set]

“该字段的值是否存在于集合中?”

说明

<expr2> 中的值可以是集、文本值列表或合并字段。

另请参见 WHEN

ISDATE

语法ISDATE(string)
输出布尔值(True 或 False)
定义如果 <string> 为有效日期,则返回 true。输入表达式必须是字符串(文本)字段。
示例
ISDATE("2018-09-22")

“字符串 2018-09-22 是格式正确的日期吗?”

说明

什么被视为有效日期取决于对计算求值的系统的区域设置(链接在新窗口中打开)。例如:

在美国:

  • ISDATE("2018-09-22") = TRUE
  • ISDATE("2018-22-09") = FALSE

在英国:

  • ISDATE("2018-09-22") = FALSE
  • ISDATE("2018-22-09") = TRUE

ISNULL

语法ISNULL(expression)
输出布尔值(True 或 False)
定义

如果 <expression> 为 NULL(未包含有效数据),则返回 true。

示例
ISNULL([Assigned Room])

“Assigned Room(分配的房间)字段是否为 null?”

说明

IFNULL 进行比较。IFNULL 始终返回一个值。ISNULL 返回一个布尔值。

另请参见 ZN

MAX

语法MAX(expression)MAX(expr1, expr2)
输出与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 
定义

返回两个参数(必须为相同数据类型)中的最大值。

MAX 也可以聚合形式应用于单个字段。

示例
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
说明

对于字符串

MAX 通常是按字母顺序排在最后的值。

对于数据库数据源,MAX 字符串值在数据库为该列定义的排序序列中最高。

对于日期

对于日期,MAX 是最近的日期。如果 MAX 是聚合,结果不会有日期层次结构。如果 MAX 是比较,结果将保留日期层次结构。

作为聚合

MAX(expression) 是聚合函数,返回单个聚合结果。这在可视化项中显示为 AGG(expression)

作为比较

MAX(expr1, expr2) 比较这两个值并返回一个行级值。

另请参见 MIN

MIN

语法MIN(expression)MIN(expr1, expr2)
输出与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 
定义

返回两个参数(必须为相同数据类型)中的最小值。

MIN 也可以聚合形式应用于单个字段。

示例
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
说明

对于字符串

MIN 通常是按字母顺序排列在前面的值。

对于数据库数据源,MIN 字符串值在数据库为该列定义的排序序列中最低。

对于日期

对于日期,MIN 是最早的日期。如果 MIN 是聚合,结果不会有日期层次结构。如果 MIN 是比较,结果将保留日期层次结构。

作为聚合

MIN(expression) 是聚合函数,返回单个聚合结果。这在可视化项中显示为 AGG(expression)

作为比较

MIN(expr1, expr2) 比较这两个值并返回一个行级值。

另请参见 MAX

NOT

语法NOT <expression>
输出布尔值(True 或 False)
定义对一个表达式执行逻辑非运算。
示例
IF NOT [Season] = "Summer" 
THEN 'Don't wear sandals'
ELSE 'Wear sandals' 
END

“如果 Season 不等于 Summer,则返回 Don't wear sandals。否则,返回 Wear sandals。”

说明

通常与 IFIIF 一起使用。另请参见 DATE或者

或者

语法<expr1> OR <expr2>
输出布尔值(True 或 False)
定义对两个表达式执行逻辑析取操作。
示例
IF [Season] = "Spring" OR [Season] = "Fall" 
THEN "Sneakers"
END

“如果 (Season = Spring) 或 (Season = Fall) 为 true,则返回 Sneakers。”

说明

通常与 IFIIF 一起使用。另请参见 DATENOT

如果任一表达式为 TRUE,则结果为 TRUE。如果两个表达式都为 FALSE,则结果为 FALSE。如果两个表达式都为 NULL,则结果为 NULL

如果所创建的计算中的 OR 将比较结果显示在工作表上,则 Tableau 显示 TRUE 和 FALSE。如果要更改此情况,请使用设置格式对话框中的“设置格式”区域。

注意OR 运算符使用短路计算。这表示如果第一个表达式计算为 TRUE,则根本不会计算第二个表达式。如果第二个表达式在第一个表达式为 TRUE 时产生错误,则这可能十分有用,因为在这种情况下从不计算第二个表达式。

THEN

语法IF <test1> THEN <then1>
[ELSEIF <test2> THEN <then2>...]
[ELSE <default>]
END
定义IFELSEIFCASE表达式的必需部分,用于定义如果特定值或测试为 true 则返回什么结果。
示例
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSE 'Sneakers' 
END

“如果 Season = Summer,,则返回 Sandals。否则,请查看下一个表达式。如果 Season = Winter,则返回 Boots。如果两个表达式都不为 true,则返回 Sneakers。”

CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END

“看看“Season”字段。如果值为 Summer,则返回 Sandals。如果值为 Winter,则返回 Boots。如果计算中的选项均不匹配“Season”字段中的选项,则返回 Sneakers。”

说明

CASEWHENIFELSEIFTHENELSEEND 一起使用

WHEN

语法CASE <expression>
WHEN <value1> THEN <then1>
WHEN <value2> THEN <then2>
...
[ELSE <default>]
END
定义CASE 表达式的必需部分。查找第一个与 <expression> 匹配的 <value>,并返回对应的 <then>
示例
CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END

“看看“Season”字段。如果值为 Summer,则返回 Sandals。如果值为 Winter,则返回 Boots。如果计算中的选项均不匹配“Season”字段中的选项,则返回 Sneakers。”

说明

CASETHENELSEEND 一起使用。

CASE 也支持 WHEN IN构造,例如:

CASE <expression> 
WHEN IN <set1> THEN <then1>
WHEN IN <combinedfield> THEN <then2>
...
ELSE <default>
END

WHEN IN 中的值可以是集、文本值列表或合并字段。另请参见 IN

ZN

语法ZN(expression)
输出取决于 <expression> 的数据类型,或者为 0。
定义如果 <expression> 不为 null,则返回该表达式,否则返回零。
示例
ZN([Test Grade])

“如果测试成绩不为 null,则返回其值。如果测试成绩为 null,则返回 0。”

说明

ZNIFNULL 的特殊情况,其中如果表达式为 null,则替代项始终为 0,而不是在计算中指定。

ZN 在执行额外计算时特别有用,并且 null 将使整个计算为 null。但是,请谨慎将这些结果解释为 null 并不总是与 0 同义,并且可能代表缺失数据。

另请参见 ISNULL

聚合函数

ATTR

语法ATTR(expression)
定义如果它的所有行都有一个值,则返回该表达式的值。否则返回星号。会忽略 Null 值。

AVG

语法AVG(expression)
定义返回表达式中所有值的平均值。会忽略 Null 值。
说明AVG 只能用于数字字段。

COLLECT

语法COLLECT(spatial)
定义将参数字段中的值组合在一起的聚合计算。会忽略 Null 值。
说明COLLECT 只能用于空间字段。

CORR

语法CORR(expression1, expression2)
输出从 -1 到 1 的数字
定义返回两个表达式的皮尔森相关系数。
示例
example
说明

皮尔森相关系数衡量两个变量之间的线性关系。结果范围为 -1 至 +1(包括 -1 和 +1),其中 1 表示精确的正向线性关系,0 表示方差之间没有线性关系,而 −1 表示精确的反向关系。

CORR 结果的平方等于线性趋势线模型的 R 平方值。请参见“趋势线模型术语”(链接在新窗口中打开)

与表范围 LOD 表达式一起使用:

您可以使用 CORR,通过表范围的详细级别表达式(链接在新窗口中打开)来可视化解聚散点图中的相关性。例如:

{CORR(Sales, Profit)}

借助详细级别表达式,关联将在所有行上运行。如果您使用像 CORR(Sales, Profit)(不带两边的方括号可使其成为详细级别表达式)这样的公式,视图将显示散点图中每个单独的点与其他每个点(未定义)的关联。

数据库限制

CORR适用于以下数据源:Tableau 数据提取、Cloudera Hive、EXASolution、Firebird(版本 3.0 及更高版本)、Google BigQuery、Hortonworks Hadoop Hive、IBM PDA (Netezza)、Oracle、PostgreSQL、Presto、SybaseIQ、Teradata、Vertica。

对于其他数据源,请考虑提取数据或使用 WINDOW_CORR。请参见“表计算函数”(链接在新窗口中打开)

COUNT

语法COUNT(expression)
定义返回项目数。不对 Null 值计数。

COUNTD

语法COUNTD(expression)
定义返回组中不同项目的数量。不对 Null 值计数。

COVAR

语法COVAR(expression1, expression2)
定义返回两个表达式的样本协方差。
说明

协方差对两个变量的共同变化方式进行量化。正协方差指明两个变量趋向于向同一方向移动,平均来说,即一个变量的较大值趋向于与另一个变量的较大值对应。样本协方差使用非空数据点的数量 n - 1 来规范化协方差计算,而不是使用总体协方差(可用于 COVARP 函数)所使用的 n。当数据是用于估算较大总体的协方差的随机样本时,则样本协方差是合适的选择。

如果 <expression1><expression2> 相同(例如, COVAR([profit], [profit])),COVAR 将返回一个值,指明值分布的广泛程度。

COVAR(X, X) 的值等于 VAR(X)的值,也等于 STDEV(X)^2 的值。

数据库限制

COVAR适用于以下数据源:Tableau 数据提取、Cloudera Hive、EXASolution、Firebird(版本 3.0 及更高版本)、Google BigQuery、Hortonworks Hadoop Hive、IBM PDA (Netezza)、Oracle、PostgreSQL、Presto、SybaseIQ、Teradata、Vertica。

对于其他数据源,请考虑提取数据或使用 WINDOW_COVAR。请参见“表计算函数”(链接在新窗口中打开)

COVARP

语法COVARP(expression 1, expression2)
定义返回两个表达式的总体协方差。
说明

协方差对两个变量的共同变化方式进行量化。正协方差指明两个变量趋向于向同一方向移动,平均来说,即一个变量的较大值趋向于与另一个变量的较大值对应。总体协方差等于样本协方差除以 (n-1)/n,其中 n 是非空数据点的总数。如果存在可用于所有相关项的数据,则总体协方差是合适的选择,与之相反,在只有随机项子集的情况下,样本协方差(及 COVAR 函数)较为适合。

如果 <expression1><expression2> 相同(例如, COVARP([profit], [profit])),COVARP 将返回一个值,指明值分布的广泛程度。注意:COVARP(X, X) 注意:的值等于 VARP(X)的值,也等于 STDEVP(X)^2 的值。

数据库限制

COVARP 适用于以下数据源:Tableau 数据提取、Cloudera Hive、EXASolution、Firebird(版本 3.0 及更高版本)、Google BigQuery、Hortonworks Hadoop Hive、IBM PDA (Netezza)、Oracle、PostgreSQL、Presto、SybaseIQ、Teradata、Vertica

对于其他数据源,请考虑提取数据或使用 WINDOW_COVAR。请参见“表计算函数”(链接在新窗口中打开)

MAX

语法MAX(expression)MAX(expr1, expr2)
输出与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 
定义

返回两个参数(必须为相同数据类型)中的最大值。

MAX 也可以聚合形式应用于单个字段。

示例
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
说明

对于字符串

MAX 通常是按字母顺序排在最后的值。

对于数据库数据源,MAX 字符串值在数据库为该列定义的排序序列中最高。

对于日期

对于日期,MAX 是最近的日期。如果 MAX 是聚合,结果不会有日期层次结构。如果 MAX 是比较,结果将保留日期层次结构。

作为聚合

MAX(expression) 是聚合函数,返回单个聚合结果。这在可视化项中显示为 AGG(expression)

作为比较

MAX(expr1, expr2) 比较这两个值并返回一个行级值。

另请参见 MIN

MEDIAN

语法MEDIAN(expression)
定义返回表达式在所有记录中的中位数。会忽略 Null 值。
说明MEDIAN 只能用于数字字段。
数据库限制

MEDIAN 适用于以下数据源:Access、Amazon Redshift、Cloudera Hadoop、HP Vertica、IBM DB2、IBM PDA (Netezza)、Microsoft SQL Server、MySQL、SAP HANA、Teradata。

对于其他数据源类型,可以将数据提取到数据提取文件以使用此函数。请参见提取数据(链接在新窗口中打开)

MIN

语法MIN(expression)MIN(expr1, expr2)
输出与参数相同的数据类型,或者,如果参数的任何部分为 null,则为 NULL 
定义

返回两个参数(必须为相同数据类型)中的最小值。

MIN 也可以聚合形式应用于单个字段。

示例
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
说明

对于字符串

MIN 通常是按字母顺序排列在前面的值。

对于数据库数据源,MIN 字符串值在数据库为该列定义的排序序列中最低。

对于日期

对于日期,MIN 是最早的日期。如果 MIN 是聚合,结果不会有日期层次结构。如果 MIN 是比较,结果将保留日期层次结构。

作为聚合

MIN(expression) 是聚合函数,返回单个聚合结果。这在可视化项中显示为 AGG(expression)

作为比较

MIN(expr1, expr2) 比较这两个值并返回一个行级值。

另请参见 MAX

PERCENTILE

语法PERCENTILE(expression, number)
定义从给定表达式返回与指定 <number> 对应的百分位处的值。<number> 必须介于 0 到 1 之间(含 0 和 1),并且必须是数值常量。
示例
PERCENTILE([Score], 0.9)
数据库限制

此函数可用于以下数据源:非旧版 Microsoft Excel 和文本文件连接、数据提取和仅数据提取数据源类型(例如 Google Analytics、OData 或 Salesforce)、Sybase IQ 15.1 及更高版本数据源、Oracle 10 及更高版本的数据源、Cloudera Hive 和 Hortonworks Hadoop Hive 数据源、EXASolution 4.2 及更高版本的数据源。

对于其他数据源类型,可以将数据提取到数据提取文件以使用此函数。请参见提取数据(链接在新窗口中打开)

STDEV

语法STDEV(expression)
定义基于群体样本返回给定表达式中所有值的统计标准差。

STDEVP

语法STDEVP(expression)
定义基于有偏差群体返回给定表达式中所有值的统计标准差。

SUM

语法SUM(expression)
定义返回表达式中所有值的总计。会忽略 Null 值。
说明SUM 只能用于数字字段。

VAR

语法VAR(expression)
定义基于群体样本返回给定表达式中所有值的统计方差。

VARP

语法VARP(expression)
定义对整个群体返回给定表达式中所有值的统计方差。
用户函数

FULLNAME( )

语法FULLNAME( )
输出字符串
定义

返回当前用户的全名。

示例
FULLNAME( )

此函数返回当前已登录用户的全名,例如“Hamlin Myrer”。

[Manager] = FULLNAME( )

如果经理“Hamlin Myrer”已登录,则仅当视图中的“Manager”字段包含“Dave Hallsten”时,此示例才会返回 TRUE。

说明

此函数检查:

  • Tableau CloudTableau Server:已登录用户的全名
  • Tableau Desktop:用户的本地或网络全名

用户筛选器

用作筛选器时,计算字段(例如 [Username field] = FULLNAME( ))可用于创建用户筛选器,该筛选器仅显示与登录到服务器的人员相关的数据。

ISFULLNAME

语法ISFULLNAME("User Full Name")
输出布尔值
定义

如果当前用户的全名与指定的全名匹配,则返回 TRUE;如果不匹配,则返回 FALSE

示例
ISFULLNAME("Hamlin Myrer")
说明

<"User Full Name"> 参数必须是文字字符串,而非字段。

此函数检查:

  • Tableau CloudTableau Server:已登录用户的全名
  • Tableau Desktop:用户的本地或网络全名

ISMEMBEROF

语法ISMEMBEROF("Group Name")
输出布尔值或 null
定义

如果当前使用 Tableau 的用户是与给定字符串匹配的组的成员,则返回 TRUE,如果他们不是成员,则返回 FALSE,如果他们未登录,则返回 NULL

示例
ISMEMBEROF('Superstars')
ISMEMBEROF('domain.lan\Sales')
说明

<"Group Full Name"> 参数必须是文字字符串,而非字段。

如果用户已登录 Tableau CloudTableau Server,组成员身份由 Tableau 组确定。如果给定字符串是“All Users”,该函数将返回 TRUE

ISMEMBEROF( ) 函数也将接受 Active Directory 域。必须使用组名称在计算中声明 Active Directory 域。

如果对用户的组成员身份进行更改,则基于组成员身份的数据更改将反映在新会话的工作簿或视图中。现有会话将反映陈旧数据。

ISUSERNAME

语法ISUSERNAME("username")
输出布尔值
定义如果当前用户的用户名与指定的用户名匹配,则返回 TRUE;如果不匹配,则返回 FALSE
示例
ISUSERNAME("hmyrer")
说明

<"username"> 参数必须是文字字符串,而非字段。

此函数检查:

  • Tableau CloudTableau Server:已登录用户的用户名
  • Tableau Desktop:用户的本地或网络用户名

USERDOMAIN( )

语法USERDOMAIN( )
输出字符串
定义返回当前用户的域。
说明

此函数检查:

  • Tableau CloudTableau Server:登录用户的用户域
  • Tableau Desktop:如果用户在域上,则为本地域

USERNAME( )

语法USERNAME( )
输出字符串
定义返回当前用户的用户名。
示例
USERNAME( )

此函数返回已登录用户的用户名,例如“hmyrer”。

[Manager] = USERNAME( )

如果经理“hmyrer”已登录,则仅当视图中的“Manager”字段包含“hmyrern”时,此示例才会返回 TRUE。

说明

此函数检查:

  • Tableau CloudTableau Server:已登录用户的用户名
  • Tableau Desktop:用户的本地或网络用户名

用户筛选器

用作筛选器时,计算字段(例如 [Username field] = USERNAME( ))可用于创建用户筛选器,该筛选器仅显示与登录到服务器的人员相关的数据。

USERATTRIBUTE

注意:仅适用于在 Tableau Cloud 中嵌入工作流。有关详细信息,请参见身份验证和嵌入式视图(链接在新窗口中打开)

语法USERATTRIBUTE('attribute_name')
输出字符串或 null
定义

如果 <'attribute_name'> 是传递给 Tableau 的 JSON Web 令牌 (JWT) 的一部分,计算返回 <'attribute_name'> 的第一个值。

如果 <'attribute_name'> 不存在,则返回 null。

示例

假设“Region”(区域)是 JWT 中包含的用户属性,并(使用站点管理员已配置的已连接应用传递给 Tableau)。

作为工作簿作者,您可以将可视化项设置为根据指定区域筛选数据。在该筛选器中,您可以引用以下计算。

[Region] = USERATTRIBUTE("Region")

当来自西部地区的 User2 查看嵌入式可视化项时,Tableau 仅显示西部地区的相应数据。

说明如果期望 <'attribute_name'> 返回多个值,您可以使用 USERATTRIBUTEINCLUDES 函数。

USERATTRIBUTEINCLUDES

注意:仅适用于在 Tableau Cloud 中嵌入工作流。有关详细信息,请参见身份验证和嵌入式视图(链接在新窗口中打开)

语法USERATTRIBUTEINCLUDES('attribute_name', 'expected_value')
输出布尔值
定义

如果以下两个条件都成立,则返回 TRUE

  • <'attribute_name'> 是传递给 Tableau 的 JSON Web 令牌 (JWT) 的一部分
  • <'attribute_name'> 值之一等于 <'expected_value'>

否则返回 FALSE

示例

假设“Region”(区域)是 JWT 中包含的用户属性,并(使用站点管理员已配置的已连接应用传递给 Tableau)。

作为工作簿作者,您可以将可视化项设置为根据指定区域筛选数据。在该筛选器中,您可以引用以下计算。

USERATTRIBUTEINCLUDES('Region', [Region])

如果来自西部地区的 User2 访问嵌入式可视化项,Tableau 会检查“Region”(区域)用户属性是否与“[Region]”(区域)字段值之一匹配。如果为 true,可视化项将显示适当的数据。

当来自北部地区的另一位 User3 访问相同的可视化项时,她无法看到任何数据,因为没有与“[Region]”(区域)字段值匹配的项。

表计算

FIRST( )


返回从当前行到分区中第一行的行数。例如,下面的视图显示每季度销售额。在 Date 分区中计算 FIRST() 时,第一行与第二行之间的偏移为 -1。

示例

当前行索引为 3 时,FIRST() = -2

INDEX( )


返回分区中当前行的索引,不包含与值有关的任何排序。第一个行索引从 1 开始。例如,下表显示每季度销售额。当在 Date 分区中计算 INDEX() 时,各行的索引分别为 1、2、3、4 等。

示例

对于分区中的第三行,INDEX() = 3

LAST( )


返回从当前行到分区中最后一行的行数。例如,下表显示每季度销售额。在 Date 分区中计算 LAST() 时,最后一行与第二行之间的偏移为 5。

示例

当前行索引为 3(共 7 行)时,LAST() = 4

LOOKUP(expression, [offset])


返回目标行(指定为与当前行的相对偏移)中表达式的值。使用 FIRST() + n 和 LAST() - n 作为相对于分区中第一行/最后一行的目标偏移量定义的一部分。如果省略了 offset,则可以在字段菜单上设置要比较的行。如果无法确定目标行,则此函数返回 NULL。

下面的视图显示每季度销售额。当在 Date 分区中计算 LOOKUP (SUM(Sales), 2) 时,每行都会显示接下来 2 个季度的销售额值。

示例

LOOKUP(SUM([Profit]), FIRST()+2) 计算分区第三行中的 SUM(Profit)。

MODEL_EXTENSION 函数

模型扩展程序函数:

  • MODEL_EXTENSION_BOOL

  • MODEL_EXTENSION_INT

  • MODEL_EXTENSION_REAL

  • MODEL_EXTENSION_STRING

用于将数据传递到外部服务(例如 R、TabPy 或 Matlab)上部署的模型。请参见分析扩展程序(链接在新窗口中打开)

MODEL_PERCENTILE(target_expression, predictor_expression(s))


返回期望值小于或等于观察标记的概率(介于 0 和 1 之间),由目标表达式和其他预测因子定义。这是后验预测分布函数,也称为累积分布函数 (CDF)。

此函数是 MODEL_QUANTILEL 的逆函数。有关预测建模函数的信息,请参见预测建模函数在 Tableau 中的工作方式

示例

以下公式返回销售额总和标记的分位数,根据订单计数进行调整。

MODEL_PERCENTILE(SUM([Sales]), COUNT([Orders]))

MODEL_QUANTILE(quantile, target_expression, predictor_expression(s))


以指定的分位数返回由目标表达式和其他预测因子定义的可能范围内的目标数值。这是后验预测分位数。

此函数是 MODEL_PERCENTILE 的逆函数。有关预测建模函数的信息,请参见预测建模函数在 Tableau 中的工作方式

示例

以下公式返回中位数 (0.5) 预测销售额总和,根据订单数进行调整。

MODEL_QUANTILE(0.5, SUM([Sales]), COUNT([Orders]))

PREVIOUS_VALUE(expression)


返回此计算在上一行中的值。如果当前行是分区的第一行,则返回给定表达式。

示例

SUM([Profit]) * PREVIOUS_VALUE(1) 计算 SUM(Profit) 的运行产品。

RANK(expression, ['asc' | 'desc'])


返回分区中当前行的标准竞争排名。为相同的值分配相同的排名。使用可选的 'asc' | 'desc' 参数指定升序或降序顺序。默认为降序。

利用此函数,将对值集 (6, 9, 9, 14) 进行排名 (4, 2, 2, 1)。

在排名函数中,会忽略 Null。它们不进行编号,且不计入百分位排名计算的总记录数中。

有关不同排名选项的信息,请参见排名计算

示例

下图显示对一组值执行各种排名函数(RANK、RANK_DENSE、RANK_MODIFIED、RANK_PERCENTILE 和 RANK_UNIQUE)的效果。数据集包含 14 名学生(学生 A 到 N)的相关信息;“Age”(年龄)列显示每个学生的当前年龄(所有学生都在 17 岁和 20 岁之间)。其余的列会显示每个排名函数对年龄值集的影响,并始终假定函数的默认顺序(升序或降序)。

RANK_DENSE(expression, ['asc' | 'desc'])


返回分区中当前行的密集排名。为相同的值分配相同的排名,但不会向数字序列中插入间距。使用可选的 'asc' | 'desc' 参数指定升序或降序顺序。默认为降序。

利用此函数,将对值集 (6, 9, 9, 14) 进行排名 (3, 2, 2, 1)。

在排名函数中,会忽略 Null。它们不进行编号,且不计入百分位排名计算的总记录数中。

有关不同排名选项的信息,请参见排名计算

RANK_MODIFIED(expression, ['asc' | 'desc'])


返回分区中当前行的调整后竞争排名。为相同的值分配相同的排名。使用可选的 'asc' | 'desc' 参数指定升序或降序顺序。默认为降序。

利用此函数,将对值集 (6, 9, 9, 14) 进行排名 (4, 3, 3, 1)。

在排名函数中,会忽略 Null。它们不进行编号,且不计入百分位排名计算的总记录数中。

有关不同排名选项的信息,请参见排名计算

RANK_PERCENTILE(expression, ['asc' | 'desc'])


返回分区中当前行的百分位排名。使用可选的 'asc' | 'desc' 参数指定升序或降序顺序。默认为升序。

利用此函数,将对值集 (6, 9, 9, 14) 进行排名 (0, 0.67, 0.67, 1.00)。

在排名函数中,会忽略 Null。它们不进行编号,且不计入百分位排名计算的总记录数中。

有关不同排名选项的信息,请参见排名计算

RANK_UNIQUE(expression, ['asc' | 'desc'])


返回分区中当前行的唯一排名。为相同的值分配相同的排名。使用可选的 'asc' | 'desc' 参数指定升序或降序顺序。默认为降序。

利用此函数,将对值集 (6, 9, 9, 14) 进行排名 (4, 2, 3, 1)。

在排名函数中,会忽略 Null。它们不进行编号,且不计入百分位排名计算的总记录数中。

有关不同排名选项的信息,请参见排名计算

RUNNING_AVG(expression)


返回给定表达式从分区中第一行到当前行的运行平均值。

下面的视图显示每季度销售额。当在 Date 分区中计算 RUNNING_AVG(SUM([Sales]) 时,结果为每个季度的销售额值的运行平均值。

示例

RUNNING_AVG(SUM([Profit])) 计算 SUM(Profit) 的运行平均值。

RUNNING_COUNT(expression)


返回给定表达式从分区中第一行到当前行的运行计数。

示例

RUNNING_COUNT(SUM([Profit])) 计算 SUM(Profit) 的运行计数。

RUNNING_MAX(expression)


返回给定表达式从分区中第一行到当前行的运行最大值。

示例

RUNNING_MAX(SUM([Profit])) 计算 SUM(Profit) 的运行最大值。

RUNNING_MIN(expression)


返回给定表达式从分区中第一行到当前行的运行最小值。

示例

RUNNING_MIN(SUM([Profit])) 计算 SUM(Profit) 的运行最小值。

RUNNING_SUM(expression)


返回给定表达式从分区中第一行到当前行的运行总计。

示例

RUNNING_SUM(SUM([Profit])) 计算 SUM(Profit) 的运行总计

SIZE()


返回分区中的行数。例如,下面的视图显示每季度销售额。在 Date 分区中有七行,因此 Date 分区的 Size() 为 7。

示例

当前分区包含五行时 SIZE() = 5

SCRIPT_ 函数

脚本函数:

  • SCRIPT_BOOL

  • SCRIPT_INT

  • SCRIPT_REAL

  • SCRIPT_STRING

用于将数据传递到外部服务,例如 R、TabPy 或 Matlab。请参见分析扩展程序(链接在新窗口中打开)

TOTAL(expression)


返回表计算分区内表达式的总计。

示例

假定您从此视图开始:

您可以打开计算编辑器并创建名为“总额”的新字段。

然后可以将“总额”拖到“文本”上以替换 SUM(Sales)。您的视图会发生更改,使其总计值基于默认的“计算依据”值:

这会产生问题,默认的“计算依据”值是什么?如果在“数据”窗格中右键单击(在 Mac 上按住 Control 单击)“总额”,并选择“编辑”,则会提供一点额外的信息:

默认的“计算依据”值是“表(横穿)”。结果是,“总额”会汇总每个表行的值。因此,您看到的每一行的值是表原始版本中值的总和。

原始表内 2011/Q1 行中的值为 $8601、$6579、$44262 和 $15006。在“总额”替换 SUM(Sales) 之后,表中的值都为 $74,448,这是四个原始值的总和。

请注意,将“总额”拖到“文本”上之后“总额”旁边会出现小三角:

这表明该字段正在使用表计算。您可以右键单击字段并选择“编辑表计算”,以将您的函数重定向到不同的“计算依据”值。例如,可以将其设置为“表(向下)”。在此情况下,您的表将如下所示:

TOTAL(expression)


返回表计算分区内表达式的总计。

示例

假定您从此视图开始:

您可以打开计算编辑器并创建名为“总额”的新字段。

然后可以将“总额”拖到“文本”上以替换 SUM(Sales)。您的视图会发生更改,使其总计值基于默认的“计算依据”值:

这会产生问题,默认的“计算依据”值是什么?如果在“数据”窗格中右键单击(在 Mac 上按住 Control 单击)“总额”,并选择“编辑”,则会提供一点额外的信息:

默认的“计算依据”值是“表(横穿)”。结果是,“总额”会汇总每个表行的值。因此,您看到的每一行的值是表原始版本中值的总和。

原始表内 2011/Q1 行中的值为 $8601、$6579、$44262 和 $15006。在“总额”替换 SUM(Sales) 之后,表中的值都为 $74,448,这是四个原始值的总和。

请注意,将“总额”拖到“文本”上之后“总额”旁边会出现小三角:

这表明该字段正在使用表计算。您可以右键单击字段并选择“编辑表计算”,以将您的函数重定向到不同的“计算依据”值。例如,可以将其设置为“表(向下)”。在此情况下,您的表将如下所示:

WINDOW_CORR(expression1, expression2, [start, end])


返回窗口内两个表达式的皮尔森相关系数。窗口定义为与当前行的偏移。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了 start 和 end,则使用整个分区。

皮尔森相关系数衡量两个变量之间的线性关系。结果范围为 -1 至 +1(包括 -1 和 +1),其中 1 表示精确的正向线性关系,比如一个变量中的正向更改即表示另一个变量中对应量级的正向更改,0 表示方差之间没有线性关系,而 −1 表示精确的反向关系。

有一个等效的聚合函数:CORR。请参阅 Tableau 函数(按字母顺序)(链接在新窗口中打开)

示例

以下公式返回 SUM(Profit)SUM(Sales) 从前五行到当前行的皮尔森相关系数。

WINDOW_CORR(SUM[Profit]), SUM([Sales]), -5, 0)

WINDOW_COUNT(expression, [start, end])


返回窗口中表达式的计数。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。

示例

WINDOW_COUNT(SUM([Profit]), FIRST()+1, 0) 计算从第二行到当前行的 SUM(Profit) 计数

WINDOW_COVAR(expression1, expression2, [start, end])


返回窗口内两个表达式的样本协方差。窗口定义为与当前行的偏移。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了 start 和 end 参数,则窗口为整个分区。

样本协方差使用非空数据点的数量 n - 1 来规范化协方差计算,而不是使用总体协方差(及 WINDOW_COVARP 函数)所使用的 n。当数据是用于估算较大总体的协方差的随机样本时,则样本协方差是合适的选择。

有一个等效的聚合函数:COVAR。请参阅 Tableau 函数(按字母顺序)(链接在新窗口中打开)

示例

以下公式返回 SUM(Profit)SUM(Sales) 从前两行到当前行的样本协方差。

WINDOW_COVAR(SUM([Profit]), SUM([Sales]), -2, 0)

WINDOW_COVARP(expression1, expression2, [start, end])


返回窗口内两个表达式的总体协方差。窗口定义为与当前行的偏移。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了 start 和 end,则使用整个分区。

总体协方差等于样本协方差除以 (n-1)/n,其中 n 是非空数据点的总数。如果存在可用于所有相关项的数据,则总体协方差是合适的选择,与之相反,在只有随机项子集的情况下,样本协方差(及 WINDOW_COVAR 函数)较为适合。

有一个等效的聚合函数:COVARP。Tableau 函数(按字母顺序)(链接在新窗口中打开)

示例

以下公式返回 SUM(Profit)SUM(Sales) 从前两行到当前行的总体协方差。

WINDOW_COVARP(SUM([Profit]), SUM([Sales]), -2, 0)

WINDOW_MEDIAN(expression, [start, end])


返回窗口中表达式的中值。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。

例如,下面的视图显示每季度利润。Date 分区中的窗口中值返回所有日期的中值利润。

示例

WINDOW_MEDIAN(SUM([Profit]), FIRST()+1, 0) 计算从第二行到当前行的 SUM(Profit) 中值。

WINDOW_MAX(expression, [start, end])


返回窗口中表达式的最大值。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。

例如,下面的视图显示每季度销售额。Date 分区中的窗口最大值返回所有日期间的最大销售额。

示例

WINDOW_MAX(SUM([Profit]), FIRST()+1, 0) 计算从第二行到当前行的 SUM(Profit) 最大值。

WINDOW_MIN(expression, [start, end])


返回窗口中表达式的最小值。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。

例如,下面的视图显示每季度销售额。Date 分区中的窗口最小值返回所有日期间的最小销售额。

示例

WINDOW_MIN(SUM([Profit]), FIRST()+1, 0) 计算从第二行到当前行的 SUM(Profit) 最小值。

WINDOW_PERCENTILE(expression, number, [start, end])


返回与窗口中指定百分位相对应的值。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。

示例

WINDOW_PERCENTILE(SUM([Profit]), 0.75, -2, 0) 返回 SUM(Profit) 的前面两行到当前行的第 75 个百分位。

WINDOW_STDEV(expression, [start, end])


返回窗口中表达式的样本标准差。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。

示例

WINDOW_STDEV(SUM([Profit]), FIRST()+1, 0) 计算从第二行到当前行的 SUM(Profit) 标准差。

WINDOW_STDEVP(expression, [start, end])


返回窗口中表达式的有偏差标准差。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。

示例

WINDOW_STDEVP(SUM([Profit]), FIRST()+1, 0) 计算从第二行到当前行的 SUM(Profit) 标准差。

WINDOW_SUM(expression, [start, end])


返回窗口中表达式的总计。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。

例如,下面的视图显示每季度销售额。Date 分区中计算的窗口总计返回所有季度的销售额总计。

示例

WINDOW_SUM(SUM([Profit]), FIRST()+1, 0) 计算从第二行到当前行的 SUM(Profit) 总和。

WINDOW_VAR(expression, [start, end])


返回窗口中表达式的样本方差。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。

示例

WINDOW_VAR((SUM([Profit])), FIRST()+1, 0) 计算从第二行到当前行的 SUM(Profit) 方差。

WINDOW_VARP(expression, [start, end])


返回窗口中表达式的有偏差方差。窗口用与当前行的偏移定义。使用 FIRST()+n 和 LAST()-n 表示与分区中第一行或最后一行的偏移。如果省略了开头和结尾,则使用整个分区。

示例

WINDOW_VARP(SUM([Profit]), FIRST()+1, 0) 计算从第二行到当前行的 SUM(Profit) 方差。

直通函数 (RAWSQL)

RAWSQL 直通函数可用于将 SQL 表达式直接发送到数据库,而不由 Tableau 进行解析。如果您有 Tableau 不能识别的自定义数据库函数,则可以使用直通函数调用这些自定义函数。

您的数据库通常不会理解在 Tableau 中显示的字段名称。因为 Tableau 不会解释包含在直通函数中的 SQL 表达式,所以在表达式中使用 Tableau 字段名称可能会导致错误。可以使用替换语法将用于 Tableau 计算的正确字段名称或表达式插入直通 SQL。例如,假设您有一个计算一组中值的函数,则可以对 Tableau 列 [Sales] 调用该函数,如下所示:

RAWSQLAGG_REAL(“MEDIAN(%1)”, [Sales])

因为 Tableau 不解释该表达式,所以您必须定义聚合。在使用聚合表达式时,可以使用下面描述的 RAWSQLAGG 函数。

RAWSQL 直通函数可能不使用数据提取或已发布数据源(如果它们包含关系)。

RAWSQL 函数

Tableau 中提供了以下 RAWSQL 函数。

RAWSQL_BOOL(“sql_expr”, [arg1], …[argN])


从给定 SQL 表达式返回布尔结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。

示例

在示例中,%1 等于 [Sales],%2 等于 [Profit]。

RAWSQL_BOOL(“IIF( %1 > %2, True, False)”, [Sales], [Profit])

RAWSQL_DATE(“sql_expr”, [arg1], …[argN])


从给定 SQL 表达式返回日期结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。

示例

在下例中,%1 等于 [Order Date]。

RAWSQL_DATE(“%1”, [Order Date])

RAWSQL_DATETIME(“sql_expr”, [arg1], …[argN])


从给定 SQL 表达式返回日期和时间结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Delivery Date]。

示例

RAWSQL_DATETIME(“MIN(%1)”, [Delivery Date])

RAWSQL_INT(“sql_expr”, [arg1], …[argN])


从给定 SQL 表达式返回整数结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Sales]。

示例

RAWSQL_INT(“500 + %1”, [Sales])

RAWSQL_REAL(“sql_expr”, [arg1], …[argN])


从直接传递给基础数据库的给定 SQL 表达式返回数字结果。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Sales]

示例

RAWSQL_REAL(“-123.98 * %1”, [Sales])

RAWSQL_SPATIAL


从直接传递给基础数据源的给定 SQL 表达式返回空间数据。在 SQL 表达式中将 %n 用作数据库值的替换语法。

示例

在本例中,%1 等于 [Geometry]。

RAWSQL_SPATIAL("%1", [Geometry])

RAWSQL_STR(“sql_expr”, [arg1], …[argN])


从直接传递给基础数据库的给定 SQL 表达式返回字符串。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Customer Name]。

示例

RAWSQL_STR(“%1”, [Customer Name])

RAWSQLAGG_BOOL(“sql_expr”, [arg1], …[argN])


从给定聚合 SQL 表达式返回布尔结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。

示例

在示例中,%1 等于 [Sales],%2 等于 [Profit]。

RAWSQLAGG_BOOL(“SUM( %1) >SUM( %2)”, [Sales], [Profit])

RAWSQLAGG_DATE(“sql_expr”, [arg1], …[argN])


从给定聚合 SQL 表达式返回日期结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Order Date]。

示例

RAWSQLAGG_DATE(“MAX(%1)”, [Order Date])

RAWSQLAGG_DATETIME(“sql_expr”, [arg1], …[argN])


从给定聚合 SQL 表达式返回日期和时间结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Delivery Date]。

示例

RAWSQLAGG_DATETIME(“MIN(%1)”, [Delivery Date])

RAWSQLAGG_INT(“sql_expr”, [arg1,] …[argN])


从给定聚合 SQL 表达式返回整数结果。SQL 表达式直接传递给基础数据库。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Sales]。

示例

RAWSQLAGG_INT(“500 + SUM(%1)”, [Sales])

RAWSQLAGG_REAL(“sql_expr”, [arg1,] …[argN])


从直接传递给基础数据库的给定聚合 SQL 表达式返回数字结果。在 SQL 表达式中将 %n 用作数据库值的替换语法。在下例中,%1 等于 [Sales]

示例

RAWSQLAGG_REAL(“SUM( %1)”, [Sales])

RAWSQLAGG_STR(“sql_expr”, [arg1,] …[argN])


从直接传递给基础数据库的给定聚合 SQL 表达式返回字符串。在 SQL 表达式中将 %n 用作数据库值的替换语法。在此示例中,%1 等于 [Discount]。

示例

RAWSQLAGG_STR(“AVG(%1)”, [Discount])

空间函数

空间函数允许您执行高级空间分析,并将空间文件与其他格式的数据(如文本文件或电子表格)相结合。

AREA

语法AREA(Spatial Polygon, 'units')
输出数字
定义返回 <spatial polygon> 的总表面积。
示例
AREA([Geometry], 'feet')
说明

支持的单位名称(计算时必须用引号括起来,例如'miles'):

  • :meters、metres、m
  • 公里:kilometers、kilometres、km
  • 英里:miles、mi
  • 英尺:feet、ft

BUFFER

语法BUFFER(Spatial Point, distance, 'units')

BUFFER(Linestring, distance, 'units')

  • :meters、metres、m
  • 公里:kilometers、kilometres、km
  • 英里:miles、mi
  • 英尺:feet、ft
输出几何图形
定义

对于空间点,返回以 <spatial point> 为中心的多边形形状,半径由 <distance><unit> 值确定。

对于线串,计算通过包含距线串的半径距离内的所有点而形成的多边形。

示例
BUFFER([Spatial Point Geometry], 25, 'mi')
BUFFER(MAKEPOINT(47.59, -122.32), 3, 'km')
BUFFER(MAKELINE(MAKEPOINT(0, 20),MAKEPOINT (30, 30)),20,'km'))
说明

支持的单位名称(计算时必须用引号括起来,例如'miles'):

  • :meters、metres、m
  • 公里:kilometers、kilometres、km
  • 英里:miles、mi
  • 英尺:feet、ft

DISTANCE

语法DISTANCE(SpatialPoint1, SpatialPoint2, 'units')
输出数字
定义以指定 <unit> 返回两点之间的距离测量值。
示例
DISTANCE([Origin Point],[Destination Point], 'km')
说明

支持的单位名称(计算时必须用引号括起来,例如'miles'):

  • :meters、metres、m
  • 公里:kilometers、kilometres、km
  • 英里:miles、mi
  • 英尺:feet、ft
数据库限制此函数只能使用实时连接创建,但在将数据源转换为数据提取的情况下将继续工作。

INTERSECTS

语法INTERSECTS (geometry1, geometry2)
输出布尔值
定义返回 true 或 false,指示两个几何图形是否在空间中重叠。
说明支持的组合:点/多边形、线/多边形和多边形/多边形。

MAKELINE

语法MAKELINE(SpatialPoint1, SpatialPoint2)
输出几何图形(线)
定义在两点之间生成线标记
示例
MAKELINE(MAKEPOINT(47.59, -122.32), MAKEPOINT(48.5, -123.1))
说明对于构建出发地-目的地地图很有用。

MAKEPOINT

语法MAKEPOINT(latitude, longitude, [SRID])
输出几何图形(点)
定义

将数据从 <latitude><longitude> 列转换为空间对象。

如果添加了可选的 <SRID> 参数,输入可以是其他投影地理坐标。

示例
MAKEPOINT(48.5, -123.1)
MAKEPOINT([AirportLatitude], [AirportLongitude])
MAKEPOINT([Xcoord],[Ycoord], 3493)
说明

MAKEPOINT 无法使用自动生成的纬度和经度字段。数据源必须包含本机坐标。

SRID 是一种空间参考标识符,它使用 ESPG 参考系代码(链接在新窗口中打开)来指定坐标系。如果未指定 SRID,则假设使用 WGS84,并将参数视为以度数为单位的纬度/经度。

您可以使用 MAKEPOINT 使数据源具备空间特性,以便可以使用空间联接将其与空间文件联接。有关详细信息,请参见在 Tableau 中联接空间文件

LENGTH

语法LENGTH(geometry, 'units')
输出数字
定义使用给定的 <units> 返回 <geometry> 中的一个或多个线串的大地路径长度。
示例
LENGTH([Spatial], 'metres')
说明如果 geometry 参数没有线串,则结果为 <NaN>,但允许使用其他元素。

OUTLINE

语法OUTLINE(spatial polygon)
输出几何图形
定义将多边形几何图形转换为线串。
说明

对于为轮廓创建单独的图层很有用,该图层的样式可以与填充不同。

支持多边形内的多边形。

SHAPETYPE

语法SHAPETYPE(geometry)
输出字符串
定义返回描述空间 <geometry> 结构的字符串,例如 Empty、Point、MultiPoint、LineString、MultiLinestring、Polygon、MultiPolygon、Mixed 和 unsupported。
示例
SHAPETYPE(MAKEPOINT(48.5, -123.1)) = "Point"

VALIDATE

语法VALIDATE(spatial geometry)
输出几何图形
定义确认空间值中几何图形的拓扑正确性。如果由于诸如面的周长与自身相交等问题而导致该值无法用于分析,则结果将为 null。如果几何图形正确,结果将是原始几何图形。
示例

UNION(VALIDATE([Geometry]))

其他函数
有关详细信息,请参见直通函数 (RAWSQL)(链接在新窗口中打开)

正则表达式

REGEXP_REPLACE(字符串, 模式, 替换字符串)

返回给定字符串的副本,其中正则表达式模式被替换字符串取代。此函数可用于文本文件、Hadoop Hive、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata(版本 14.1 及更高版本)、Snowflake 和 Oracle 数据源。

对于 Tableau 数据提取,模式和替换字符串必须为常量。

有关正则表达式语法的信息,请参见数据源的文档。对于 Tableau 数据提取,正则表达式语法遵守 ICU(Unicode 国际化组件)的标准,ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的正则表达式(链接在新窗口中打开)页面。

示例

REGEXP_REPLACE('abc 123', '\s', '-') = 'abc-123'

REGEXP_MATCH(字符串, 模式)

如果指定的字符串的子字符串匹配正则表达式模式,则返回 true。此函数可用于文本文件、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata(版本 14.1 及更高版本)、Impala 2.3.0(通过 Cloudera Hadoop 数据源)、Snowflake 和 Oracle 数据源。

对于 Tableau 数据提取,模式必须为常量。

有关正则表达式语法的信息,请参见数据源的文档。对于 Tableau 数据提取,正则表达式语法遵守 ICU(Unicode 国际化组件)的标准,ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的正则表达式(链接在新窗口中打开)页面。

示例

REGEXP_MATCH('-([1234].[The.Market])-','\[\s*(\w*\.)(\w*\s*\])')=true

REGEXP_EXTRACT(string, pattern)


返回与正则表达式模式匹配的字符串部分。此函数可用于文本文件、Hadoop Hive、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata(版本 14.1 及更高版本)、Snowflake 和 Oracle 数据源。

对于 Tableau 数据提取,模式必须为常量。

有关正则表达式语法的信息,请参见数据源的文档。对于 Tableau 数据提取,正则表达式语法遵守 ICU(Unicode 国际化组件)的标准,ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的正则表达式(链接在新窗口中打开)页面。

示例

REGEXP_EXTRACT('abc 123', '[a-z]+\s+(\d+)') = '123'

REGEXP_EXTRACT_NTH(string, pattern, index)

返回与正则表达式模式匹配的字符串部分。子字符串匹配到第 n 个捕获组,其中 n 是给定的索引。如果索引为 0,则返回整个字符串。此函数可用于文本文件、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata(版本 14.1 及更高版本)和 Oracle 数据源。

对于 Tableau 数据提取,模式必须为常量。

有关正则表达式语法的信息,请参见数据源的文档。对于 Tableau 数据提取,正则表达式语法遵守 ICU(Unicode 国际化组件)的标准,ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的正则表达式(链接在新窗口中打开)页面。

示例

REGEXP_EXTRACT_NTH('abc 123', '([a-z]+)\s+(\d+)', 2) = '123'

Hadoop Hive 的特定函数

注意:只有 PARSE_URL 和 PARSE_URL_QUERY 函数可用于 Cloudera Impala 数据源。

GET_JSON_OBJECT(JSON 字符串, JSON 路径)

根据 JSON 路径返回 JSON 字符串中的 JSON 对象。

PARSE_URL(字符串, url_part)

返回给定 URL 字符串的组成部分(由 url_part 定义)。有效的 url_part 值包括:'HOST'、'PATH'、'QUERY'、'REF'、'PROTOCOL'、'AUTHORITY'、'FILE' 和 'USERINFO'。

示例

PARSE_URL('http://www.tableau.com', 'HOST') = 'www.tableau.com'

PARSE_URL_QUERY(字符串, 密钥)

返回给定 URL 字符串中的指定查询参数的值。查询参数由密钥定义。

示例

PARSE_URL_QUERY('http://www.tableau.com?page=1&cat=4', 'page') = '1'

XPATH_BOOLEAN(XML 字符串, XPath 表达式字符串)

如果 XPath 表达式匹配节点或计算为 true,则返回 true。

示例

XPATH_BOOLEAN('<values> <value id="0">1</value><value id="1">5</value>', 'values/value[@id="1"] = 5') = true

XPATH_DOUBLE(XML 字符串, XPath 表达式字符串)

返回 XPath 表达式的浮点值。

示例

XPATH_DOUBLE('<values><value>1.0</value><value>5.5</value> </values>', 'sum(value/*)') = 6.5

XPATH_FLOAT(XML 字符串, XPath 表达式字符串)

返回 XPath 表达式的浮点值。

示例

XPATH_FLOAT('<values><value>1.0</value><value>5.5</value> </values>','sum(value/*)') = 6.5

XPATH_INT(XML 字符串, XPath 表达式字符串)

返回 Xpath 表达式的数值;或者,如果 Xpath 表达式无法计算为数字,则返回零。

示例

XPATH_INT('<values><value>1</value><value>5</value> </values>','sum(value/*)') = 6

XPATH_LONG(XML 字符串, XPath 表达式字符串)

返回 Xpath 表达式的数值;或者,如果 Xpath 表达式无法计算为数字,则返回零。

示例

XPATH_LONG('<values><value>1</value><value>5</value> </values>','sum(value/*)') = 6

XPATH_SHORT(XML 字符串, XPath 表达式字符串)

返回 Xpath 表达式的数值;或者,如果 Xpath 表达式无法计算为数字,则返回零。

示例

XPATH_SHORT('<values><value>1</value><value>5</value> </values>','sum(value/*)') = 6

XPATH_STRING(XML 字符串, XPath 表达式字符串)

返回第一个匹配节点的文本。

示例

XPATH_STRING('<sites ><url domain="org">http://www.w3.org</url> <url domain="com">http://www.tableau.com</url></sites>', 'sites/url[@domain="com"]') = 'http://www.tableau.com'

Google BigQuery 的特定函数

DOMAIN(string_url)

在给定 URL 字符串的情况下返回作为字符串的域。

示例

DOMAIN('http://www.google.com:80/index.html') = 'google.com'

GROUP_CONCAT(表达式)

将来自每个记录的值连接为一个由逗号分隔的字符串。此函数在处理字符串时的作用类似于 SUM()。

示例

GROUP_CONCAT(Region) = "Central,East,West"

HOST(string_url)

在给定 URL 字符串的情况下返回作为字符串的主机名。

示例

HOST('http://www.google.com:80/index.html') = 'www.google.com:80'

LOG2(数字)

返回数字的对数底 2。

示例

LOG2(16) = '4.00'

LTRIM_THIS(字符串, 字符串)

返回第一个字符串(移除了在前导位置出现的任何第二个字符串)。

示例

LTRIM_THIS('[-Sales-]','[-') = 'Sales-]'

RTRIM_THIS(字符串, 字符串)

返回第一个字符串(移除了在尾随位置出现的任何第二个字符串)。

示例

RTRIM_THIS('[-Market-]','-]') = '[-Market'

TIMESTAMP_TO_USEC(表达式)

将 TIMESTAMP 数据类型转换为 UNIX 时间戳(以微秒为单位)。

示例

TIMESTAMP_TO_USEC(#2012-10-01 01:02:03#)=1349053323000000

USEC_TO_TIMESTAMP(表达式)

将 UNIX 时间戳(以微秒为单位)转换为 TIMESTAMP 数据类型。

示例

USEC_TO_TIMESTAMP(1349053323000000) = #2012-10-01 01:02:03#

TLD(string_url)

在给定 URL 字符串的情况下,返回 URL 中的顶层域以及的任何国家/地区域。

示例

TLD('http://www.google.com:80/index.html') = '.com'

TLD('http://www.google.co.uk:80/index.html') = '.co.uk'

 



想要了解函数的更多信息?

请阅读函数主题(链接在新窗口中打开)

另请参见

Tableau 函数(按字母顺序)(链接在新窗口中打开)

感谢您的反馈!您的反馈已成功提交。谢谢!