Tableau Prep 函数参考

Tableau Prep 计算函数允许您使用计算字段,通过数据源中已存在的数据来创建新数据。

数字函数

语法描述
ABS(number)返回给定数字的绝对值。

示例:

ABS(-7) = 7

ABS([Budget Variance])

返回“Budget Variance”(预算差异)字段中包含的所有数字的绝对值。
ACOS(number)返回给定数字的反余弦。结果以弧度表示。

示例:

ACOS(-1) = 3.14159265358979

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

示例:

ASIN(1) = 1.5707963267949

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

示例:

ATAN(180) = 1.5652408283942

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

示例:

ATAN2(2, 1) = 1.10714871779409

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

示例:

CEILING(3.1415) = 4

COS(number)返回角度的余弦。以弧度为单位指定角度。

示例:

COS(PI( ) /4) = 0.707106781186548

COT(angle)返回角度的余切。以弧度为单位指定角度。

示例:

COT(PI( ) /4) = 1

DIV(integer1, integer2)返回将 integer1 除以 integer2 的除法运算的整数部分。

示例:

DIV(11,2) = 5

EXP(number)返回 e 的给定数字次幂。

示例:

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

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

示例:

FLOOR(3.1415) = 3

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

示例:

HEXBINX([Longitude], [Latitude])

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

示例:

HEXBINY([Longitude], [Latitude])

LN(number)

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

示例:

LN(EXP(5)) = 5

LOG(number [, base])

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

示例:

LOG(256, 2) = 8

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

示例:

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

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

示例:

MIN(4,7)

MIN(Sales,Profit)

MIN([First Name],[Last Name])

PI( )

返回数字常量 pi:3.14159。

示例:

PI() = 3.14159265358979

POWER(number, power)计算数字的指定次幂。

示例:

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

也可以使用 ^ 符号:

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

RADIANS(number)将给定数字从度数转换为弧度。

示例:

RADIANS(180) = 3.14159

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

示例:

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

ROUND(Sales)

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

示例:

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

SIGN(AVG(Profit)) = -1

SIN(number)返回角度的正弦。以弧度为单位指定角度。

示例:

SIN(0) = 1.0

SIN(PI( )/4) = 0.707106781186548

SQRT(number)返回数字的平方根。

示例:

SQRT(25) = 5

SQUARE(number)返回数字的平方。

示例:

SQUARE(5) = 25

TAN(number)

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

示例:

TAN(PI ( )/4) = 1.0

ZN(expression)

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

示例:

ZN([Profit]) = [Profit]

字符串函数

语法描述
ASCII(string)返回字符串的第一个字符的 ASCII 代码。

示例:

ASCII('A') = 65

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

示例:

CHAR(65) = 'A'

CONTAINS(string, substring)如果给定字符串包含指定子字符串,则返回 true。

示例:

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

ENDSWITH(string, substring)如果给定字符串以指定 substring 结尾,则返回 true。会忽略尾随空格。

示例:

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

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

示例:

FIND("Calculation", "alcu") = 2

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

示例:

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

ISDATE(string)

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

示例:

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

LEFT(string, number)返回字符串最左侧一定数量的字符。

示例:

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

LEN(string)返回字符串长度。

示例:

LEN("Matador") = 7

LOWER(string)返回字符串,其所有字符为小写。

示例:

LOWER("ProductVersion") = "productversion"

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

示例:

Example: LTRIM(" Sales") = "Sales"

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

示例:

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

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

PROPER(string)转换文本字符串,使每个单词的第一个字母大写,其余字母小写。空格和非字母数字字符(如标点符号)也可用作分隔符。

示例:

PROPER("PRODUCT name") = "Product Name"

REGEXP_EXTRACT(string, pattern)返回与正则表达式模式中的捕获组匹配的给定字符串的子字符串。正则表达式模式只需要一个捕获组

示例:

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

REGEXP_EXTRACT_NTH(string, pattern, index)使用正则表达式模式返回给定字符串的子字符串。子字符串匹配到第 n 个捕获组,其中 n 是给定的索引。

示例:

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

REGEXP_MATCH(string, pattern)如果提供的字符串的子字符串匹配正则表达式模式,则返回 true。

示例:

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

REGEXP_REPLACE(string, pattern, replacement)返回给定字符串的副本,其中匹配模式被替换字符串取代。

示例:

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

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

示例:

REPLACE("Calculation", "ion", "ed") = "Calculated"

RIGHT(string, number)返回字符串最右侧一定数量的字符。

示例:

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

RTRIM(string)返回移除了所有尾随空格的字符串。

示例:

