---
schema_version: "1"
id: 7469bcf2383d20cea24deac97e5aae4035117d96f21e6b00985148969287022a
title: Tableau Prep 函数参考
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/prep/prep_function_reference.md
canonical_url: https://help.tableau.com/current/prep/zh-cn/prep_function_reference.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 6bf8845fe2ecc44d9987e9e6615087fb1adbb97998c2fd0c20d334eda4f11fd8
description: Reference for Tableau Prep calculation functions across categories.
---
[跳转到主要内容](#main-content)

# Tableau Prep 函数参考

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

### 数字函数

<table style="width: 100%;" class="simple-table"><colgroup><col style="width: 276px;"><col></colgroup><tbody><tr><th>语法</th><th>描述</th></tr><tr><td><code>ABS(number)</code></td><td>返回给定数字的绝对值。<p>示例：</p><p><code>ABS(-7) = 7
</code></p><p><code>ABS([Budget Variance])</code></p>返回“Budget Variance”（预算差异）字段中包含的所有数字的绝对值。</td></tr><tr><td><code>ACOS(number)</code></td><td>返回给定数字的反余弦。结果以弧度表示。<p>示例：</p><p><code>ACOS(-1) = 3.14159265358979</code></p></td></tr><tr><td><code>ASIN(number)</code></td><td>返回给定数字的反正弦。结果以弧度表示。<p>示例：</p><p><code>ASIN(1) = 1.5707963267949</code></p></td></tr><tr><td><code>ATAN(number)</code></td><td>返回给定数字的反正切。结果以弧度表示。<p>示例：</p><p><code>ATAN(180) = 1.5652408283942</code></p></td></tr><tr><td><code>ATAN2(y number, x number)</code></td><td>返回两个给定数字（<code>x</code> 和 <code>y</code>）的反正切。结果以弧度表示。<p>示例：</p><p><code>ATAN2(2, 1) = 1.10714871779409</code></p></td></tr><tr><td><code>CEILING(number</code>)</td><td>将数字舍入为值相等或更大的最近整数。<p>示例：</p><p><code>CEILING(3.1415) = 4</code></p></td></tr><tr><td><code>COS(number)</code></td><td>返回角度的余弦。以弧度为单位指定角度。<p>示例：</p><p><code>COS(PI( ) /4) = 0.707106781186548</code></p></td></tr><tr><td><code>COT(angle)</code></td><td>返回角度的余切。以弧度为单位指定角度。<p>示例：</p><p><code>COT(PI( ) /4) = 1
</code></p></td></tr><tr><td><code>DIV(integer1, integer2)</code></td><td>返回将 <code> integer1</code> 除以 <code>integer2</code> 的除法运算的整数部分。<p>示例：</p><p><code>DIV(11,2) = 5
</code></p></td></tr><tr><td><code>EXP(number)</code></td><td>返回 e 的给定数字次幂。<p>示例：</p><p><code>EXP(2) = 7.389
EXP(-[Growth Rate]*[Time])</code></p></td></tr><tr><td><code>FLOOR(number)</code></td><td>将数字舍入为值相等或更小的最近整数。<p>示例：</p><p><code>FLOOR(3.1415) = 3</code></p></td></tr><tr><td><code>HEXBINX(number, number)</code></td><td>将 x、y 坐标映射到最接近的六边形数据桶的 x 坐标。数据桶的边长为 1，因此，可能需要相应地缩放输入。<p>示例：</p><p><code>HEXBINX([Longitude], [Latitude])</code></p></td></tr><tr><td><code>HEXBINY(number, number)</code></td><td>将 x、y 坐标映射到最接近的六边形数据桶的 y 坐标。数据桶的边长为 1，因此，可能需要相应地缩放输入。<p>示例：</p><p><code>HEXBINY([Longitude], [Latitude])</code></p></td></tr><tr><td><code>LN(number)</code></td><td><p>返回数字的自然对数。如果数字小于或等于 0，则返回 Null。</p><p>示例：</p><p><code>LN(EXP(5)) = 5</code></p></td></tr><tr><td><code>LOG(number [, base]</code>)</td><td><p>返回数字以给定底数为底的对数。如果省略了底数值，则使用底数 10。</p><p>示例：</p><p><code>LOG(256, 2) = 8</code></p></td></tr><tr><td><code>MAX(number, number)</code></td><td>返回两个参数（必须为相同类型）中的较大值。如果任一参数为 Null，则返回 Null。<code>MAX </code> 也可应用于聚合计算中的单个字段。<p>示例：</p><p><code>MAX(4,7)</code><br><code>MAX(Sales,Profit)</code><br><code>MAX([First Name],[Last Name])</code></p></td></tr><tr><td><code>MIN(number, number)</code></td><td>返回两个参数（必须为相同类型）中的较小值。如果任一参数为 Null，则返回 Null。<code>MIN </code> 也可应用于聚合计算中的单个字段。<p>示例：</p><p><code>MIN(4,7)
</code></p><p><code>MIN(Sales,Profit)</code></p><p><code>MIN([First Name],[Last Name])
</code></p></td></tr><tr><td><code>PI( )</code></td><td><p>返回数字常量 pi：3.14159。</p><p>示例：</p><p><code>PI() = 3.14159265358979</code></p></td></tr><tr><td><code>POWER(number, power)</code></td><td>计算数字的指定次幂。<p>示例：</p><p><code>POWER(5,2) = 52 = 25
POWER(Temperature, 2)</code></p><p>也可以使用 ^ 符号：</p><p><code>5^2 = POWER(5,2) = 25</code></p></td></tr><tr><td><code>RADIANS(number)</code></td><td>将给定数字从度数转换为弧度。<p>示例：</p><p><code>RADIANS(180) = 3.14159</code></p></td></tr><tr><td><code>ROUND(number, [decimals])</code></td><td>将数字舍入为指定位数。decimals 参数指定要在最终结果中包含的小数位数精度。如果省略 decimals，则 number 舍入为最接近的整数。<p>示例：</p><p>此示例将每个 Sales 值舍入为整数：</p><p><code>ROUND(Sales)</code></p></td></tr><tr><td><code>SIGN(number)</code></td><td>返回数字的符号：可能的返回值为：在数字为负时为 -1，在数字为零时为 0，在数字为正时为 1。<p>示例：</p><p>如果 profit 字段的平均值为负值，则</p><p><code>SIGN(AVG(Profit)) = -1</code></p></td></tr><tr><td><code>SIN(number)</code></td><td>返回角度的正弦。以弧度为单位指定角度。<p>示例：</p><p><code>SIN(0) = 1.0</code></p><p><code>SIN(PI( )/4) = 0.707106781186548</code></p></td></tr><tr><td><code>SQRT(number)</code></td><td>返回数字的平方根。<p>示例：</p><p><code>SQRT(25) = 5
</code></p></td></tr><tr><td><code>SQUARE(number)</code></td><td>返回数字的平方。<p>示例：</p><p><code>SQUARE(5) = 25</code></p></td></tr><tr><td><code>TAN(number</code>)</td><td><p>返回角度的正切。以弧度为单位指定角度。</p><p>示例：</p><p><code>TAN(PI ( )/4) = 1.0</code></p></td></tr><tr><td><code>ZN(expression)</code></td><td><p>如果表达式不为 Null，则返回该表达式，否则返回零。使用此函数可使用零值而不是 Null 值。</p><p>示例：</p><p><code>ZN([Profit]) = [Profit]</code></p></td></tr></tbody></table>

### 字符串函数

<table style="width: 100%;" class="simple-table"><colgroup><col style="width: 276px;"><col></colgroup><tbody><tr><th>语法</th><th>描述</th></tr><tr><td><code>ASCII(string)</code></td><td>返回字符串的第一个字符的 ASCII 代码。<p>示例：</p><p><code>ASCII('A') = 65</code></p></td></tr><tr><td><code>CHAR(number)</code></td><td>返回通过 ASCII 代码编码的字符。<p>示例：</p><p><code>CHAR(65) = 'A'</code></p></td></tr><tr><td><code>CONTAINS(string, substring)</code></td><td>如果给定字符串包含指定子字符串，则返回 true。<p>示例：</p><p><code>CONTAINS(“Calculation”, “alcu”) = true</code></p></td></tr><tr><td><code>ENDSWITH(string, substring)</code></td><td>如果给定字符串以指定 <code>substring</code> 结尾，则返回 true。会忽略尾随空格。<p>示例：</p><p><code>ENDSWITH(“Tableau”, “leau”) = true</code></p></td></tr><tr><td><code>FIND(string, substring, [start])</code></td><td>返回 <code>substring </code> 在字符串中的索引位置，如果未找到子字符串，则返回 0。如果添加了可选参数 start，则函数会忽略在索引位置 start 之前出现的任何 <code>substring </code> 实例。字符串中第一个字符的位置为 1。<p>示例：</p><p><code>FIND("Calculation", "alcu") = 2</code></p></td></tr><tr><td><code>FINDNTH(string, substring, occurrence)</code></td><td>返回指定字符串内的第 n 个子字符串的位置，其中 n 由 occurrence 参数定义。<p>示例：</p><p><code>FINDNTH("Calculation", "a", 2) =7</code></p></td></tr><tr><td><code>ISDATE(string)</code></td><td><p>如果给定字符串为有效日期，则返回 true。</p><p>示例：</p><p><code>ISDATE("2004-04-15") = True
</code></p></td></tr><tr><td><code>LEFT(string, number)</code></td><td>返回字符串最左侧一定数量的字符。<p>示例：</p><p><code>LEFT("Matador", 4) = "Mata"
</code></p></td></tr><tr><td><code>LEN(string)</code></td><td>返回字符串长度。<p>示例：</p><p><code>LEN("Matador") = 7
</code></p></td></tr><tr><td><code>LOWER(string)</code></td><td>返回字符串，其所有字符为小写。<p>示例：</p><p><code>LOWER("ProductVersion") = "productversion"</code></p></td></tr><tr><td><code>LTRIM(string)</code></td><td>返回移除了所有前导空格的字符串。<p>示例：</p><p><code>Example: LTRIM(" Sales") = "Sales"</code></p></td></tr><tr><td><code>(MID(string, start, [length])</code></td><td>返回从索引位置 start 开始的字符串。字符串中第一个字符的位置为 1。如果添加了可选参数 length，则返回的字符串仅包含该数量的字符。<p>示例：</p><p><code>MID("Calculation", 2) = "alculation"</code></p><p><code>MID("Calculation", 2, 5) ="alcul"</code></p></td></tr><tr><td><code>PROPER(string)</code></td><td>转换文本字符串，使每个单词的第一个字母大写，其余字母小写。空格和非字母数字字符（如标点符号）也可用作分隔符。<p>示例：</p><p><code>PROPER("PRODUCT name") = "Product Name"
</code></p></td></tr><tr><td><code>REGEXP_EXTRACT(string, pattern)</code></td><td>返回与正则表达式模式中的捕获组匹配的给定字符串的子字符串。正则表达式模式只需要一个捕获组<p>示例：</p><p><code>REGEXP_EXTRACT('abc 123', '[a-z]+\\s+(\\d+)') = '123'</code></p></td></tr><tr><td><code>REGEXP_EXTRACT_NTH(string, pattern, index)</code></td><td>使用正则表达式模式返回给定字符串的子字符串。子字符串匹配到第 n 个捕获组，其中 n 是给定的索引。<p>示例：</p><p><code>REGEXP_EXTRACT_NTH('abc 123', '([a-z]+)\\s+(\\d+)', 2) = '123'</code></p></td></tr><tr><td><code>REGEXP_MATCH(string, pattern)</code></td><td>如果提供的字符串的子字符串匹配正则表达式模式，则返回 true。<p>示例：</p><p><code>REGEXP_MATCH('-([1234].[ The.Market ])-', '\\[\\s*(\\w*\\.)(\\w*\\s*\\])') = true</code></p></td></tr><tr><td><code>REGEXP_REPLACE(string, pattern, replacement)</code></td><td>返回给定字符串的副本，其中匹配模式被替换字符串取代。<p>示例：</p><p><code>REGEXP_REPLACE('abc  123', '\\s', '-') = 'abc--123'
</code></p></td></tr><tr><td><code>REPLACE(string, substring, replacement)</code></td><td>在字符串中搜索子字符串，并将其替换为替代子字符串。如果未找到子字符串，则字符串保持不变。<p>示例：</p><p><code>REPLACE("Calculation", "ion", "ed") = "Calculated"</code></p></td></tr><tr><td><code>RIGHT(string, number)</code></td><td>返回字符串最右侧一定数量的字符。<p>示例：</p><p><code>RIGHT("Calculation", 4) = "tion"</code></p></td></tr><tr><td><code>RTRIM(string)</code></td><td>返回移除了所有尾随空格的字符串。<p>示例：</p><p><code>Example: RTRIM("Market ") = "Market"</code></p></td></tr><tr><td><code>SPACE(number)</code></td><td>返回由指定数量的重复空格组成的字符串。<p>示例：</p><p><code>SPACE(1) = " "</code></p></td></tr><tr><td><code>SPLIT(string, delimiter, token number)	
</code></td><td><p>返回字符串中的子字符串，由从字符串开头或结尾提取字符的分隔符确定。</p><p>示例：</p><p><code>SPLIT('a-b-c-d', '-', 2) = 'b'</code></p></td></tr><tr><td><code>STARTSWITH(string, substring)</code></td><td>如果字符串以 <code>substring</code> 开头，则返回 true。会忽略前导空格。<p>示例：</p><p><code>STARTSWITH(“Joker”, “Jo”) = true
</code></p></td></tr><tr><td><code>TRIM(string)</code></td><td>返回移除了前导和尾随空格的字符串。<p>示例：</p><p><code>TRIM(" Calculation ") = "Calculation"</code></p></td></tr><tr><td><code>UPPER(string)</code></td><td>返回字符串，其所有字符为大写。<p>示例：</p><p><code>UPPER("Calculation") = "CALCULATION"
</code></p></td></tr></tbody></table>

### 聚合函数

<table style="width: 100%;" class="simple-table"><colgroup><col style="width: 276px;"><col></colgroup><tbody><tr><th>语法</th><th>描述</th></tr><tr><td><code>AVG(expression)</code></td><td>返回表达式中所有值的平均值。AVG 只能用于数字字段。会忽略 Null 值<p>示例；</p><p><code>AVG([Profit])</code></p></td></tr><tr><td><code>COUNT(expression)</code></td><td>返回组中的项目数。不对 Null 值计数。<p>示例：</p><p><code>COUNT([Customer ID])
</code></p></td></tr><tr><td><code>COUNTD(expression)</code></td><td>返回组中不同项目的数量。不对 NULL 值计数。每个唯一值仅计算一次。<p>示例：</p><p><code>COUNTD([Region])</code></p></td></tr><tr><td><code>MEDIAN(expression)</code></td><td>返回单个表达式的中位数。MEDIAN 只能用于数字字段。会忽略 Null 值。<p>示例：</p><p><code>MEDIAN([Profit])
</code></p></td></tr><tr><td><code>PERCENTILE(expression, number)</code></td><td>从给定表达式中返回与指定数字相对应的百分点值的聚合计算。数字的有效值为 0 到 1。PERCENTILE([表达式], 0.50) 将始终返回表达式中的中值。<p>示例：</p><p><code>PERCENTILE([Sales], 0.90)</code></p></td></tr><tr><td><code>STDEV(expression)</code></td><td>返回表达式的样本标准差。<p>示例：</p><p><code>STDEV([Profit])</code></p></td></tr><tr><td><code>STDEVP(expression)</code></td><td><p>返回表达式的总体标准差。</p><p>示例：</p><p><code>STDEVP([Profit])
</code></p></td></tr><tr><td><code>SUM(expression)</code></td><td><p>返回表达式中所有值的总计。SUM 只能用于数字字段。会忽略 Null 值。</p><p>示例：</p><p><code>SUM([Profit])
</code></p></td></tr><tr><td><code>VAR(expression)</code></td><td><p>基于群体样本返回给定表达式中所有值的统计方差。</p><p>示例：</p><p><code>VAR([Height])</code></p></td></tr><tr><td><code>VARP(expression)</code></td><td><p>对整个群体返回给定表达式中所有值的统计方差。</p><p>示例：</p><p><code>VARP([Test Score])</code></p></td></tr><tr><td><code>ZN(expression)</code></td><td><p>如果表达式不为 Null，则返回该表达式，否则返回零。使用此函数可使用零值而不是 Null 值。</p><p>示例：</p><p><code>ZN([Profit]) = [Profit]</code></p></td></tr></tbody></table>

### 类型转换函数

<table style="width: 100%;" class="simple-table"><colgroup><col style="width: 276px;"><col></colgroup><tbody><tr><th>语法</th><th>描述</th></tr><tr><td><code>DATE</code></td><td>在给定数字、字符串或日期表达式的情况下返回日期。<p>示例：</p><p><code>DATE("2006-06-15 14:52") = 2006-06-15</code></p><p>请注意，引号是必需的。</p></td></tr><tr><td><code>DATETIME(expression)</code></td><td>在给定数字、字符串或日期表达式的情况下返回日期时间。<p>示例：</p><p><code>DATETIME("April 15, 2004 07:59:00")</code></p><p>请注意，引号是必需的。</p></td></tr><tr><td><code>FLOAT(expression)</code></td><td>给定任何类型的表达式，返回一个浮点数。此函数需要未格式化的数字，这意味着排除逗号和其他符号。<p>示例：</p><p><code>FLOAT("3")= 3.000</code></p></td></tr><tr><td><code>INT(expression)</code></td><td>给定表达式，返回一个整数。此函数将结果截断为最接近于 0 的整数。<p>示例：</p><p><code>INT(8.0/3.0) = 2 or INT(-9.7) = -9</code></p></td></tr><tr><td><code>MAKEDATE(year, month, day)</code></td><td>返回一个由年、月和日构造的日期值。<p>示例：</p><p><code>MAKEDATE(2014, 3, 18)</code></p></td></tr><tr><td><code>MAKEDATETIME(date, time)</code></td><td><p>在给定日期表达式和时间表达式的情况下返回日期和时间值。</p><p>示例：</p><p><code>MAKEDATETIME(#2012-11-12#, #07:59:00#)</code></p></td></tr><tr><td><code>MAKETIME(hour, minute, second)</code></td><td><p>返回一个由小时数、分钟数和秒数构造的时间值。</p><p>示例：</p><p><code>MAKETIME(14, 52, 40)</code></p></td></tr><tr><td><code>STR(expression)</code></td><td><p>给定表达式，返回字符串。</p><p>示例：</p><p><code>STR([Age]) </code></p><p>以字符串形式返回 Age 度量的所有值。</p></td></tr></tbody></table>

### 日期函数

<table style="width: 100%;" class="simple-table"><colgroup><col style="width: 276px;"><col></colgroup><tbody><tr><th>语法</th><th>描述</th></tr><tr><td><code>DATEADD(date_part, interval, date)</code></td><td>向指定日期添加增量并返回新日期。增量由间隔和 date_part 定义。<p>示例：</p><p><code>DATEADD('month', 3, #2004-04-15#) = 2004-07-15 12:00:00 AM</code></p></td></tr><tr><td><code>DATEDIFF(date_part, start_date, end_date, [start_of_week])</code></td><td><p>返回从 end_date 中减去 start_date 后的两个日期之差。差以 date_part 为单位表示。如果省略 start_of_week，则周开始日由为数据源配置的开始日确定。</p><p>示例：</p><p><code>DATEDIFF('month', #2004-07-15#, #2004-04-03#, 'sunday') = -3</code></p></td></tr><tr><td><code>DATENAME(date_part, date, [start_of_week])</code></td><td>以字符串形式返回给定日期的一部分，其中该部分由 date_part 定义。如果省略 start_of_week，则周开始日由为数据源配置的开始日确定。<p>示例：</p><p><code>DATENAME('month', #2004-04-15#) = "April"
</code></p></td></tr><tr><td><code>DATEPARSE(format, string)</code></td><td>将字符串转换为指定格式的日期。<p>示例：</p><p><code>DATEPARSE ("dd.MMMM.yyyy", "15.April.2004") = 2004-04-15 12:00:00 AM</code></p></td></tr><tr><td><code>DATEPARTT(date_part, date, [start_of_week])</code></td><td>以整数形式返回给定日期的一部分，其中该部分由 date_part 定义。如果省略 start_of_week，则周开始日由为数据源配置的开始日确定。<p>示例：</p><p><code>DATEPART('month', #2004-04-15#) = 4</code></p></td></tr><tr><td><code>DATETRUNC(date_part, date, [start_of_week])</code></td><td>按 date_part 指定的准确度截断指定日期，并返回新日期。如果省略 start_of_week，则周开始日由为数据源配置的开始日确定。<p>示例：</p><p><code>DATETRUNC('quarter', #2004-08-15#) = 2004-07-01 12:00:00 AM
</code></p></td></tr><tr><td><code>DAY(date)</code></td><td>以整数的形式返回给定日期的天。<p>示例：</p><p><code>DAY(#2004-04-12#) = 12
</code></p></td></tr><tr><td><code>ISDATE(string)</code></td><td>如果给定字符串为有效日期，则返回 true。<p>示例：</p><p><code>ISDATE("2004-04-15") = True
</code></p></td></tr><tr><td><code>MONTH(date)</code></td><td><p>以整数的形式返回给定日期的月份。</p><p>示例：</p><p><code>MONTH(#2004-04-12#) = 4</code></p></td></tr><tr><td><code>NOW()</code></td><td>返回当前日期和时间。<p>示例：</p><p><code>NOW() = 2004-05-12 1:08:21 PM
</code></p></td></tr><tr><td><code>TODAY()</code></td><td>返回当前日期。<p>示例：</p><p><code>TODAY() = 2004-05-12</code></p></td></tr><tr><td><code>YEAR(date)</code></td><td>以整数的形式返回给定日期的年份。<p>示例：</p><p><code>YEAR(#2004-04-12#) = 2004
</code></p></td></tr></tbody></table>

### 逻辑函数

<table style="width: 100%;" class="simple-table"><colgroup><col style="width: 276px;"><col></colgroup><tbody><tr><th>语法</th><th>描述</th></tr><tr><td><code>IFNULL(expr1, expr2)</code></td><td>如果 <code>&lt;expr1&gt;</code> 不为 null，则返回该表达式，否则返回 <code>&lt;expr2&gt;</code>。<p>示例：</p><p><code>IFNULL([Profit], 0)</code></p></td></tr><tr><td><code>IIF(test, then, else, [unknown])</code></td><td>检查某个条件是否得到满足，如果为 TRUE 则返回一个值，如果为 FALSE 则返回另一个值，如果未知，则返回可选的第三个值或 NULL。<p>示例：</p><p><code>IIF([Profit] &gt; 0, 'Profit', 'Loss')</code></p></td></tr><tr><td><code>ISDATE(string)</code></td><td>如果给定字符串为有效日期，则返回 true。<p>示例：</p><p><code>ISDATE("2004-04-15") = True</code></p></td></tr><tr><td><code>ISNULL(expression)</code></td><td>如果表达式未包含有效数据 (<code>Null</code>)，则返回 true。<p>示例：</p><p><code>ISNULL([Profit])
</code></p></td></tr><tr><td><code>ZN(expression)</code></td><td><p>如果表达式不为 Null，则返回该表达式，否则返回零。使用此函数可使用零值而不是 Null 值。</p><p>示例：</p><p><code>ZN([Profit]) = [Profit]</code></p></td></tr></tbody></table>

### 分析函数

<table style="width: 100%;" class="simple-table"><colgroup><col style="width: 276px;"><col></colgroup><tbody><tr><th>语法</th><th>描述</th></tr><tr><td><code>LAST_VALUE(expression, [return_last_non-null_value])</code></td><td>返回给定表达式从分区中第一行到当前行的最后一个值。接受可选的第二个布尔参数以返回最后一个非 null 值。<p>示例：</p><p><code>{ ORDERBY [Row ID] ASC: LAST_VALUE([Category], true) } = returns the last non-null value of [Category]
</code></p></td></tr><tr><td><code>LOOKUP(expression, [offset])</code></td><td><p>返回目标行（指定为与当前行的相对偏移）中给定表达式的值。如果无法确定目标行，则返回 NULL。</p><p><code>LOOKUP </code> 函数的 [<code>offset</code> ] 参数只能接受字面整数，例如 1。</p><p>示例：</p><p><code>{ORDERBY [DATE] ASC : LOOKUP([SALES], -1)} </code></p><p>返回上一行中的 SALES 值。</p></td></tr><tr><td><code>NTILE(number)</code></td><td>将选定分区中的行分配到指定数量的组或图块中。使用此函数，分配给 3 个图块的值集 (6,9,9,14) 将按升序分配给图块 (1,2,2,3)。<p>示例：</p><p><code>{PARTITION [Customer]: {ORDERBY [Sales] ASC: NTILE(3) }}</code></p></td></tr><tr><td><code>RANK()</code></td><td>返回分区中当前行的标准竞争排名。为相同的值分配相同的排名。<p>示例：</p><p><code>{PARTITION [Customer]: {ORDERBY [Sales] ASC: RANK() }}
</code></p></td></tr><tr><td><code>RANK_DENSE()</code></td><td>返回分区中当前行的密集排名。为相同的值分配相同的排名，但不会向数字序列中插入间距。<p>示例：</p><p><code>{PARTITION [Customer]: {ORDERBY [Sales] ASC: RANK_DENSE() }}
</code></p></td></tr><tr><td><code>RANK_MODIFIED()</code></td><td>返回分区中当前行的调整后竞争排名。为相同的值分配相同的排名。<p>示例：</p><p><code>{PARTITION [Customer]: {ORDERBY [Sales] ASC: RANK_MODIFIED() }}</code></p></td></tr><tr><td><code>RANK_PERCENTILE()</code></td><td>返回分区中当前行的百分位排名。<p>示例：</p><p><code>{PARTITION [Customer]: {ORDERBY [Sales] ASC: RANK_PERCENTILE() }}</code></p></td></tr><tr><td><code>ROW_NUMBER()</code></td><td>为每一行返回唯一的连续行 ID。<p>示例：</p><p><code>{PARTITION [Customer]: {ORDERBY [Sales] ASC: ROW_NUMBER() }}</code></p></td></tr><tr><td><code>RUNNING_AVG(expression)</code></td><td>返回给定表达式从分区中第一行到当前行的运行平均值。<p>示例：</p><p><code>{ PARTITION [Category] : { ORDERBY [Row ID] ASC : RUNNING_AVG([Sales]) } } = running average of Sales, per Category.
</code></p></td></tr><tr><td><code>RUNNING_SUM(expression)</code></td><td>返回给定表达式从分区中第一行到当前行的运行总计。<p>示例：</p><p><code>{ ORDERBY [Row ID] ASC : RUNNING_SUM([Sales]) } = running sum of all Sales</code></p></td></tr></tbody></table>

### 关键字

<table style="width: 100%;" class="simple-table"><colgroup><col style="width: 276px;"><col></colgroup><tbody><tr><th>函数</th><th>描述</th></tr><tr><td><code>AND</code></td><td>对两个表达式执行逻辑合取运算 <p>示例：</p><p><code>IF (ATTR([Market]) = "New Business" AND SUM([Sales]) &gt; [Emerging Threshold] )THEN "Well Performing"</code></p></td></tr><tr><td><code>ASC</code></td><td>为 <code>ORDERBY </code> 运算定义升序。<p>示例</p><p><code>{ORDERBY [Sales] ASC:RANK()}</code></p></td></tr><tr><td><code>CASE</code></td><td>查找第一个与 <code>&lt;expr</code>&gt; 匹配的 &lt;<code>value</code>&gt;，并返回对应的 &lt;<code>return</code>&gt;。<p>示例：</p><p><code>CASE [RomanNumeral] WHEN "|" THEN 1 WHEN "II" THEN 2 ELSE 3 END</code></p></td></tr><tr><td><code>DESC</code></td><td>为 <code>ORDERBY </code> 运算定义降序。 <p>示例：</p><p><code>{ORDERBY [Sales] DESC:RANK()}</code></p></td></tr><tr><td><code>ELSE</code></td><td>测试一系列表达式，同时为第一个为 true 的&lt;<code>expr</code>&gt; 返回 &lt;<code>then</code>&gt; 值。 <p>示例：</p><p><code>IF [Profit] &gt; 0 THEN 'Profitable' ELSE 'Loss' END</code></p></td></tr><tr><td><code>ELSEIF</code></td><td>测试一系列表达式，同时为第一个为 true 的&lt;<code>expr</code>&gt; 返回 &lt;<code>then</code>&gt; 值。相当于在 ELSE 运算中放置一个 <code>if</code> 语句。<p>示例：</p><p><code>IF [Profit] &gt; 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END</code></p></td></tr><tr><td><code>END</code></td><td>终止由相应指令引入的运算。<p>示例：</p><p><code>IF [Profit] &gt; 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END</code></p></td></tr><tr><td><code>{ FIXED }</code></td><td>FIXED 详细级别表达式使用指定的维度计算值而不引用视图详细级别。 <p>示例：</p><p><code>{FIXED[Customer ID]:MIN([Order Date])}</code></p></td></tr><tr><td><code>IF</code></td><td>创建条件语句（<code>IF</code> 语句），并且允许您仅在条件为 True 时执行。<p>示例：</p><p><code>IF [Profit] &gt; 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END</code></p></td></tr><tr><td><code>NOT</code></td><td>对一个表达式执行逻辑非运算。 <p>示例：</p><p><code>IF NOT [Profit] &gt; 0 THEN "Unprofitable" END</code></p></td></tr><tr><td><code>OR</code></td><td>对两个表达式执行逻辑析取运算。 <p>示例：</p><p><code>IF [Profit] &lt; 0 OR [Profit] = 0 THEN "Needs Improvement" END</code></p></td></tr><tr><td><code>{ ORDERBY </code>}</td><td>定义应用分析函数的顺序。使用可选的 asc | desc 参数指定每个字段的升序或降序。 <p>示例：</p><p><code>{ORDERBY [Customer Name] ASC, [Sales] DESC: RANK() }</code></p></td></tr><tr><td><code>{ PARTITION }</code></td><td>将组定义为分析函数。ORDERBY 必须位于分区内。 <p>示例：</p><p><code>{PARTITION [Customer]: {ORDERBY [Sales]: RANK()}}</code></p></td></tr><tr><td><code>THEN</code></td><td>测试一系列表达式，同时为第一个为 true 的&lt;<code>expr</code>&gt; 返回 &lt;<code>then</code>&gt; 值。 <p>示例：</p><p><code>IF [Profit] &gt; 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Break even' ELSE 'unprofitable' END</code></p></td></tr><tr><td><code>WHEN</code></td><td>查找第一个与 <code>expr</code>&gt; 匹配的 &lt;<code>value</code>&gt;，并返回对应的 &lt;<code>return</code>&gt;。 <p>示例：</p><p><code>CASE [RomanNumberal] WHEN 'I' THEN 1 WHEN 'II' THEN 2 ELSE 3 END</code></p></td></tr></tbody></table>