Tableau 函数(按类别)

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

数字函数

函数

语法

说明

ABS

ABS(number)

返回给定数字的绝对值。

示例:

ABS(-7) = 7
ABS([Budget Variance])

第二个示例返回 Budget Variance 字段中包含的所有数字的绝对值。

ACOS

ACOS(number)

返回给定数字的反余弦。结果以弧度表示。

示例:

ACOS(-1) = 3.14159265358979

ASIN

ASIN(number)

返回给定数字的反正弦。结果以弧度表示。

示例:

ASIN(1) = 1.5707963267949

ATAN

ATAN(number)

返回给定数字的反正切。结果以弧度表示。

示例:

ATAN(180) = 1.5652408283942

ATAN2

ATAN2(y number, x number)

返回两个给定数字(x 和 y)的反正切。结果以弧度表示。

示例:

ATAN2(2, 1) = 1.10714871779409

CEILING

CEILING(number)

将数字舍入为值相等或更大的最近整数。

示例:

CEILING(3.1415) = 4

按数据源的可用性:

数据源 Support
Microsoft Access 不支持
Microsoft Excel 支持
文本文件 支持
统计文件 支持
Tableau Server 支持
Actian Vector 不支持
Amazon Aurora for MySQL 不支持
Amazon EMR Hadoop Hive 支持
Amazon Redshift 不支持
Aster Database 不支持
Cloudera Hadoop 支持
DataStax Enterprise 支持
EXASOL 不支持
Firebird 不支持
Google Analytics 支持
Google BigQuery 支持
Google Cloud SQL 不支持
Google Sheets 不支持
Hortonworks Hadoop Hive 支持
IBM BigInsights 不支持
IBM DB2 不支持
IBM PDA (Netezza) 不支持
MapR Hadoop Hive 支持
MarkLogic 不支持
Microsoft Analysis Services 不支持
Microsoft PowerPivot 不支持
Microsoft SQL Server 支持
MySQL 不支持
Oracle 不支持
Oracle Essbase 不支持
Actian Matrix (ParAccel) 不支持
Pivotal Greenplum 不支持
PostgreSQL 不支持
Progress OpenEdge 不支持
Salesforce 支持
SAP HANA 不支持
SAP Sybase ASE 不支持
SAP Sybase IQ 不支持
Spark SQL 支持
Splunk 不支持
Teradata 不支持
Teradata OLAP Connector 不支持
Vertica 不支持

COS

COS(number)

返回角度的余弦。以弧度为单位指定角度。

示例:

COS(PI( ) /4) = 0.707106781186548

COT

COT(number)

返回角度的余切。以弧度为单位指定角度。

示例:

COT(PI( ) /4) = 1

DEGREES

DEGREES(number)

将以弧度表示的给定数字转换为度数。

示例:

DEGREES(PI( )/4) = 45.0

DIV

DIV(整数 1, 整数 2)

返回将整数 1 除以整数 2 的除法运算的整数部分。

示例:

DIV(11,2) = 5

EXP

EXP(number)

返回 e 的给定数字次幂。

示例:

EXP(2) = 7.389
EXP(-[Growth Rate]*[Time])

FLOOR

FLOOR(number)

将数字舍入为值相等或更小的最近整数。

示例:

FLOOR(3.1415) = 3

按数据源的可用性:

数据源 Support
Microsoft Access 不支持
Microsoft Excel 支持
文本文件 支持
统计文件 支持
Tableau Server 支持
Actian Vector 不支持
Amazon Aurora for MySQL 不支持
Amazon EMR Hadoop Hive 支持
Amazon Redshift 不支持
Aster Database 不支持
Cloudera Hadoop 支持
DataStax Enterprise 支持
EXASOL 不支持
Firebird 不支持
Google Analytics 支持
Google BigQuery 支持
Google Cloud SQL 不支持
Hortonworks Hadoop Hive 支持
IBM BigInsights 不支持
IBM DB2 不支持
IBM Netezza 不支持
MapR Hadoop Hive 支持
MarkLogic 不支持
Microsoft Analysis Services 不支持
Microsoft PowerPivot 不支持
Microsoft SQL Server 支持
MySQL 不支持
Oracle 不支持
Oracle Essbase 不支持
ParAccel 不支持
Pivotal Greenplum 不支持
PostgreSQL 不支持
Progress OpenEdge 不支持
Salesforce 支持
SAP HANA 不支持
SAP Sybase ASE 不支持
SAP Sybase IQ 不支持
Spark SQL 支持
Splunk 不支持
Teradata 不支持
Teradata OLAP Connector 不支持
Vertica 不支持