Example: RTRIM("Market ") = "Market"

SPACE(number)返回由指定数量的重复空格组成的字符串。

示例:

SPACE(1) = " "

SPLIT(string, delimiter, token number)

返回字符串中的子字符串,由从字符串开头或结尾提取字符的分隔符确定。

示例:

SPLIT('a-b-c-d', '-', 2) = 'b'

STARTSWITH(string, substring)如果字符串以 substring 开头,则返回 true。会忽略前导空格。

示例:

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

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

示例:

TRIM(" Calculation ") = "Calculation"

UPPER(string)返回字符串,其所有字符为大写。

示例:

UPPER("Calculation") = "CALCULATION"

聚合函数

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

示例;

AVG([Profit])

COUNT(expression)返回组中的项目数。不对 Null 值计数。

示例:

COUNT([Customer ID])

COUNTD(expression)返回组中不同项目的数量。不对 NULL 值计数。每个唯一值仅计算一次。

示例:

COUNTD([Region])

MEDIAN(expression)返回单个表达式的中位数。MEDIAN 只能用于数字字段。会忽略 Null 值。

示例:

MEDIAN([Profit])

PERCENTILE(expression, number)从给定表达式中返回与指定数字相对应的百分点值的聚合计算。数字的有效值为 0 到 1。PERCENTILE([表达式], 0.50) 将始终返回表达式中的中值。

示例:

PERCENTILE([Sales], 0.90)

STDEV(expression)返回表达式的样本标准差。

示例:

STDEV([Profit])

STDEVP(expression)

返回表达式的总体标准差。

示例:

STDEVP([Profit])

SUM(expression)

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

示例:

SUM([Profit])

VAR(expression)

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

示例:

VAR([Profit])

VARP(expression)

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

示例:

VARP([Profit])

ZN(expression)

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

示例:

ZN([Profit]) = [Profit]

类型转换函数

语法描述
DATE在给定数字、字符串或日期表达式的情况下返回日期。

示例:

DATE("2006-06-15 14:52") = 2006-06-15

请注意,引号是必需的。

DATETIME(expression)在给定数字、字符串或日期表达式的情况下返回日期时间。

示例:

DATETIME("April 15, 2004 07:59:00")

请注意,引号是必需的。

FLOAT(expression)给定任何类型的表达式,返回一个浮点数。此函数需要未格式化的数字,这意味着排除逗号和其他符号。

示例:

FLOAT("3")= 3.000

INT(expression)给定表达式,返回一个整数。此函数将结果截断为最接近于 0 的整数。

示例:

INT(8.0/3.0) = 2 or INT(-9.7) = -9

MAKEDATE(year, month, day)返回一个由年、月和日构造的日期值。

示例:

MAKEDATE(2014, 3, 18)

MAKEDATETIME(date, time)

在给定日期表达式和时间表达式的情况下返回日期和时间值。

示例:

MAKEDATETIME(#2012-11-12#, #07:59:00#)

MAKETIME(hour, minute, second)

返回一个由小时数、分钟数和秒数构造的时间值。

示例:

MAKETIME(14, 52, 40)

STR(expression)

给定表达式,返回字符串。

示例:

STR([Age])

以字符串形式返回 Age 度量的所有值。

日期函数

语法描述
DATEADD(date_part, interval, date)向指定日期添加增量并返回新日期。增量由间隔和 date_part 定义。

示例:

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

DATEDIFF(date_part, start_date, end_date, [start_of_week])

返回从 end_date 中减去 start_date 后的两个日期之差。差以 date_part 为单位表示。如果省略 start_of_week,则周开始日由为数据源配置的开始日确定。

示例:

DATEDIFF('month', #2004-07-15#, #2004-04-03#, 'sunday') = -3

DATENAME(date_part, date, [start_of_week])以字符串形式返回给定日期的一部分,其中该部分由 date_part 定义。如果省略 start_of_week,则周开始日由为数据源配置的开始日确定。

示例:

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

DATEPARSE(format, string)将字符串转换为指定格式的日期。

示例:

DATEPARSE ("dd.MMMM.yyyy", "15.April.2004") = 2004-04-15 12:00:00 AM

DATEPARTT(date_part, date, [start_of_week])以整数形式返回给定日期的一部分,其中该部分由 date_part 定义。如果省略 start_of_week,则周开始日由为数据源配置的开始日确定。

示例:

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

DATETRUNC(date_part, date, [start_of_week])按 date_part 指定的准确度截断指定日期,并返回新日期。如果省略 start_of_week,则周开始日由为数据源配置的开始日确定。

示例:

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

DAY(date)以整数的形式返回给定日期的天。

示例:

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

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

示例:

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

MONTH(date)

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

示例:

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

NOW()返回当前日期和时间。

示例:

NOW() = 2004-05-12 1:08:21 PM

TODAY()返回当前日期。

示例:

TODAY() = 2004-05-12

YEAR(date)以整数的形式返回给定日期的年份。

示例:

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

逻辑函数

语法描述
IFNULL(expr1, expr2)如果 <expr1> 不为 null,则返回该表达式,否则返回 <expr2>

示例:

IFNULL([Profit], 0)

IIF(test, then, else, [unknown])检查某个条件是否得到满足,如果为 TRUE 则返回一个值,如果为 FALSE 则返回另一个值,如果未知,则返回可选的第三个值或 NULL。

示例:

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

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

示例:

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

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

示例:

ISNULL([Profit])

ZN(expression)

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

示例:

ZN([Profit]) = [Profit]

分析函数

语法描述
LAST_VALUE(expression, [return_last_non-null_value])返回给定表达式从分区中第一行到当前行的最后一个值。接受可选的第二个布尔参数以返回最后一个非 null 值。

示例:

{ ORDERBY [Row ID] ASC: LAST_VALUE([Category], true) } = returns the last non-null value of [Category]

LOOKUP(expression, [offset])返回目标行(指定为与当前行的相对偏移)中给定表达式的值。如果无法确定目标行,则返回 NULL。

示例:

{ORDERBY [DATE] ASC : LOOKUP([SALES], -1)}

返回上一行中的 SALES 值。

NTILE(number)将选定分区中的行分配到指定数量的组或图块中。使用此函数,分配给 3 个图块的值集 (6,9,9,14) 将按升序分配给图块 (1,2,2,3)。

示例:

{PARTITION [Customer]: {ORDERBY [Sales] ASC: NTILE(3) }}

RANK()返回分区中当前行的标准竞争排名。为相同的值分配相同的排名。

示例:

{PARTITION [Customer]: {ORDERBY [Sales] ASC: RANK() }}

RANK_DENSE()返回分区中当前行的密集排名。为相同的值分配相同的排名,但不会向数字序列中插入间距。

示例:

{PARTITION [Customer]: {ORDERBY [Sales] ASC: RANK_DENSE() }}

RANK_MODIFIED()返回分区中当前行的调整后竞争排名。为相同的值分配相同的排名。

示例:

{PARTITION [Customer]: {ORDERBY [Sales] ASC: RANK_MODIFIED() }}

RANK_PERCENTILE()返回分区中当前行的百分位排名。

示例:

{PARTITION [Customer]: {ORDERBY [Sales] ASC: RANK_PERCENTILE() }}

ROW_NUMBER()为每一行返回唯一的连续行 ID。

示例:

{PARTITION [Customer]: {ORDERBY [Sales] ASC: ROW_NUMBER() }}

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

示例:

{ PARTITION [Category] : { ORDERBY [Row ID] ASC : RUNNING_AVG([Sales]) } } = running average of Sales, per Category.

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

示例:

{ ORDERBY [Row ID] ASC : RUNNING_SUM([Sales]) } = running sum of all Sales

关键字

函数描述
AND对两个表达式执行逻辑合取运算

示例:

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

ASCORDERBY 运算定义升序。

示例

{ORDERBY [Sales] ASC:RANK()}

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

示例:

CASE [RomanNumeral] WHEN "|" THEN 1 WHEN "II" THEN 2 ELSE 3 END

DESCORDERBY 运算定义降序。

示例:

{ORDERBY [Sales] DESC:RANK()}

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

示例:

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

ELSEIF测试一系列表达式,同时为第一个为 true 的<expr> 返回 <then> 值。相当于在 ELSE 运算中放置一个 if 语句。

示例:

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

END终止由相应指令引入的运算。

示例:

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

{ FIXED }FIXED 详细级别表达式使用指定的维度计算值而不引用视图详细级别。

示例:

{FIXED[Customer ID]:MIN([Order Date])}

IF创建条件语句(IF 语句),并且允许您仅在条件为 True 时执行。

示例:

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

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

示例:

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

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

示例:

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

{ ORDERBY }定义应用分析函数的顺序。使用可选的 asc | desc 参数指定每个字段的升序或降序。

示例:

{ORDERBY [Customer Name] ASC, [Sales] DESC: RANK() }

{ PARTITION }将组定义为分析函数。ORDERBY 必须位于分区内。

示例:

{PARTITION [Customer]: {ORDERBY [Sales]: RANK()}}

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

示例:

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

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

示例:

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

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