HEXBINX

HEXBINX(number, number)

将 x、y 坐标映射到最接近的六边形数据桶的 x 坐标。数据桶的边长为 1,因此,可能需要相应地缩放输入。

HEXBINX 和 HEXBINY 是用于六边形数据桶的分桶和标绘函数。六边形数据桶是对 x/y 平面(例如地图)中的数据进行可视化的有效而简洁的选项。由于数据桶是六边形的,因此每个数据桶都非常近似于一个圆,并最大程度地减少了从数据点到数据桶中心的距离变化。这使得聚类分析更加准确并且能提供有用的信息。

示例:

HEXBINX([Longitude], [Latitude])

HEXBINY

HEXBINY(number, number)

将 x、y 坐标映射到最接近的六边形数据桶的 y 坐标。数据桶的边长为 1,因此,可能需要相应地缩放输入。

示例:

HEXBINY([Longitude], [Latitude])

LN

LN(number)

返回数字的自然对数。如果数字小于或等于 0,则返回 Null

LOG

LOG(number [, base])

返回数字以给定底数为底的对数。如果省略了底数值,则使用底数 10。

MAX

MAX(number, number)

返回两个参数(必须为相同类型)中的较大值。如果任一参数为 Null,则返回 NullMAX 也可应用于聚合计算中的单个字段。

示例:

MAX(4,7)
MAX(Sales,Profit)
MAX([First Name],[Last Name])

MIN

MIN(number, number)

返回两个参数(必须为相同类型)中的较小值。如果任一参数为 Null,则返回 NullMIN 也可应用于聚合计算中的单个字段。

示例:

MIN(4,7)
MIN(Sales,Profit)
MIN([First Name],[Last Name])

PI

PI( )

返回数字常量 pi:3.14159。

POWER

POWER(number, power)

计算数字的指定次幂。

示例:

POWER(5,2) = 52 = 25
POWER(Temperature, 2)

也可以使用 ^ 符号:

5^2 = POWER(5,2) = 25

RADIANS

RADIANS(number)

将给定数字从度数转换为弧度。

示例:

RADIANS(180) = 3.14159

ROUND

ROUND(number, [decimals])

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

示例:

此示例将每个 Sales 值舍入为整数:

ROUND(Sales)

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

SIGN

SIGN(number)

返回数字的符号:可能的返回值为:在数字为负时为 -1,在数字为零时为 0,在数字为正时为 1。

示例:

如果 profit 字段的平均值为负值,则

SIGN(AVG(Profit)) = -1

SIN

SIN(number)

返回角度的正弦。以弧度为单位指定角度。

示例:

SIN(0) = 1.0
SIN(PI( )/4) = 0.707106781186548

SQRT

SQRT(number)

返回数字的平方根。

示例:

SQRT(25) = 5

SQUARE

SQUARE(number)

返回数字的平方。

示例:

SQUARE(5) = 25

TAN

TAN(number)

返回角度的正切。以弧度为单位指定角度。

示例:

TAN(PI ( )/4) = 1.0

ZN

ZN(expression)

如果表达式不为 Null,则返回该表达式,否则返回零。使用此函数可使用零值而不是 Null 值。

示例:

ZN([Profit]) = [Profit]

字符串函数

函数

语法

定义

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"

日期函数

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

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

函数

语法

说明

DATEADD

DATEADD(date_part, interval, date)

返回指定日期,该日期的指定 date_part 中添加了指定的数字 interval

支持 ISO 8601 日期。

示例:

DATEADD('month', 3, #2004-04-15#) = 2004-07-15 12:00:00 AM

该表达式会向日期 #2004-04-15# 添加三个月。

DATEDIFF

DATEDIFF(date_part, date1, date2, [start_of_week])

返回 date1date2 之差(以 date_part 的单位表示)。

start_of_week 参数(可用于指定哪一天是一周的第一天)是可选的。可能的值为“monday”、“tuesday”等。如果省略,一周的开始由数据源确定。请参见数据源的日期属性

支持 ISO 8601 日期。

示例:

DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'monday')= 1
DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'sunday')= 0

第一个表达式返回 1,因为当 start_of_week 为 'monday' 时,9 月 22(星期日)和 9 月 24(星期二)不属于同一周。第一个表达式返回 0,因为当 start_of_week 为 'sunday' 时,9 月 22(星期日)和 9 月 24(星期二)属于同一周。

DATENAME

DATENAME(date_part, date, [start_of_week])

以字符串的形式返回 datedate_partstart_of_week 参数(可用于指定哪一天是一周的第一天)是可选的。可能的值为“monday”、“tuesday”等。如果忽略 start_of_week,则一周的开始由数据源确定。请参见数据源的日期属性

支持 ISO 8601 日期。

示例:

DATENAME('year', #2004-04-15#) = "2004"
DATENAME('month', #2004-04-15#) = "April"

DATEPARSE DATEPARSE(date_format, [date_string])

返回 [date_string] 作为日期。 date_format 参数将描述 [字符串] 字段的排列方式。由于可通过各种方式对字符串字段进行排序,因此 date_format 必须完全匹配。有关完整解释,请参见将字段转换为日期字段

示例:

DATEPARSE('yyyy-MM-dd', #2004-04-15#) = "April 4, 2004"

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

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

DATEPART

DATEPART(date_part, date, [start_of_week])

以整数的形式返回 datedate_part

start_of_week 参数(可用于指定哪一天是一周的第一天)是可选的。可能的值为“monday”、“tuesday”等。如果忽略 start_of_week,则一周的开始由数据源确定。请参见数据源的日期属性

注意: 当 date_part 为工作日时,会忽略 start_of_week 参数。这是因为 Tableau 依赖固定工作日顺序来应用偏移。

支持 ISO 8601 日期。

示例:

DATEPART('year', #2004-04-15#) = 2004
DATEPART('month', #2004-04-15#) = 4

DATETRUNC

DATETRUNC(date_part, date, [start_of_week])

按 date_part 指定的准确度截断指定日期。此函数返回新日期。例如,以月份级别截断处于月份中间的日期时,此函数返回当月的第一天。start_of_week 参数(可用于指定哪一天是一周的第一天)是可选的。可能的值为“monday”、“tuesday”等。如果忽略 start_of_week,则一周的开始由数据源确定。请参见数据源的日期属性

支持 ISO 8601 日期。

示例:

DATETRUNC('quarter', #2004-08-15#) = 2004-07-01 12:00:00 AM
DATETRUNC('month', #2004-04-15#) = 2004-04-01 12:00:00 AM

DAY

DAY(date)

以整数的形式返回给定日期的天。

示例:

DAY(#2004-04-12#) = 12

ISDATE

ISDATE(string)

如果给定字符串为有效日期,则返回 true。

示例:

ISDATE("April 15, 2004") = true

MAKEDATE

MAKEDATE(year, month, day)

返回一个依据指定年份、月份和日期构造的日期值。

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

示例:

MAKEDATE(2004, 4, 15) = #April 15, 2004#

MAKEDATETIME

MAKEDATETIME(date, time)

返回合并了 date 和 time 的 datetime。日期可以是 date、datetime 或 string 类型。时间必须是 datetime。

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

示例:

MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM#
MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM#

MAKETIME

MAKETIME(hour, minute, second)

返回一个依据指定小时、分钟和秒构造的日期值。

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

示例:

MAKETIME(14, 52, 40) = #14:52:40#

MAX

MAX(expression) or MAX(expr1, expr2)

通常应用于数字,不过也适用于日期。返回 ab 中的较大值(ab 必须为相同类型)。如果任一参数为 Null,则返回 Null

示例:

MAX(#2004-01-01# ,#2004-03-01#) = 2004-03-01 12:00:00 AM
MAX([ShipDate1], [ShipDate2])

MIN

MIN(expression) or MIN(expr1, expr2)

通常应用于数字,不过也适用于日期。返回 ab 中的较小值(ab 必须为相同类型)。如果任一参数为 Null,则返回 Null

示例:

MIN(#2004-01-01# ,#2004-03-01#) = 2004-01-01 12:00:00 AM
MIN([ShipDate1], [ShipDate2])

MONTH

MONTH(date)

以整数的形式返回给定日期的月份。

示例:

MONTH(#2004-04-15#) = 4

NOW

NOW( )

返回当前本地系统日期和时间。

示例:

NOW( ) = 2004-04-15 1:08:21 PM

QUARTER QUARTER ( )

以整数的形式返回给定日期的季度。

示例:

WEEK (#2004-04-15#) = 16

TODAY

TODAY( )

返回当前日期。

示例:

TODAY( ) = 2004-04-15

WEEK WEEK( )

以整数的形式返回给定日期的周。

示例:

WEEK (#2004-04-15#) = 16

YEAR

YEAR (date)

以整数的形式返回给定日期的年份。

示例:

YEAR(#2004-04-15#) = 2004

ISOQUARTER ISOQUARTER (date)

以整数的形式返回给定日期的基于 ISO8601 周的季度。

示例:

ISOQUARTER (#2005-03-29#) = 2

ISOWEEK ISOWEEK (date)

以整数的形式返回给定日期基于 ISO8601 周的周。

示例:

ISOWEEK (#2004-03-29#) = 14

ISOWEEKDAY ISOWEEKDAY (date)

以整数的形式返回给定日期基于 ISO8601 周的平日。

示例:

ISOWEEKDAY (#2004-03-29#) = 1

ISOYEAR ISOYEAR (date)

以整数的形式返回给定日期的基于 ISO8601 周的年。

示例:

ISOYEAR (#2003-12-29#) = 2004

逻辑函数

函数

语法

说明

IN <expr1> IN <expr2>

如果 <expr1> 中的任何值与 <expr2> 中的任何值匹配,则返回 TRUE。

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

示例:

SUM([Cost]) IN (1000, 15, 200)

[SET] IN [COMBINED FIELD]

AND

IF <expr1> AND <expr2> THEN <then> END

对两个表达式执行逻辑合取运算。

示例:

IF (ATTR([Market]) = "Africa" AND SUM([Sales]) > [Emerging Threshold] )THEN "Well Performing"

CASE CASE <expression> WHEN <value1> THEN <return1> WHEN <value2> THEN <return2> ... ELSE <default return> END

执行逻辑测试并返回相应的值。CASE 函数可评估 expression,并将其与一系列值(value1value2 等)比较,然后返回结果。遇到一个与 expression 匹配的值时,CASE 返回相应的返回值。如果未找到匹配值,则使用默认返回表达式。如果不存在默认返回表达式并且没有任何值匹配,则会返回 Null。

CASE 比 IIF 或 IF THEN ELSE 更易于使用。

通常,您使用一个 IF 函数来执行一系列任意测试,并使用 CASE 函数搜索与表达式的匹配值。但 CASE 函数都可以重写为 IF 函数,不过 CASE 函数一般更加简明。

很多时候可以使用组获得与复杂 case 函数相同的结果。

示例:

CASE [Region] WHEN 'West' THEN 1 WHEN 'East' THEN 2 ELSE 3 END

CASE LEFT(DATENAME('weekday',[Order Date]),3) WHEN 'Sun' THEN 0 WHEN 'Mon' THEN 1 WHEN 'Tue' THEN 2 WHEN 'Wed' THEN 3 WHEN 'Thu' THEN 4 WHEN 'Fri' THEN 5 WHEN 'Sat' THEN 6 END

ELSE IF <expr> THEN <then> ELSE <else> END

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

示例:

If [Profit] > 0 THEN 'Profitable' ELSE 'Loss' END

ELSEIF IF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END

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

示例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END

END IF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END

测试一系列表达式,同时为第一个为 true 的 <expr> 返回 <then> 值。必须放在表达式的结尾。

示例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END

IF IF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END

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

示例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END

IFNULL IFNULL(expr1, expr2)

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

示例:

IFNULL([Profit], 0)

IIF IIF(test, then, else, [unknown])

检查某个条件是否得到满足,如果为 TRUE 则返回一个值,如果为 FALSE 则返回另一个值,如果未知,则返回可选的第三个值或 NULL。

示例:

IIF([Profit] > 0, 'Profit', 'Loss')

ISDATE ISDATE(string)

如果给定字符串为有效日期,则返回 true。

示例:

ISDATE("2004-04-15") = True

ISNULL ISNULL(expression)

如果表达式为 NULL(未包含有效数据),则返回 true。

示例:

ISNULL([Profit])

MAX MAX(expression)Max(expr1, expr2)

返回单一表达式所有记录中的最大值,或返回每条记录两个表达式中的最大值。

示例:

MAX([Sales])

MIN MIN(expression)MIN(expr1, expr2)

返回单一表达式所有记录中的最小值,或返回每条记录两个表达式中的最小值。

示例:

MIN([Profit])

NOT IF NOT <expr> THEN <then> END

对一个表达式执行逻辑非运算。

示例:

IF NOT [Profit] > 0 THEN "Unprofitable" END

或者 IF <expr1> OR <expr2> THEN <then> END

对两个表达式执行逻辑析取操作。

示例:

IF [Profit] < 0 OR [Profit] = 0 THEN "Needs Improvement" END

THEN IF <expre> THEN <then> [ELSEIF ,expr2> THEN <then2>...] [ELSE <else>] END

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

示例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Break even' ELSE 'unprofitable' END

WHEN CASE <expr> WHEN <Value1> THEN <return1> ... [ELSE <else>] END

查找第一个与 <expr> 匹配的 <value>,并返回对应的 <return>。

示例:

CASE [RomanNumberal] WHEN 'I' THEN 1 WHEN 'II' THEN 2 ELSE 3 END

ZN ZN(expression)

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

示例:

ZN([Profit])

聚合函数

聚合和浮点算法:有些聚合的结果可能并非总是完全符合预期。例如,您可能发现 Sum 函数返回值 -1.42e-14 作为列数,而您知道求和结果应该正好为 0。出现这种情况的原因是电气电子工程师学会 (IEEE) 754 浮点标准要求数字以二进制格式存储,这意味着数字有时会以极高的精度级别舍入。您可以使用 ROUND 函数(请参见数字函数)或者通过将数字格式设置为显示较少小数位来消除这种潜在误差。

函数

语法

定义

ATTR

ATTR(expression)

如果它的所有行都有一个值,则返回该表达式的值。否则返回星号。会忽略 Null 值。

AVG

AVG(expression)

返回表达式中所有值的平均值。AVG 只能用于数字字段。会忽略 Null 值。

COLLECT

COLLECT (spatial)

将参数字段中的值组合在一起的聚合计算。会忽略 Null 值。

注意:COLLECT 函数只能用于空间字段。

示例:

COLLECT ([Geometry])

CORR

CORR(expression 1, expression2)

返回两个表达式的皮尔森相关系数。

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

CORR 可用于以下数据源:

  • Tableau 数据提取(您可以从任何数据源中创建数据提取)
  • Cloudera Hive
  • EXASolution
  • Firebird(版本 3.0 及更高版本)
  • Google BigQuery
  • Hortonworks Hadoop Hive
  • IBM PDA (Netezza)
  • Oracle
  • PostgreSQL
  • Presto
  • SybaseIQ
  • Teradata
  • Vertica

对于其他数据源,请考虑提取数据或使用 WINDOW_CORR。请参见表计算函数

注意:CORR 结果的平方等于线性趋势线模型的 R 平方值。请参见趋势线模型术语

示例:

您可以使用 CORR 在解聚散点图中呈现关联。实现此目的的方式是使用表范围详细级别表达式。例如:

{CORR(Sales, Profit)}

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

请参见表范围

COUNT

COUNT(expression)

返回组中的项目数。不对 Null 值计数。

COUNTD

COUNTD(expression)

返回组中不同项目的数量。不对 Null 值计数。此函数在下列情况下不可用:在 Tableau Desktop 8.2 之前创建的使用 Microsoft Excel 或文本文件数据源的工作簿、使用旧版连接的工作簿和使用 Microsoft Access 数据源的工作簿。将数据提取到数据提取文件以使用此函数。请参见提取数据

COVAR

COVAR(expression 1, expression2)

返回两个表达式的样本协方差

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

COVAR 可用于以下数据源:

  • Tableau 数据提取(您可以从任何数据源中创建数据提取)
  • Cloudera Hive
  • EXASolution
  • Firebird(版本 3.0 及更高版本)
  • Google BigQuery
  • Hortonworks Hadoop Hive
  • IBM PDA (Netezza)
  • Oracle
  • PostgreSQL
  • Presto
  • SybaseIQ
  • Teradata
  • Vertica

对于其他数据源,请考虑提取数据或使用 WINDOW_COVAR。请参见表计算函数

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

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

示例:

以下公式返回“Sales”“Profit”的样本协方差。

COVAR([Sales], [Profit])

COVARP

COVARP(expression 1, expression2)

返回两个表达式的总体协方差

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

COVARP 可用于以下数据源:

  • Tableau 数据提取(您可以从任何数据源中创建数据提取)
  • Cloudera Hive
  • EXASolution
  • Firebird(版本 3.0 及更高版本)
  • Google BigQuery
  • Hortonworks Hadoop Hive
  • IBM PDA (Netezza)
  • Oracle
  • PostgreSQL
  • Presto
  • SybaseIQ
  • Teradata
  • Vertica

对于其他数据源,请考虑提取数据或使用 WINDOW_COVARP。请参见表计算函数

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

注意:COVARP(X, X) 的值等于 VARP(X) 的值,也等于 STDEVP(X)^2 的值。

示例:

以下公式返回“Sales”“Profit”的总体协方差。

COVARP([Sales], [Profit])

MAX

MAX(expression)

返回表达式在所有记录中的最大值。如果表达式为字符串值,则此函数返回按字母顺序定义的最后一个值。

MEDIAN

MEDIAN(expression)

返回表达式在所有记录中的中位数。中位数只能用于数字字段。会忽略 Null 值。此函数不适用于在 Tableau Desktop 8.2 版之前创建或使用旧版连接的工作簿。它也不适用于使用以下任何数据源的连接:

  • 访问
  • Amazon Redshift
  • Cloudera Hadoop
  • HP Vertica
  • IBM DB2
  • IBM PDA (Netezza)
  • Microsoft SQL Server
  • MySQL
  • SAP HANA
  • Teradata

对于其他数据源类型,可以将数据提取到数据提取文件以使用此函数。请参见提取数据

MIN

MIN(expression)

返回表达式在所有记录中的最小值。如果表达式为字符串值,则此函数返回按字母顺序定义的第一个值。

PERCENTILE

PERCENTILE(expression, number)

从给定表达式返回与指定数字对应的百分位处的值。数字必须介于 0 到 1 之间(含 0 和 1),例如 0.66,并且必须是数值常量。

此函数可用于以下数据源。

  • 非旧版 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)

返回表达式中所有值的总计。SUM 只能用于数字字段。会忽略 Null 值。

VAR

VAR(expression)

基于群体样本返回给定表达式中所有值的统计方差。

VARP

VARP(expression)

对整个群体返回给定表达式中所有值的统计方差。

用户函数

函数

语法

说明

FULLNAME

FULLNAME( )

返回当前用户的全名。当用户已登录时,这是 Tableau Server 或 Tableau Online 全名;否则为 Tableau Desktop 用户的本地或网络全名。

示例:

[Manager]=FULLNAME( )

如果经理 Dave Hallsten 已登录,则仅当视图中的“Manager”字段包含“Dave Hallsten”时,此示例才会返回 True。用作筛选器时,此计算字段可用于创建用户筛选器,该筛选器仅显示与登录到服务器的人员相关的数据。

ISFULLNAME

ISFULLNAME(string)

如果当前用户的全名与指定的全名匹配,则返回 true;如果不匹配,则返回 false。当用户已登录时,此函数使用 Tableau Server 或 Online 全名;否则它使用 Tableau Desktop 用户的本地或网络全名。

示例:

ISFULLNAME(“Dave Hallsten”)

如果 Dave Hallsten 为当前用户,则此示例返回 true,否则返回 false。

ISMEMBEROF

ISMEMBEROF(string)

如果当前使用 Tableau 的人员是与给定字符串匹配的组的成员,则返回 true。如果当前使用 Tableau 的人员已登录,则组成员身份由 Tableau Server 或 Tableau Online 上的组确定。如果该人员未登录,则此函数返回 NULL。

注意:如果给定字符串为“All Users”,则不管是登录到 Tableau Server 或 Tableau Online,函数都将返回“True”。

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

示例:

IF ISMEMBEROF(‘domain.lan\Sales’) THEN “Sales” ELSE “Other” END

ISUSERNAME

ISUSERNAME(string)

如果当前用户的用户名与指定的用户名匹配,则返回 true;如果不匹配,则返回 false。当用户已登录时,此函数使用 Tableau Server 或 Online 用户名;否则它使用 Tableau Desktop 用户的本地或网络用户名。

示例:

ISUSERNAME(“dhallsten”)

如果 dhallsten 为当前用户,则此示例返回 true,否则返回 false。

注意:“All Users”将始终返回 true。

USERDOMAIN

USERDOMAIN()

当当前用户已登录到 Tableau Server 时,返回该用户的域。如果 Tableau Desktop 用户在域上,则返回 Windows 域。否则,此函数返回一个空字符串。

示例:

[Manager]=USERNAME() AND [Domain]=USERDOMAIN()

USERNAME

USERNAME( )

返回当前用户的用户名。当用户已登录时,这是 Tableau Server 或 Tableau Online 用户名;否则为 Tableau Desktop 用户的本地或网络用户名。

示例:

[Manager]=USERNAME( )

如果经理 dhallsten 已登录,则仅当视图中的“Manager”字段为“dhallsten”时,此函数才会返回 True。用作筛选器时,此计算字段可用于创建用户筛选器,该筛选器仅显示与登录到服务器的人员相关的数据。

表计算

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_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 名学生(StudentA 到 StudentN)的相关信息;“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_BOOL


返回指定表达式的布尔结果。表达式直接传递给正在运行的分析扩展程序服务实例。

在 R 表达式中,使用 .argn(带前导句点)引用参数(.arg1、.arg2 等)。

在 Python 表达式中,使用 _argn(带前导下划线)。

示例

在此 R 示例中,.arg1 等于 SUM([Profit]):

SCRIPT_BOOL("is.finite(.arg1)", SUM([Profit]))

对于华盛顿州中的商店 ID,下一示例返回 True,否则返回 False。此示例可以是标题为 IsStoreInWA 的计算字段的定义。

SCRIPT_BOOL('grepl(".*_WA", .arg1, perl=TRUE)',ATTR([Store ID]))

Python 的命令将采用以下形式:

SCRIPT_BOOL("return map(lambda x : x > 0, _arg1)", SUM([Profit]))

SCRIPT_INT


返回指定表达式的整数结果。表达式直接传递给正在运行的分析扩展程序服务实例。

在 R 表达式中,使用 .argn(带前导句点)引用参数(.arg1、.arg2 等)

在 Python 表达式中,使用 _argn(带前导下划线)。

示例

在此 R 示例中,.arg1 等于 SUM([Profit]):

SCRIPT_INT("is.finite(.arg1)", SUM([Profit]))

在下一示例中,使用 k-means clustering 创建三个群集:

SCRIPT_INT('result <- kmeans(data.frame(.arg1,.arg2,.arg3,.arg4), 3);result$cluster;', SUM([Petal length]), SUM([Petal width]),SUM([Sepal length]),SUM([Sepal width]))

Python 的命令将采用以下形式:

SCRIPT_INT("return map(lambda x : int(x * 5), _arg1)", SUM([Profit]))

SCRIPT_REAL


返回指定表达式的实数结果。表达式直接传递给正在运行的分析扩展程序服务实例。在

在 R 表达式中,使用 .argn(带前导句点)引用参数(.arg1、.arg2 等)

在 Python 表达式中,使用 _argn(带前导下划线)。

示例

在此 R 示例中,.arg1 等于 SUM([Profit]):

SCRIPT_REAL("is.finite(.arg1)", SUM([Profit]))

下一示例将温度值从摄氏值转换为华氏值。

SCRIPT_REAL('library(udunits2);ud.convert(.arg1, "celsius", "degree_fahrenheit")',AVG([Temperature]))

Python 的命令将采用以下形式:

SCRIPT_REAL("return map(lambda x : x * 0.5, _arg1)", SUM([Profit]))

SCRIPT_STR


返回指定表达式的字符串结果。表达式直接传递给正在运行的分析扩展程序服务实例。

在 R 表达式中,使用 .argn(带前导句点)引用参数(.arg1、.arg2 等)

在 Python 表达式中,使用 _argn(带前导下划线)。

示例

在此 R 示例中,.arg1 等于 SUM([Profit]):

SCRIPT_STR("is.finite(.arg1)", SUM([Profit]))

下一示例将从更复杂的字符串(采用原始格式 13XSL_CA, A13_WA)中提取州名缩写:

SCRIPT_STR('gsub(".*_", "", .arg1)',ATTR([Store ID]))

Python 的命令将采用以下形式:

SCRIPT_STR("return map(lambda x : x[:2], _arg1)", ATTR([Region]))

TOTAL(expression)


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

示例

假定您从此视图开始:

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

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

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

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

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

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

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

WINDOW_AVG(expression, [start, end])


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

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

示例

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

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 直通函数不使用已发布数据源。

在 Tableau Desktop 8.2 中启动时,这些函数可能返回与在较低版本的 Tableau Desktop 中不同的结果。这是因为 Tableau 现在对直通函数使用 ODBC 而非 OLE DB。当以整数形式返回实际值时,ODBC 会截断,而 OLE DB 会舍入。

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])

空间函数

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

函数

语法

说明

DISTANCE

DISTANCE(<geometry1>,<geometry2>,"<units>")

以指定单位返回两点之间的距离测量值。支持的单位名称:米(“meters”、“metres”、“m”)、千米(“kilometers”、“kilometres”、“km”)、英里(“miles”或“miles”)、英尺(“feet”、“ft”)。

只能使用实时连接创建此函数,并在数据源转换为提取时将能继续工作。

示例:

DISTANCE([Origin MakePoint],[Destination MakePoint], "km")

MAKELINE MAKELINE(<geometry1>,<geometry2>)

在两个点之间生成一个线标记;对于构建原点-目标映射特别有用。

CASE 比 IIF 或 IF THEN ELSE 更易于使用。

通常,您使用一个 IF 函数来执行一系列任意测试,并使用 CASE 函数搜索与表达式的匹配值。但 CASE 函数都可以重写为 IF 函数,不过 CASE 函数一般更加简明。

很多时候可以使用组获得与复杂 case 函数相同的结果。

示例:

MAKELINE(OriginPoint, DestinationPoint)

MAKELINE(MAKEPOINT(OriginLat],[OriginLong]),MAKEPOINT([DestinationLat],[DestinationLong] )

MAKEPOINT MAKEPOINT(<latitude>, <longitude>)

将数据从纬度和经度列转换为空间对象。您可以使用 MAKEPOINT 使数据源具备空间特性,以便可以使用空间联接将其与空间文件联接。有关详细信息,请参见在 Tableau 中联接空间文件在 Tableau 中联接空间文件

若要使用 MAKEPOINT,您的数据必须包含纬度和经度坐标。

示例:

MAKEPOINT([AirportLatitude],[AirportLongitude])

MAKEPOINT(X,Y, SRID) MAKEPOINT(<xcoordinate>, <ycoordinate>, <SRID>

将数据从投影的地理坐标转换为空间对象。SRID 是一种空间参考标识符,它使用 ESPG 参考系代码来指定坐标系。如果未指定 SRID,则假设使用 WGS84,并将参数视为以度数为单位的纬度/经度。

只能使用实时连接创建此函数,并在数据源转换为提取时将能继续工作。

示例:

MAKEPOINT([Xcoord],[Ycoord],3493)

其他函数

正则表达式

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 函数(按字母顺序)(链接在新窗口中打开)

感谢您的反馈!