---
schema_version: "1"
id: eb4b166b6de54dd34765a595181a7f37a97c3f53c9885a986aff18fa45712fdc
title: 所有函数（分类）
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/pro/desktop/functions_all_categories.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/zh-cn/functions_all_categories.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 95cd411929d800e09711f71e1486c90759e339f656fb47c37c6cbc389a92aa69
description: Reference of all Tableau calculation functions organized by category.
---
[跳转到主要内容](#main-content)

# Tableau 函数（按类别）

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

数字函数

### ABS

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ABS(number)</code></td></tr><tr><td>输出</td><td>数字（正数）</td></tr><tr><td>定义</td><td>返回给定 <code>&lt;number&gt;</code> 的绝对值。</td></tr><tr><td>示例</td><td><pre>ABS(-7) = 7<br>ABS([Budget Variance])</pre><p>第二个示例返回“Budget Variance”（预算差异）字段中包含的所有数字的绝对值。</p></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#SIGN" class="xref">SIGN</a></code>。</td></tr></tbody></table>

### ACOS

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ACOS(number)</code></td></tr><tr><td>输出</td><td>数字（以弧度表示的角度）</td></tr><tr><td>定义</td><td>返回给定 <code>&lt;number&gt;</code> 的反余弦（角度）。</td></tr><tr><td>示例</td><td><pre>ACOS(-1) = 3.14159265358979</pre></td></tr><tr><td>说明</td><td>反函数 <code><a href="#COS" class="xref">COS</a></code> 以弧度为单位的角度作为参数，并返回余弦值。</td></tr></tbody></table>

### ASIN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ASIN(number)</code></td></tr><tr><td>输出</td><td>数字（以弧度表示的角度）</td></tr><tr><td>定义</td><td>返回给定 <code>&lt;number&gt;</code> 的反正弦（角度）。</td></tr><tr><td>示例</td><td><pre>ASIN(1) = 1.5707963267949</pre></td></tr><tr><td>说明</td><td>反函数 <code><a href="#SIN" class="xref">SIN</a></code> 以弧度为单位的角度作为参数，并返回正弦值。</td></tr></tbody></table>

### ATAN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ATAN(number)</code></td></tr><tr><td>输出</td><td>数字（以弧度表示的角度）</td></tr><tr><td>定义</td><td>返回给定 <code>&lt;number&gt;</code> 的反正切（角度）。</td></tr><tr><td>示例</td><td><pre>ATAN(180) = 1.5652408283942</pre></td></tr><tr><td>说明</td><td><p>反函数 <code>TAN</code> 以弧度为单位的角度作为参数，并返回正切值。</p><p>另请参见 <code><a href="#ATAN2" class="xref">ATAN2</a></code> 和 <code><a href="#COT" class="xref">COT</a></code>。</p></td></tr></tbody></table>

### ATAN2

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ATAN2(y number, x number)</code></td></tr><tr><td>输出</td><td>数字（以弧度表示的角度）</td></tr><tr><td>定义</td><td>返回两个数字（x 和 y）之间的反正切（角度）。结果以弧度表示。</td></tr><tr><td>示例</td><td><pre>ATAN2(2, 1) = 1.10714871779409</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#ATAN" class="xref">ATAN</a></code>、<code><a href="#TAN" class="xref">TAN</a></code> 和 <code><a href="#COT" class="xref">COT</a></code>。</td></tr></tbody></table>

### CEILING

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>CEILING(number)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>将 <code>&lt;number&gt;</code> 舍入为值相等或更大的最近整数。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">CEILING(2.1) = 3</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#FLOOR" class="xref">FLOOR</a></code> 和 <code><a href="#ROUND" class="xref">ROUND</a></code>。</td></tr><tr><td>数据库限制</td><td><p><code>CEILING</code> 可通过以下连接器使用：Microsoft Excel、文本文件、统计文件、已发布数据源、Amazon EMR Hadoop Hive、Amazon Redshift、Cloudera Hadoop、DataStax Enterprise、Google Analytics、Google BigQuery、Hortonworks Hadoop Hive、MapR&nbsp;Hadoop Hive、Microsoft SQL Server、Salesforce、Spark SQL。</p></td></tr></tbody></table>

### COS

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>COS(number)</code><p>number 参数是以弧度表示的角度。</p></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回角度的余弦。</td></tr><tr><td>示例</td><td><pre>COS(PI( ) /4) = 0.707106781186548</pre></td></tr><tr><td>说明</td><td><p>反函数 <code><a href="#ACOS" class="xref">ACOS</a></code> 以余弦为参数并返回以弧度表示的角度。</p><p>另请参见 <code><a href="#PI" class="xref">PI</a></code>。若要将角度从度数转换为弧度，请使用 <code><a href="#RADIANS" class="xref">RADIANS</a></code>。</p></td></tr></tbody></table>

### COT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>COT(number)</code><p>number 参数是以弧度表示的角度。</p></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回角度的余切。</td></tr><tr><td>示例</td><td><pre>COT(PI( ) /4) = 1</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#ATAN" class="xref">ATAN</a></code>、<code><a href="#TAN" class="xref">TAN</a></code> 和 <code><a href="#PI" class="xref">PI</a></code>。若要将角度从度数转换为弧度，请使用 <code><a href="#RADIANS" class="xref">RADIANS</a></code>。</td></tr></tbody></table>

### DEGREES

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DEGREES(number)</code><p>number 参数是以弧度表示的角度。</p></td></tr><tr><td>输出</td><td>数字（度）</td></tr><tr><td>定义</td><td>将以弧度表示的角度转换为度数。</td></tr><tr><td>示例</td><td><pre>DEGREES(PI( )/4) = 45.0</pre></td></tr><tr><td>说明</td><td><p>反函数 <code><a href="#RADIANS" class="xref">RADIANS</a></code> 获取以度为单位的角度并返回以弧度为单位的角度。</p><p>另请参见 <code><a href="#PI" class="xref">PI</a>()</code>。</p></td></tr></tbody></table>

### DIV

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DIV(integer1, integer2)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>返回将 <code>&lt;integer1&gt;</code> 除以 <code>&lt;integer2&gt;</code> 的除法运算的整数部分。</td></tr><tr><td>示例</td><td><pre>DIV(11,2) = 5</pre></td></tr></tbody></table>

### EXP

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>EXP(number)</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回 e 的给定 <code>&lt;number&gt;</code> 次幂。</td></tr><tr><td>示例</td><td><pre>EXP(2) = 7.389<br>EXP(-[Growth Rate]*[Time])</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#LN" class="xref">LN</a></code>。</td></tr></tbody></table>

### FLOOR

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>FLOOR(number)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>将数字舍入为值相等或更小的最近 <code>&lt;number&gt;</code>。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">FLOOR(7.9) = 7</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#CEILING" class="xref">CEILING</a></code> 和 <code><a href="#ROUND" class="xref">ROUND</a></code>。</td></tr><tr><td>数据库限制</td><td><p><code>FLOOR</code> 可通过以下连接器使用：Microsoft Excel、文本文件、统计文件、已发布数据源、Amazon EMR Hadoop Hive、Cloudera Hadoop、DataStax Enterprise、Google Analytics、Google BigQuery、Hortonworks Hadoop Hive、MapR&nbsp;Hadoop Hive、Microsoft SQL Server、Salesforce、Spark SQL。</p></td></tr></tbody></table>

### HEXBINX

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>HEXBINX(number, number)</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>将 x、y 坐标映射到最接近的六边形数据桶的 x 坐标。数据桶的边长为 1，因此，可能需要相应地缩放输入。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">HEXBINX([Longitude]*2.5, [Latitude]*2.5)</pre></td></tr><tr><td>说明</td><td><code>HEXBINX </code> 和 <code><a href="#HEXBINY" class="xref">HEXBINY</a></code> 是用于六边形数据桶的分桶和标绘函数。六边形数据桶是对 x/y 平面（例如地图）中的数据进行可视化的有效而简洁的选项。由于数据桶是六边形的，因此每个数据桶都非常近似于一个圆，并最大程度地减少了从数据点到数据桶中心的距离变化。这使得聚类分析更加准确并且能提供有用的信息。</td></tr></tbody></table>

### HEXBINY

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>HEXBINY(number, number)</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>将 x、y 坐标映射到最接近的六边形数据桶的 y 坐标。数据桶的边长为 1，因此，可能需要相应地缩放输入。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">HEXBINY([Longitude]*2.5, [Latitude]*2.5)</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#HEXBINX" class="xref">HEXBINX</a></code>。</td></tr></tbody></table>

### LN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>LN(number)</code></td></tr><tr><td>输出</td><td><p>数字</p><p>如果参数小于或等于零，则输出为 <code>Null</code>。</p></td></tr><tr><td>定义</td><td>返回 <code>&lt;number&gt;</code> 的自然对数。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">LN(50) = 3.912023005</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#EXP" class="xref">EXP</a></code> 和 <code><a href="#LOG" class="xref">LOG</a></code>。</td></tr></tbody></table>

### LOG

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>LOG(number, [base])</code><p>如果可选的 base 参数不存在，则使用底数 10。</p></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回数字以给定底数为底的对数。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">LOG(16,4) = 2</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#POWER" class="xref">POWER</a></code> <code><a href="#LN" class="xref">LN</a></code>。</td></tr></tbody></table>

### MAX

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAX(expression)</code> 或 <code>MAX(expr1, expr2)</code></td></tr><tr><td>输出</td><td>与参数相同的数据类型，或者，如果参数的任何部分为 null，则为 <code>NULL&nbsp;</code>。</td></tr><tr><td>定义</td><td><p>返回两个参数（必须为相同数据类型）中的最大值。</p><p><code>MAX</code> 也可以聚合形式应用于单个字段。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">MAX(4,7) = 7<br>MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021# <br>MAX([Name]) = "Zander"</pre></td></tr><tr><td>说明</td><td><p><b>对于字符串</b></p><p><code>MAX</code> 通常是按字母顺序排在最后的值。</p><p class="note">对于数据库数据源，<code>MAX</code> 字符串值在数据库为该列定义的排序序列中最高。</p><p><b>对于日期</b></p><p>对于日期，<code>MAX</code> 是最近的日期。如果 <code>MAX</code> 是聚合，结果不会有日期层次结构。如果 <code>MAX</code> 是比较，结果将保留日期层次结构。</p><p><b>作为聚合</b></p><p><code>MAX(expression)</code> 是聚合函数，返回单个聚合结果。这在可视化项中显示为 <code>AGG(expression)</code>。</p><p><b>作为比较</b></p><p><code>MAX(expr1, expr2)</code> 比较这两个值并返回一个行级值。</p><p>另请参见 <code><a href="#MIN" class="xref">MIN</a></code>。</p></td></tr></tbody></table>

### MIN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MIN(expression)</code> 或 <code>MIN(expr1, expr2)</code></td></tr><tr><td>输出</td><td>与参数相同的数据类型，或者，如果参数的任何部分为 null，则为 <code>NULL&nbsp;</code>。</td></tr><tr><td>定义</td><td><p>返回两个参数（必须为相同数据类型）中的最小值。</p><p><code>MIN </code> 也可以聚合形式应用于单个字段。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">MIN(4,7) = 4<br>MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#<br>MIN([Name]) = "Abebi"</pre></td></tr><tr><td>说明</td><td><p><b>对于字符串</b></p><p><code>MIN</code> 通常是按字母顺序排列在前面的值。</p><p class="note">对于数据库数据源，<code>MIN</code> 字符串值在数据库为该列定义的排序序列中最低。</p><p><b>对于日期</b></p><p>对于日期，<code>MIN</code> 是最早的日期。如果 <code>MIN</code> 是聚合，结果不会有日期层次结构。如果 <code>MIN</code> 是比较，结果将保留日期层次结构。</p><p><b>作为聚合</b></p><p><code>MIN(expression)</code> 是聚合函数，返回单个聚合结果。这在可视化项中显示为 <code>AGG(expression)</code>。</p><p><b>作为比较</b></p><p><code>MIN(expr1, expr2)</code> 比较这两个值并返回一个行级值。</p><p>另请参见 <code><a href="#MAX" class="xref">MAX</a></code>。</p></td></tr></tbody></table>

### PI

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>PI()</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回数字常量 pi：3.14159。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">PI()&nbsp;= 3.14159</pre></td></tr><tr><td>说明</td><td>对于以弧度为输入的三角函数非常有用。另请参见 <code><a href="#RADIANS" class="xref">RADIANS</a></code>。</td></tr></tbody></table>

### POWER

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>POWER(number, power)</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>计算 <code>&lt;number&gt;</code> 的指定次 <code>&lt;power&gt;</code>。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">POWER(5,3) = 125<br>POWER([Temperature], 2)</pre></td></tr><tr><td>说明</td><td>也可以使用 ^ 符号，例如 <code>5^3 = POWER(5,3) = 125</code><p>另请参见 <code><a href="#EXP" class="xref">EXP</a></code>、<code><a href="#LOG" class="xref">LOG</a></code> 和 <code><a href="#SQUARE" class="xref">SQUARE</a></code>。</p></td></tr></tbody></table>

### RADIANS

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RADIANS(number)</code></td></tr><tr><td>输出</td><td>数字（以弧度表示的角度）</td></tr><tr><td>定义</td><td>将给定 <code>&lt;number&gt;</code> 从度数转换为弧度。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RADIANS(180) = 3.14159</pre></td></tr><tr><td>说明</td><td>反函数 <code><a href="#DEGREES" class="xref">DEGREES</a></code> 获取以弧度为单位的角度，并返回以度为单位的角度。</td></tr></tbody></table>

### ROUND

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ROUND(number, [decimals])</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td><p>将 <code>&lt;number&gt;</code> 舍入为指定位数。</p><p><code>decimals</code> 可选参数指定要在最终结果中包含的小数位数精度。如果省略 <code>decimals</code>，则 number 舍入为最接近的整数。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">ROUND(1/3, 2) = 0.33</pre></td></tr><tr><td>说明</td><td><p>某些数据库（例如 SQL Server）允许指定负长度，其中 -1 将数字舍入为 10 的倍数，-2 舍入为 100 的倍数，依此类推。此功能并不适用于所有数据库。例如，Excel 和 Access 不具备此功能。</p><blockquote><p>[!TIP]</p><p><b>提示</b>：由于 <code>ROUND</code> 可能会因数字的基础浮点表示而遇到问题 — 例如 9.405 四舍五入到 9.40 — 最好<a href="https://help.tableau.com/current/pro/desktop/zh-cn/formatting_specific_numbers.htm">将数字格式化</a>为所需的小数位数而不是四舍五入。将 9.405 格式化为两位小数将产生预期的 9.41。</p></blockquote><p>另请参见 <code><a href="#CEILING" class="xref">CEILING</a></code> 和 <code><a href="#FLOOR" class="xref">FLOOR</a></code>。</p></td></tr></tbody></table>

### SIGN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>SIGN(number)</code></td></tr><tr><td>输出</td><td>-1、0 或 1</td></tr><tr><td>定义</td><td>返回 <code>&lt;number&gt;</code> 的符号：可能的返回值为：在数字为负时为 -1，在数字为零时为 0，在数字为正时为 1。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">SIGN(AVG(Profit)) = -1</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#ABS" class="xref">ABS</a></code>。</td></tr></tbody></table>

### SIN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>SIN(number)</code><p>number 参数是以弧度表示的角度。</p></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回角度的正弦。</td></tr><tr><td>示例</td><td><pre>SIN(0) = 1.0<br>SIN(PI( )/4) = 0.707106781186548</pre></td></tr><tr><td>说明</td><td><p>反函数 <code><a href="#ASIN" class="xref">ASIN</a></code> 以正弦作为参数并返回以弧度为单位的角度。</p><p>另请参见 <code><a href="#PI" class="xref">PI</a></code>。若要将角度从度数转换为弧度，请使用 <code><a href="#RADIANS" class="xref">RADIANS</a></code>。</p></td></tr></tbody></table>

### SQRT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>SQRT(number)</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回 <code>&lt;number&gt;</code> 的平方根。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">SQRT(25) = 5</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#SQUARE" class="xref">SQUARE</a></code>。</td></tr></tbody></table>

### SQUARE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>SQUARE(number)</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回 <code>&lt;number&gt;</code> 的平方。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">SQUARE(5) = 25</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#SQRT" class="xref">SQRT</a></code> 和 <code><a href="#POWER" class="xref">POWER</a></code>。</td></tr></tbody></table>

### TAN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>TAN(number)</code><p>number 参数是以弧度表示的角度。</p></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回角度的正切。</td></tr><tr><td>示例</td><td><pre>TAN(PI ( )/4) = 1.0</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#ATAN" class="xref">ATAN</a></code>、<code><a href="#ATAN2" class="xref">ATAN2</a></code>、<code><a href="#COT" class="xref">COT</a></code> 和 <code><a href="#PI" class="xref">PI</a></code>。若要将角度从度数转换为弧度，请使用 <code><a href="#RADIANS" class="xref">RADIANS</a></code>。</td></tr></tbody></table>

### ZN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ZN(expression)</code></td></tr><tr><td>输出</td><td>任意，或 o</td></tr><tr><td>定义</td><td><p>如果 <code>&lt;expression&gt;</code> 不为 Null，则返回该表达式，否则返回零。</p><p>使用此函数将 null 值替换为零。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">ZN(Grade) = 0</pre></td></tr><tr><td>说明</td><td>当在计算中使用可能包含 null 的字段时，这是一个非常有用的函数。用 <code>ZN</code> 封装字段可以防止用 null 计算导致的错误。</td></tr></tbody></table>

字符串函数

### ASCII

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ASCII(string)</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回 <code>&lt;string&gt;</code> 的第一个字符的 ASCII 码。</td></tr><tr><td>示例</td><td><pre>ASCII('A') = 65</pre></td></tr><tr><td>说明</td><td>这是 <code>CHAR</code> 函数的反函数。</td></tr></tbody></table>

### CHAR

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>CHAR(number)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回通过 ASCII 代码 <code>&lt;number&gt;</code> 编码的字符。</td></tr><tr><td>示例</td><td><pre>CHAR(65) = 'A'</pre></td></tr><tr><td>说明</td><td>这是 <code>ASCII</code> 函数的反函数。</td></tr></tbody></table>

### CONTAINS

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>CONTAINS(string, substring)</code></td></tr><tr><td>输出</td><td>布尔值</td></tr><tr><td>定义</td><td>如果给定字符串包含指定子字符串，则返回 true。</td></tr><tr><td>示例</td><td><pre>CONTAINS("Calculation", "alcu") = true</pre></td></tr><tr><td>说明</td><td><p>另请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_logical.htm" target="_blank">逻辑函数</a> <code>IN</code> 以及<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_additional.htm" target="_blank">附加函数文档</a>中支持的正则表达式。</p><p>根据数据源的不同，CONTAINS 可能区分大小写。也就是说，对于某些数据源，<code>CONTAINS("Calculation", "ALCU") = false</code> 但是 <code>CONTAINS("Calculation", "alcu") = true</code>。另请参见 <a href="#UPPER" class="xref">UPPER</a>、<a href="#LOWER" class="xref">LOWER</a> 和 <a href="#PROPER" class="xref">PROPER</a>。</p></td></tr></tbody></table>

### ENDSWITH

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ENDSWITH(string, substring)</code></td></tr><tr><td>输出</td><td>布尔值</td></tr><tr><td>定义</td><td>如果给定字符串以指定子字符串结尾，则返回 true。会忽略尾随空格。</td></tr><tr><td>示例</td><td><pre>ENDSWITH("Tableau", "leau") = true</pre></td></tr><tr><td>说明</td><td>另请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_additional.htm" target="_blank">附加函数文档</a>中支持的正则表达式。</td></tr></tbody></table>

### FIND

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>FIND(string, substring, [start])</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td><p>返回子字符串在字符串中的索引位置，如果未找到子字符串，则返回 0。字符串中第一个字符的位置为 1。</p><p>如果添加了可选参数 <code>start</code>，则函数会忽略在起始位置之前出现的任何子字符串的实例。</p></td></tr><tr><td>示例</td><td><pre>FIND("Calculation", "alcu") = 2</pre><pre>FIND("Calculation", "Computer") = 0</pre><pre xml:space="preserve">FIND("Calculation", "a", 3) = 7</pre><pre xml:space="preserve">FIND("Calculation", "a", 2) = 2</pre><pre xml:space="preserve">FIND("Calculation", "a", 8) = 0</pre></td></tr><tr><td>说明</td><td>另请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_additional.htm" target="_blank">附加函数文档</a>中支持的正则表达式。</td></tr></tbody></table>

### FINDNTH

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>FINDNTH(string, substring, occurrence)</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回指定字符串内的第 n 个子字符串的位置，其中 n 由 occurrence 参数定义。</td></tr><tr><td>示例</td><td><pre>FINDNTH("Calculation", "a", 2) = 7</pre></td></tr><tr><td>说明</td><td><p>所有数据源都不可使用 <code>FINDNTH</code>。</p><p>另请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_additional.htm" target="_blank">附加函数文档</a>中支持的正则表达式。</p></td></tr></tbody></table>

### LEFT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>	LEFT(string, number)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回字符串最左侧一定 <code>&lt;number&gt;</code> 的字符。</td></tr><tr><td>示例</td><td><pre>LEFT("Matador", 4) = "Mata"</pre></td></tr><tr><td>说明</td><td>另请参见 <a href="#MID" class="xref">MID</a> 和 <a href="#RIGHT" class="xref">RIGHT</a>。</td></tr></tbody></table>

### LEN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>LEN(string)</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回字符串长度。</td></tr><tr><td>示例</td><td><pre>LEN("Matador") = 7</pre></td></tr><tr><td>说明</td><td>不要与<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_spatial.htm" target="_blank">空间函数 <code>LENGTH</code></a> 混淆。</td></tr></tbody></table>

### LOWER

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>LOWER(string)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>以全小写字符返回提供的 <code>&lt;string&gt;</code>。</td></tr><tr><td>示例</td><td><pre>LOWER("ProductVersion") = "productversion"</pre></td></tr><tr><td>说明</td><td>另请参见 <a href="#UPPER" class="xref">UPPER</a> 和 <a href="#PROPER" class="xref">PROPER</a>。</td></tr></tbody></table>

### LTRIM

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>	LTRIM(string)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回移除了所有前导空格的所提供的 <code>&lt;string&gt;</code>。</td></tr><tr><td>示例</td><td><pre>LTRIM(" Matador ") = "Matador "</pre></td></tr><tr><td>说明</td><td>另请参见 <a href="#RTRIM" class="xref">RTRIM</a>。</td></tr></tbody></table>

### MAX

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAX(expression)</code> 或 <code>MAX(expr1, expr2)</code></td></tr><tr><td>输出</td><td>与参数相同的数据类型，或者，如果参数的任何部分为 null，则为 <code>NULL&nbsp;</code>。</td></tr><tr><td>定义</td><td><p>返回两个参数（必须为相同数据类型）中的最大值。</p><p><code>MAX</code> 也可以聚合形式应用于单个字段。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">MAX(4,7) = 7<br>MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021# <br>MAX([Name]) = "Zander"</pre></td></tr><tr><td>说明</td><td><p><b>对于字符串</b></p><p><code>MAX</code> 通常是按字母顺序排在最后的值。</p><p class="note">对于数据库数据源，<code>MAX</code> 字符串值在数据库为该列定义的排序序列中最高。</p><p><b>对于日期</b></p><p>对于日期，<code>MAX</code> 是最近的日期。如果 <code>MAX</code> 是聚合，结果不会有日期层次结构。如果 <code>MAX</code> 是比较，结果将保留日期层次结构。</p><p><b>作为聚合</b></p><p><code>MAX(expression)</code> 是聚合函数，返回单个聚合结果。这在可视化项中显示为 <code>AGG(expression)</code>。</p><p><b>作为比较</b></p><p><code>MAX(expr1, expr2)</code> 比较这两个值并返回一个行级值。</p><p>另请参见 <code><a href="#MIN" class="xref">MIN</a></code>。</p></td></tr></tbody></table>

### MID

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>(MID(string, start, [length])</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td><p>返回从指定 <code>start</code> 位置处开始的字符串t。字符串中第一个字符的位置为 1。</p><p>如果添加了可选数字参数 <code>length</code>，则返回的字符串仅包含该数量的字符。</p></td></tr><tr><td>示例</td><td><pre>MID("Calculation", 2) = "alculation"</pre><pre>MID("Calculation", 2, 5) ="alcul"</pre></td></tr><tr><td>说明</td><td>另请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_additional.htm" target="_blank">附加函数文档</a>中支持的正则表达式。</td></tr></tbody></table>

### MIN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MIN(expression)</code> 或 <code>MIN(expr1, expr2)</code></td></tr><tr><td>输出</td><td>与参数相同的数据类型，或者，如果参数的任何部分为 null，则为 <code>NULL&nbsp;</code>。</td></tr><tr><td>定义</td><td><p>返回两个参数（必须为相同数据类型）中的最小值。</p><p><code>MIN </code> 也可以聚合形式应用于单个字段。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">MIN(4,7) = 4<br>MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#<br>MIN([Name]) = "Abebi"</pre></td></tr><tr><td>说明</td><td><p><b>对于字符串</b></p><p><code>MIN</code> 通常是按字母顺序排列在前面的值。</p><p class="note">对于数据库数据源，<code>MIN</code> 字符串值在数据库为该列定义的排序序列中最低。</p><p><b>对于日期</b></p><p>对于日期，<code>MIN</code> 是最早的日期。如果 <code>MIN</code> 是聚合，结果不会有日期层次结构。如果 <code>MIN</code> 是比较，结果将保留日期层次结构。</p><p><b>作为聚合</b></p><p><code>MIN(expression)</code> 是聚合函数，返回单个聚合结果。这在可视化项中显示为 <code>AGG(expression)</code>。</p><p><b>作为比较</b></p><p><code>MIN(expr1, expr2)</code> 比较这两个值并返回一个行级值。</p><p>另请参见 <code><a href="#MAX" class="xref">MAX</a></code>。</p></td></tr></tbody></table>

### PROPER

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>PROPER(string)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td><p>返回所提供的 <code>&lt;string&gt;</code>，每个单词的第一个字母大写，其余字母小写。</p></td></tr><tr><td>示例</td><td><pre>PROPER("PRODUCT name") = "Product Name"</pre><pre>PROPER("darcy-mae") = "Darcy-Mae"</pre></td></tr><tr><td>说明</td><td><p>空格和非字母数字字符（如标点符号）被视为分隔符。</p><p>另请参见 <a href="#LOWER" class="xref">LOWER</a> 和 <a href="#UPPER" class="xref">UPPER</a>。</p></td></tr> <tr><td>数据库限制</td><td>PROPER 仅适用于某些平面文件和数据提取。如果您需要在不支持 PROPER 的数据源中使用 PROPER，请考虑使用数据提取。</td></tr></tbody></table>

### REPLACE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>REPLACE(string, substring, replacement</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>在 <code>&lt;string&gt;</code> 中搜索 <code>&lt;substring&gt;</code> 并将其替换为 <code>&lt;replacement&gt;</code>。如果未找到 <code>&lt;substring&gt;</code>，则字符串保持不变。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">REPLACE("Version 3.8", "3.8", "4x") = "Version 4x"</pre></td></tr><tr><td>说明</td><td>另请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_additional.htm" target="_blank">附加函数文档</a>中的 <code>REGEXP_REPLACE</code>。</td></tr></tbody></table>

### RIGHT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RIGHT(string, number)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回字符串最右侧一定 <code>&lt;number&gt;</code> 的字符。</td></tr><tr><td>示例</td><td><pre>RIGHT("Calculation", 4) = "tion"</pre></td></tr><tr><td>说明</td><td>另请参见 <a href="#LEFT" class="xref">LEFT</a> 和 <a href="#MID" class="xref">MID</a>。</td></tr></tbody></table>

### RTRIM

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RTRIM(string)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回移除了所有尾随空格的所提供的 <code>&lt;string&gt;</code>。</td></tr><tr><td>示例</td><td><pre>RTRIM(" Calculation ") = " Calculation"</pre></td></tr><tr><td>说明</td><td>另请参见 <a href="#LTRIM" class="xref">LTRIM</a> 和 <a href="#TRIM" class="xref">TRIM</a>。</td></tr></tbody></table>

### SPACE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>SPACE(number)</code></td></tr><tr><td>输出</td><td>字符串（具体来说，只是空格）</td></tr><tr><td>定义</td><td>返回由指定数量的重复空格组成的字符串。</td></tr><tr><td>示例</td><td><pre>SPACE(2) = "  "</pre></td></tr></tbody></table>

### SPLIT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>SPLIT(string, delimiter, token number)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回字符串中的一个子字符串，并使用分隔符字符将字符串分为一系列标记。</td></tr><tr><td>示例</td><td><pre>SPLIT ("a-b-c-d", "-", 2) = "b"</pre><pre>SPLIT ("a|b|c|d", "|", -2) = "c"</pre></td></tr><tr><td>说明</td><td><p>字符串将被解释为分隔符和标记的交替序列。因此，对于字符串 <code>abc-defgh-i-jkl</code>，分隔符字符为“<code>-</code>”，标记为 (1) <code>abc</code>、(2) <code>defgh</code>、(3) <code>i</code> 和 (4) <code>jlk</code></p><p><code>SPLIT</code> 将返回与标记编号对应的标记。如果标记编号为正，则从字符串的左侧开始计算标记；如果标记编号为负，则从右侧开始计算标记。</p><p>另请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_additional.htm" target="_blank">附加函数文档</a>中支持的正则表达式。</p></td></tr><tr><td>数据库限制</td><td><p>可以为以下数据源类型使用拆分和自定义拆分命令：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。</p><p>某些数据源在拆分字符串时会有限制。请参见本主题后面的 SPLIT 函数限制。</p></td></tr></tbody></table>

### STARTSWITH

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>STARTSWITH(string, substring)</code></td></tr><tr><td>输出</td><td>布尔值</td></tr><tr><td>定义</td><td>如果 <code>string</code> 以 <code>substring</code> 开头，则返回 true。会忽略前导空格。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">STARTSWITH("Matador, "Ma") = TRUE</pre></td></tr><tr><td>说明</td><td>另请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_additional.htm" target="_blank">附加函数文档</a>中的 <a href="#CONTAINS" class="xref">CONTAINS</a> 以及支持的正则表达式。</td></tr></tbody></table>

### TRIM

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>TRIM(string)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回移除了前导和尾随空格的所提供的 <code>&lt;string&gt;</code>。</td></tr><tr><td>示例</td><td><pre>TRIM(" Calculation ") = "Calculation"</pre></td></tr><tr><td>说明</td><td>另请参见 <a href="#LTRIM" class="xref">LTRIM</a> 和 <a href="#RTRIM" class="xref">RTRIM</a>。</td></tr></tbody></table>

### UPPER

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>UPPER(string)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>以全大写字符返回提供的 <code>&lt;string&gt;</code>。</td></tr><tr><td>示例</td><td><pre>UPPER("Calculation") = "CALCULATION"</pre></td></tr><tr><td>说明</td><td>另请参见 <a href="#PROPER" class="xref">PROPER</a> 和 <a href="#LOWER" class="xref">LOWER</a>。</td></tr></tbody></table>

日期函数

**注意**：日期函数不考虑配置的会计年度开始。请参见[会计日期](https://help.tableau.com/v0.0/pro/desktop/zh-cn/dates_fiscal.htm)

### DATE

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

<table class="table--plain"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DATE(expression)</code></td></tr><tr><td>输出</td><td>日期</td></tr><tr><td>定义</td><td>在给定数字、字符串或日期 <code>&lt;expression&gt;</code> 的情况下返回日期。</td></tr><tr><td>示例</td><td><pre>DATE([Employee Start Date])</pre><pre>DATE("September 22, 2018") </pre><pre xml:space="preserve">DATE("9/22/2018")</pre><pre>DATE(#2018-09-22 14:52#)</pre></td></tr><tr><td>说明</td><td><p>与 <code><a href="#DATEPARS" class="xref">DATEPARSE</a></code> 不同，不需要提供模式，因为 <code>DATE</code> 会自动识别许多标准日期格式。但是，如果 <code>DATE</code> 不能识别输入，请尝试使用 <code>DATEPARSE</code> 并指定格式。</p><p><code><a href="#MAKEDATE" class="xref">MAKEDATE</a></code> 是另一个类似的函数，但是 <code>MAKEDATE</code> 要求输入年、月和日的数值。</p></td></tr></tbody></table>

### DATEADD

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

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DATEADD(date_part, interval, date)</code></td></tr><tr><td>输出</td><td>日期</td></tr><tr><td>定义</td><td>返回 <code>&lt;date&gt;</code>，该日期的指定 <code>&lt;<a href="#arg" class="xref">date_part</a>&gt;</code> 中添加了指定的数字 <code>&lt;interval&gt;</code>。例如，将开始日期增加 3 个月或 12 天。</td></tr><tr><td>示例</td><td><p>将所有的到期日推迟一周</p><pre>DATEADD('week', 1, [due date])</pre><p>将 2021 年 2 月 20 日加上 280 天</p><pre xml:space="preserve">DATEADD('day', 280, #2/20/21#) = #November 27, 2021#</pre></td></tr><tr><td>说明</td><td>支持 ISO 8601 日期。</td></tr></tbody></table>

### DATEDIFF

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

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DATEDIFF(date_part, date1, date2, [start_of_week])</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>返回 <code>&lt;date1&gt;</code> 与 <code>&lt;date2&gt;</code> 之差（以 <code>&lt;<a href="#arg" class="xref">date_part</a>&gt;</code> 的单位表示）。例如，减去某人加入和离开乐队的日期，就可以知道他们在乐队里呆了多久。</td></tr><tr><td>示例</td><td><p>1986 年 3 月 25 日到 2021 年 2 月 20 日之间的天数</p><pre>DATEDIFF('day', #3/25/1986#, #2/20/2021#) = 12,751</pre><p>一个人在乐队里呆了几个月</p><pre>DATEDIFF('month', [date joined band], [date left band])</pre></td></tr><tr><td>说明</td><td>支持 ISO 8601 日期。</td></tr></tbody></table>

### DATENAME

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

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DATENAME(date_part, date, [start_of_week])</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>以字符串的形式返回 <code>&lt;date&gt;</code> 的 <code>&lt;<a href="#arg" class="xref">date_part</a>&gt;</code>。</td></tr><tr><td>示例</td><td><pre>DATENAME('year', #3/25/1986#) = "1986"</pre><pre>DATENAME('month', #1986-03-25#) = "March"</pre></td></tr><tr><td>说明</td><td><p>支持 ISO 8601 日期。</p><p>一个非常类似的计算是 <a href="#DATEPART" class="xref">DATEPART</a>，它以连续整数的形式返回指定日期部分的值。<code>DATEPART</code> 可能更快，因为它是一个数值运算。</p><p>通过更改计算结果的属性（维度或度量、连续或离散）和日期格式，可以将 <code>DATEPART</code> 和 <code>DATENAME</code> 的结果格式设置为相同。</p><p>反函数是 <a href="#DATEPARS" class="xref">DATEPARSE</a>，它接受一个字符串值并将其格式化为日期。</p></td></tr></tbody></table>

### DATEPARSE

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

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DATEPARSE(date_format, date_string)</code></td></tr><tr><td>输出</td><td>日期</td></tr><tr><td>定义</td><td><code>&lt;date_format&gt;</code> 参数将描述 <code>&lt;date_string&gt;</code> 字段的排列方式。由于可通过各种方式对字符串字段进行排序，因此 <code>&lt;date_format&gt;</code> 必须完全匹配。有关完整解释和格式设置详细信息，请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/data_dateparse.htm" target="_blank">将字段转换为日期字段</a>。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">DATEPARSE('yyyy-MM-dd', "1986-03-25") = #March 25, 1986#</pre></td></tr><tr><td>说明</td><td><p><code><a href="#top" class="xref">DATE</a></code>是一个类似的函数，可以自动识别许多标准的日期格式。如果 <code>DATE</code> 不能识别输入模式，<code>DATEPARSE</code> 可能是更好的选择。</p><p><code><a href="#MAKEDATE" class="xref">MAKEDATE</a></code> 是另一个类似的函数，但是 <code>MAKEDATE</code> 要求输入年、月和日的数值。</p><p>反函数是 <code><a href="#DATEPART" class="xref">DATEPART</a></code>（整数输出）和 <code><a href="#DATENAME" class="xref">DATENAME</a></code>（字符串输出），它将日期分开并返回其各部分的值。</p></td></tr><tr><td>数据库限制</td><td><p><code>DATEPARSE</code> 可通过以下连接器获得：非旧版 Excel 和文本文件连接、Amazon EMR Hadoop Hive、Cloudera Hadoop、Google 表格、Hortonworks Hadoop Hive、MapR Hadoop Hive、MySQL、Oracle、PostgreSQL 以及 Tableau 数据提取。有些格式可能并非适用于所有连接。</p><p>Hive 变体不支持 <code>DATEPARSE</code>。仅支持 Denodo、Drill 和 Snowflake。</p></td></tr></tbody></table>

### DATEPART

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

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DATEPART(date_part, date, [start_of_week])</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>以整数的形式返回 <code>&lt;date&gt;</code> 的 <code>&lt;<a href="#arg" class="xref">date_part</a>&gt;</code>。</td></tr><tr><td>示例</td><td><pre>DATEPART('year', #1986-03-25#) = 1986</pre><pre>DATEPART('month', #1986-03-25#) = 3</pre></td></tr><tr><td>说明</td><td><p>支持 ISO 8601 日期。</p><p>一个非常类似的计算是 <code><a href="#DATENAME" class="xref">DATENAME</a></code>，它以离散字符串的形式返回指定日期部分的名称。<code>DATEPART</code> 可能更快，因为它是一个数值运算。通过更改字段的属性（维度或度量、连续或离散）和日期格式，可以将 <code>DATEPART</code> 和 <code>DATENAME</code> 的结果格式设置为相同。</p><p>反函数是 <code><a href="#DATEPARS" class="xref">DATEPARSE</a></code>，它接受一个字符串值并将其格式化为日期。</p></td></tr></tbody></table>

### DATETRUNC

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

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DATETRUNC(date_part, date, [start_of_week])</code></td></tr><tr><td>输出</td><td>日期</td></tr><tr><td>定义</td><td>按 <code>&lt;<a href="#arg" class="xref">date_part</a>&gt;</code>指定的准确度截断 <code>&lt;date&gt;</code>。此函数返回新日期。例如，以月份级别截断处于月份中间的日期时，此函数返回当月的第一天。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">DATETRUNC('day', #9/22/2018#) = #9/22/2018#</pre><pre xml:space="preserve">DATETRUNC('iso-week', #9/22/2018#) = #9/17/2018#</pre><p>（包含 2018 年 9 月 22 日的一周中的星期一）</p><pre xml:space="preserve">DATETRUNC(quarter, #9/22/2018#) = #7/1/2018# </pre><p>（包含 2018 年 9 月 22 日的季度的第一天）</p><p class="note">注意：对于周和 iso 周，<code>start_of_week</code> 有作用。ISO 周始终从星期一开始。对于本例的区域设置，未指定的 <code>start_of_week</code> 意味着一周从星期日开始。</p></td></tr><tr><td>说明</td><td><p>支持 ISO 8601 日期。</p><p>例如，您不应使用 <code>DATETRUNC</code> 来停止在可视化项中显示日期时间字段的时间。如果要截断日期的显示方式而不是舍入其精度，请<a href="https://help.tableau.com/current/pro/desktop/zh-cn/dates_custom_date_formats.htm" target="_blank">调整格式</a>。</p><p>举例来说，如果在可视化项中格式为显示秒，<code>DATETRUNC('day', #5/17/2022 3:12:48 PM#)</code> 将显示为 <code>5/17/2022 12:00:00 AM</code>。该值被截断为天，但显示为秒。</p></td></tr></tbody></table>

### DAY

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

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DAY(date)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>以整数的形式返回给定 <code>&lt;date&gt;</code> 的天。</td></tr><tr><td>示例</td><td><pre>Day(#September 22, 2018#) = 22</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#WEEK" class="xref">WEEK</a></code>、<code><a href="#MONTH" class="xref">MONTH</a></code>、<code><a href="#QUARTER" class="xref">QUARTER</a></code>、<code><a href="#YEAR" class="xref">YEAR</a></code> 以及 ISO 等效值。</td></tr></tbody></table>

### ISDATE

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

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ISDATE(string)</code></td></tr><tr><td>输出</td><td>布尔值</td></tr><tr><td>定义</td><td>如果给定 <code>&lt;string&gt;</code> 为有效日期，则返回 true。</td></tr><tr><td>示例</td><td><pre>ISDATE(09/22/2018) = true</pre><pre>ISDATE(22SEP18) = false</pre></td></tr><tr><td>说明</td><td>所需的参数必须是字符串。ISDATE 不能用于日期数据类型的字段，计算将返回错误。</td></tr></tbody></table>

### ISOQUARTER

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ISOQUARTER(date)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>以整数的形式返回给定 <code>&lt;date&gt;</code> 的基于 ISO8601 周的季度。</td></tr><tr><td>示例</td><td><pre>ISOQUARTER(#1986-03-25#) = 1</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#ISOWEEK" class="xref">ISOWEEK</a></code>、<code><a href="#ISOWEEKDAY" class="xref">ISOWEEKDAY</a></code>、<code><a href="#ISOYEAR" class="xref">ISOYEAR</a></code>, 以及 -ISO 等效值。</td></tr></tbody></table>

### ISOWEEK

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ISOWEEK(date)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>以整数的形式返回给定 <code>&lt;date&gt;</code> 基于 ISO8601 周的周。</td></tr><tr><td>示例</td><td><pre>ISOWEEK(#1986-03-25#) = 13</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#ISOWEEKDAY" class="xref">ISOWEEKDAY</a></code>、<code><a href="#ISOQUARTER" class="xref">ISOQUARTER</a></code>、<code><a href="#ISOYEAR" class="xref">ISOYEAR</a></code>, 以及 -ISO 等效值。</td></tr></tbody></table>

### ISOWEEKDAY

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ISOWEEKDAY(date)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>以整数的形式返回给定 <code>&lt;date&gt;</code> 的基于 ISO8601 周的工作日。</td></tr><tr><td>示例</td><td><pre>ISOWEEKDAY(#1986-03-25#) = 2</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#ISOWEEK" class="xref">ISOWEEK</a></code>、<code><a href="#ISOQUARTER" class="xref">ISOQUARTER</a></code>、<code><a href="#ISOYEAR" class="xref">ISOYEAR</a></code>, 以及 -ISO 等效值。</td></tr></tbody></table>

### ISOYEAR

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ISOYEAR(date)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>以整数的形式返回给定 <code>&lt;date&gt;</code> 的基于 ISO8601 年份的工作日。</td></tr><tr><td>示例</td><td><pre>ISOYEAR(#1986-03-25#) = 1,986</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#ISOWEEK" class="xref">ISOWEEK</a></code>、<code><a href="#ISOWEEKDAY" class="xref">ISOWEEKDAY</a></code>、<code><a href="#ISOQUARTER" class="xref">ISOQUARTER</a></code>, 以及 -ISO 等效值。</td></tr></tbody></table>

### MAKEDATE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAKEDATE(year, month, day)</code></td></tr><tr><td>输出</td><td>日期</td></tr><tr><td>定义</td><td>返回一个依据指定 <code>&lt;year&gt;</code>、<code>&lt;month&gt;</code> 和 <code>&lt;day&gt;</code> 构造的日期值。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">MAKEDATE(1986,3,25) = #1986-03-25#</pre></td></tr><tr><td>说明</td><td><p class="note"><b>注意，</b>输入错误的值将被调整为一个日期，例如 <code>MAKEDATE(2020,4,31) = May 1, 2020</code>，而不是返回指出没有 4 月 31 日的错误。</p><p>可用于 Tableau 数据提取。检查在其他数据源中的可用性。</p><p><code>MAKEDATE</code> 要求为日期的各个部分输入数字。如果您的数据是应该是日期的字符串，请尝试 <code><a href="#top" class="xref">DATE</a></code> 函数。<code>DATE</code> 可自动识别许多标准的日期格式。如果 <code>DATE</code> 不能识别输入，请尝试使用 <code><a href="#DATEPARS" class="xref">DATEPARSE</a></code>。</p></td></tr></tbody></table>

### MAKEDATETIME

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAKEDATETIME(date, time)</code></td></tr><tr><td>输出</td><td>日期时间</td></tr><tr><td>定义</td><td>返回合并了 <code>&lt;date&gt;</code> 和 <code>&lt;time&gt;</code>的日期时间。日期可以是 date、datetime 或 string 类型。时间必须是 datetime。</td></tr><tr><td>示例</td><td><pre>MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM#</pre><pre>MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM#</pre></td></tr><tr><td>说明</td><td><p>此函数仅适用于与 MySQL 兼容的连接（对于 Tableau 为 MySQL 和 Amazon Aurora）。</p><p><code><a href="#MAKETIME" class="xref">MAKETIME</a></code> 是一个类似的函数，可用于 Tableau 数据提取和其他一些数据源。</p></td></tr></tbody></table>

### MAKETIME

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAKETIME(hour, minute, second)</code></td></tr><tr><td>输出</td><td>日期时间</td></tr><tr><td>定义</td><td>返回一个依据指定 <code>&lt;hour&gt;</code>、<code>&lt;minute&gt;</code> 和 <code>&lt;second&gt;</code> 构造的日期值。</td></tr><tr><td>示例</td><td><pre>MAKETIME(14, 52, 40) = #1/1/1899 14:52:40#</pre></td></tr><tr><td>说明</td><td><p>由于 Tableau 不支持时间数据类型，只支持日期时间，因此输出是日期时间。字段的日期部分将是 1/1/1899。</p><p>类似于 <code><a href="#MAKEDATETIME" class="xref">MAKEDATETIME</a></code> 的函数，只适用于 MYSQL 兼容的连接。</p></td></tr></tbody></table>

### MAX

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAX(expression)</code> 或 <code>MAX(expr1, expr2)</code></td></tr><tr><td>输出</td><td>与参数相同的数据类型，或者，如果参数的任何部分为 null，则为 <code>NULL</code>。</td></tr><tr><td>定义</td><td><p>返回两个参数（必须为相同数据类型）中的最大值。</p><p><code>MAX</code> 也可以聚合形式应用于单个字段。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">MAX(4,7) = 7<br>MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021# <br>MAX([Name]) = "Zander"</pre></td></tr><tr><td>说明</td><td><p><b>对于字符串</b></p><p><code>MAX</code> 通常是按字母顺序排在最后的值。</p><p class="note">对于数据库数据源，<code>MAX</code> 字符串值在数据库为该列定义的排序序列中最高。</p><p><b>对于日期</b></p><p>对于日期，<code>MAX</code> 是最近的日期。如果 <code>MAX</code> 是聚合，结果不会有日期层次结构。如果 <code>MAX</code> 是比较，结果将保留日期层次结构。</p><p><b>作为聚合</b></p><p><code>MAX(expression)</code> 是聚合函数，返回单个聚合结果。这在可视化项中显示为 <code>AGG(expression)</code>。</p><p><b>作为比较</b></p><p><code>MAX(expr1, expr2)</code> 比较这两个值并返回一个行级值。</p><p>另请参见 <code><a href="#MIN" class="xref">MIN</a></code>。</p></td></tr></tbody></table>

### MIN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MIN(expression)</code> 或 <code>MIN(expr1, expr2)</code></td></tr><tr><td>输出</td><td>与参数相同的数据类型，或者，如果参数的任何部分为 null，则为 <code>NULL&nbsp;</code>。</td></tr><tr><td>定义</td><td><p>返回两个参数（必须为相同数据类型）中的最小值。</p><p><code>MIN </code> 也可以聚合形式应用于单个字段。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">MIN(4,7) = 4<br>MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#<br>MIN([Name]) = "Abebi"</pre></td></tr><tr><td>说明</td><td><p><b>对于字符串</b></p><p><code>MIN</code> 通常是按字母顺序排列在前面的值。</p><p class="note">对于数据库数据源，<code>MIN</code> 字符串值在数据库为该列定义的排序序列中最低。</p><p><b>对于日期</b></p><p>对于日期，<code>MIN</code> 是最早的日期。如果 <code>MIN</code> 是聚合，结果不会有日期层次结构。如果 <code>MIN</code> 是比较，结果将保留日期层次结构。</p><p><b>作为聚合</b></p><p><code>MIN(expression)</code> 是聚合函数，返回单个聚合结果。这在可视化项中显示为 <code>AGG(expression)</code>。</p><p><b>作为比较</b></p><p><code>MIN(expr1, expr2)</code> 比较这两个值并返回一个行级值。</p><p>另请参见 <code><a href="#MAX" class="xref">MAX</a></code>。</p></td></tr></tbody></table>

### MONTH

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MONTH(date)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>以整数形式返回给定 <code>&lt;date&gt;</code> 的月份。</td></tr><tr><td>示例</td><td><pre>MONTH(#1986-03-25#) = 3</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#DAY" class="xref">DAY</a></code>、<code><a href="#WEEK" class="xref">WEEK</a></code>、<code><a href="#QUARTER" class="xref">QUARTER</a></code>、<code><a href="#YEAR" class="xref">YEAR</a></code> 以及 ISO 等效值</td></tr></tbody></table>

### NOW

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>NOW()</code></td></tr><tr><td>输出</td><td>日期时间</td></tr><tr><td>定义</td><td>返回当前本地系统日期和时间。</td></tr><tr><td>示例</td><td><pre>NOW() = 1986-03-25 1:08:21 PM</pre></td></tr><tr><td>说明</td><td><p><code>NOW</code> 不接受参数。</p><p>另请参见返回日期而不是日期时间的类似计算 <code><a href="#TODAY" class="xref">TODAY</a></code>。</p><p>如果数据源是实时连接，则系统日期和时间可能位于另一个时区。有关如何解决此问题的详细信息，请参见<a href="https://kb.tableau.com/articles/issue/now-function-returns-utc-time?lang=zh-cn">知识库</a>。</p></td></tr></tbody></table>

### QUARTER

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>QUARTER(date)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>以整数形式返回给定 <code>&lt;date&gt;</code> 的季度。</td></tr><tr><td>示例</td><td><pre>QUARTER(#1986-03-25#) = 1</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#DAY" class="xref">DAY</a></code>、<code><a href="#WEEK" class="xref">WEEK</a></code>、<code><a href="#MONTH" class="xref">MONTH</a></code>、<code><a href="#YEAR" class="xref">YEAR</a></code> 以及 ISO 等效值</td></tr></tbody></table>

### TODAY

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>TODAY()</code></td></tr><tr><td>输出</td><td>日期</td></tr><tr><td>定义</td><td>返回当前本地系统日期。</td></tr><tr><td>示例</td><td><pre>TODAY() = 1986-03-25</pre></td></tr><tr><td>说明</td><td><p><code>TODAY</code> 不接受参数。</p><p>另请参见返回日期时间而不是日期的类似计算 <a href="#NOW" class="xref">NOW</a>。</p><p>如果数据源是实时连接，则系统日期可能位于另一个时区。有关如何解决此问题的详细信息，请参见<a href="https://kb.tableau.com/articles/issue/now-function-returns-utc-time?lang=zh-cn">知识库</a>。</p></td></tr></tbody></table>

### WEEK

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>WEEK(date)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>以整数形式返回给定 <code>&lt;date&gt;</code> 的周。</td></tr><tr><td>示例</td><td><pre>WEEK(#1986-03-25#) = 13</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#DAY" class="xref">DAY</a></code>、<code><a href="#MONTH" class="xref">MONTH</a></code>、<code><a href="#QUARTER" class="xref">QUARTER</a></code>、<code><a href="#YEAR" class="xref">YEAR</a></code> 以及 ISO 等效值</td></tr></tbody></table>

### YEAR

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>YEAR(date)</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>以整数形式返回给定 <code>&lt;date&gt;</code> 的年份。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">YEAR(#1986-03-25#) = 1,986</pre></td></tr><tr><td>说明</td><td>另请参见 <code><a href="#DAY" class="xref">DAY</a></code>、<code><a href="#WEEK" class="xref">WEEK</a></code>、<code><a href="#MONTH" class="xref">MONTH</a></code>、<code><a href="#QUARTER" class="xref">QUARTER</a></code> 以及 ISO 等效值</td></tr></tbody></table>

## 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

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>&lt;expr1&gt; AND &lt;expr2&gt;</code></td></tr><tr><td>定义</td><td>对两个表达式执行逻辑合取运算。（如果两边都为 true，则逻辑测试返回 true。）</td></tr><tr><td>输出</td><td>布尔值（True 或 False）</td></tr><tr><td>示例</td><td><pre>IF [Season] = "Spring" AND "[Season] = "Fall" <br>THEN "It's the apocalypse and footwear doesn't matter" <br>END</pre><p><i>“如果（Season = Spring）和（Season = Fall）同时为 true，则返回“It's the apocalypse and footwear doesn't matter”。</i></p></td></tr><tr><td>说明</td><td><p>通常与 <a href="#IF" class="xref">IF</a> 和 <a href="#IIF" class="xref">IIF</a> 一起使用。另请参见 <a href="#NOT" class="xref">NOT</a> 和 <a href="#OR" class="xref">或者</a>。</p><p>如果两个表达式都为 <code>TRUE</code>（即不为 <code>FALSE</code> 或 <code>NULL</code>），则结果为 <code>TRUE</code>。如果任一表达式为 <code>NULL</code>，则结果为 <code>NULL</code>。在所有其他情况下，结果都为 <code>FALSE</code>。</p><p>如果所创建的计算中的 <code>AND</code> 比较结果显示在工作表上，则 Tableau 显示 <code>TRUE</code> 和 <code>FALSE</code>。如果要更改此情况，请使用设置格式对话框中的“设置格式”区域。</p><p class="note"><b>注意</b>：<code>AND</code> 运算符使用<i>短路计算</i>。这表示如果第一个表达式计算为 <code>FALSE</code>，则根本不会计算第二个表达式。如果第二个表达式在第一个表达式为 <code>FALSE</code> 时产生错误，则这可能十分有用，因为在这种情况下从不计算第二个表达式。</p></td></tr></tbody></table>

### CASE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code><b>CASE</b> &lt;expression&gt; 
                        <br>WHEN &lt;value1&gt; THEN &lt;then1&gt; 
                        <br>WHEN &lt;value2&gt; THEN &lt;then2&gt; 
                        <br>...
                        <br>[ELSE &lt;default&gt;]<br>END</code></td></tr><tr><td>输出</td><td>取决于 <code>&lt;then&gt;</code> 值的数据类型。</td></tr><tr><td>定义</td><td><p>对 <code>expression</code> 进行求值，并将其与指定选项（<code>&lt;value1&gt;</code>、<code>&lt;value2&gt;</code> 等）进行比较。遇到一个与表达式匹配的 <code>value</code> 时，CASE 返回相应的 <code>return</code>。如果未找到匹配值，则返回（可选）默认值。如果不存在默认值并且没有任何值匹配，则会返回 Null。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve"><code><b>CASE</b> [Season] <br>WHEN 'Summer' THEN 'Sandals' <br>WHEN 'Winter' THEN 'Boots' <br>ELSE 'Sneakers' <br>END</code></pre><p><i>“看看“Season”字段。如果值为 Summer，则返回 Sandals。如果值为 Winter，则返回 Boots。如果计算中的选项均不匹配“Season”字段中的选项，则返回 Sneakers。”</i></p></td></tr><tr><td>说明</td><td><p>另请参见 <a href="#IF" class="xref">IF</a> 和 <a href="#IIF" class="xref">IIF</a>。</p><p>与 <a href="#WHEN" class="xref">WHEN</a>、<a href="#THEN" class="xref">THEN</a>、<a href="#ELSE" class="xref">ELSE</a> 和 <a href="#END" class="xref">END</a> 结合使用。</p><blockquote><p>[!TIP]</p><p><b>提示</b>：很多时候，您可以使用组来获得与复杂 CASE 函数相同的结果，或者使用 CASE 来替换本机分组功能，例如前面的示例。您可能想测试哪个更适合您的场景。</p></blockquote></td></tr></tbody></table>

### ELSE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>CASE &lt;expression&gt; 
							<br>WHEN &lt;value1&gt; THEN &lt;then1&gt; 
							<br>WHEN &lt;value2&gt; THEN &lt;then2&gt; 
							<br>...
						<br>[<b>ELSE</b> &lt;default&gt;]<br>END</code></td></tr><tr><td>定义</td><td><code>IF</code> 或 <code>CASE</code> 表达式的一个可选部分，用于指定如果没有一个测试表达式为 true 则返回的默认值。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;THEN&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;THEN&nbsp;'Boots' <br><b>ELSE</b>&nbsp;'Sneakers'&nbsp;<br>END</pre><pre>CASE [Season] <br>WHEN 'Summer' THEN 'Sandals' <br>WHEN 'Winter' THEN 'Boots' <br><b>ELSE</b> 'Sneakers' <br>END</pre></td></tr><tr><td>说明</td><td><p>与 <a href="#CASE" class="xref">CASE</a>、<a href="#WHEN" class="xref">WHEN</a>、<a href="#IF" class="xref">IF</a>、<a href="#ELSEIF" class="xref">ELSEIF</a>、<a href="#THEN" class="xref">THEN</a> 和 <a href="#END" class="xref">END</a> 一起使用</p><p><code>ELSE</code> 对于 <code>CASE</code> 和 <code>IF</code> 是可选的。在计算中，其中<code>ELSE</code>未指定，如果没有<code>&lt;test&gt;</code> 为 true 时，整体计算将返回 null。</p><p><code>ELSE</code>不需要条件（例如 <code>[Season] = "Winter"</code>）并且可以被认为是 null 处理的一种形式。</p></td></tr></tbody></table>

### ELSEIF

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>[<b>ELSEIF</b> &lt;test2&gt; THEN &lt;then2&gt;]</code></td></tr><tr><td>定义</td><td><code>IF</code> 表达式的一个可选部分，用于指定初始 IF 之外的附加条件。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">IF [Season] = "Summer" THEN 'Sandals' <br><b>ELSEIF</b> [Season] = "Winter" THEN 'Boots' <br><b>ELSEIF</b> [Season] = "Spring" THEN 'Sneakers' <br><b>ELSEIF</b> [Season] = "Autumn" THEN 'Sneakers'<br>ELSE 'Bare feet' <br>END</pre></td></tr><tr><td>说明</td><td><p>与 <a href="#IF" class="xref">IF</a>、<a href="#THEN" class="xref">THEN</a>、 <a href="#ELSE" class="xref">ELSE</a> 和 <a href="#END" class="xref">END</a> 一起使用</p><p><code>ELSEIF</code> 可以被认为是额外的 <code>IF</code> 子句。<code>ELSEIF</code> 是可选的，并且可以重复多次。</p><p>与 <code>ELSE</code> 不同，<code>ELSEIF</code> 需要一个条件（例如 <code>[Season] = "Winter"</code>）。</p></td></tr></tbody></table>

### END

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>定义</td><td>用于结束一个 <code>IF</code> 或 <code>CASE</code> 表达式。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;THEN&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;THEN&nbsp;'Boots' <br>ELSE&nbsp;'Sneakers'&nbsp;<br><b>END</b></pre><p><i>“如果 Season = Summer,，则返回 Sandals。否则，请查看下一个表达式。如果 Season = Winter，则返回 Boots。如果两个表达式都不为 true，则返回 Sneakers。”</i></p><pre>CASE [Season] <br>WHEN 'Summer' THEN 'Sandals' <br>WHEN 'Winter' THEN 'Boots' <br>ELSE 'Sneakers' <br><b>END</b></pre><p><i><i>“看看“Season”字段。如果值为 Summer，则返回 Sandals。如果值为 Winter，则返回 Boots。如果计算中的选项均不匹配“Season”字段中的选项，则返回 Sneakers。”</i></i></p></td></tr><tr><td>说明</td><td><p>与 <a href="#CASE" class="xref">CASE</a>、<a href="#WHEN" class="xref">WHEN</a>、<a href="#IF" class="xref">IF</a>、<a href="#ELSEIF" class="xref">ELSEIF</a>、<a href="#THEN" class="xref">THEN</a> 和 <a href="#ELSE" class="xref">ELSE</a> 一起使用。</p></td></tr></tbody></table>

### IF

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code><b>IF</b> &lt;test1&gt; THEN &lt;then1&gt; <br>[ELSEIF &lt;test2&gt; THEN &lt;then2&gt;...]<br>[ELSE &lt;default&gt;] <br>END</code></td></tr><tr><td>输出</td><td>取决于 <code>&lt;then&gt;</code> 值的数据类型。</td></tr><tr><td>定义</td><td><p>测试一系列表达式，同时为第一个为 true 的 <code>&lt;test&gt;</code> 返回 <code>&lt;then&gt;</code> 值。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;THEN&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;THEN&nbsp;'Boots' <br>ELSE&nbsp;'Sneakers'&nbsp;<br><b>END</b></pre><p><i>“如果 Season = Summer,，则返回 Sandals。否则，请查看下一个表达式。如果 Season = Winter，则返回 Boots。如果两个表达式都不为 true，则返回 Sneakers。”</i></p></td></tr><tr><td>说明</td><td><p>另请参见 <a href="#IF" class="xref">IF</a> 和 <a href="#IIF" class="xref">IIF</a>。</p><p>与 <a href="#ELSEIF" class="xref">ELSEIF</a>、<a href="#THEN" class="xref">THEN</a>、<a href="#ELSE" class="xref">ELSE</a> 和 <a href="#END" class="xref">END</a> 一起使用</p></td></tr></tbody></table>

### IFNULL

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>IFNULL(expr1, expr2)</code></td></tr><tr><td>输出</td><td>取决于 <code>&lt;expr&gt;</code> 值的数据类型。</td></tr><tr><td>定义</td><td><p>如果 <code>&lt;expr1&gt;</code> 不为 null，则返回该表达式，否则返回 <code>&lt;expr2&gt;</code>。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">IFNULL([Assigned Room], "TBD")</pre><p><i>“如果“Assigned Room”（分配的房间）字段不为 null，则返回其值。如果“Assigned Room”（分配的房间）字段为 null，则返回 TBD。”</i></p></td></tr><tr><td>说明</td><td><p>与 <a href="#ISNULL" class="xref">ISNULL</a> 进行比较。<code>IFNULL</code> 始终返回一个值。<code>ISNULL</code> 返回一个布尔值（true 或 false）。</p><p>另请参见 <a href="#ZN" class="xref">ZN</a>。</p></td></tr></tbody></table>

### IIF

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code><b>IIF</b>(&lt;test&gt;, &lt;then&gt;, &lt;else&gt;, [&lt;unknown&gt;])</code></td></tr><tr><td>输出</td><td>取决于表达式中值的数据类型。</td></tr><tr><td>定义</td><td>检查是否满足条件（<code>&lt;test&gt;</code>），并在 test 为 true 时返回 <code>&lt;then&gt;</code>，在 test 为 false 时返回 <code>&lt;else&gt;</code>，如果 test 为 null 则为可选值 <code>&lt;unknown&gt;</code>。如果未指定可选的 unknown，<code>IIF</code> 将返回 null。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">IIF([Season] = 'Summer', 'Sandals', 'Other footwear')</pre><p><i>“如果 Season = Summer,，则返回 Sandals。否则返回 Other footwear”</i></p><pre xml:space="preserve">IIF([Season] = 'Summer', 'Sandals', <br>   IIF('Season' = 'Winter', 'Boots',  'Other footwear')<br>)</pre><p><i>“如果 Season = Summer,，则返回 Sandals。否则，请查看下一个表达式。如果 Season = Winter，则返回 Boots。如果两者均不为 true，则返回 Sneakers。”</i></p><pre xml:space="preserve">IIF('Season' = 'Summer', 'Sandals', <br>   IIF('Season' = 'Winter', 'Boots',  <br>      IIF('Season' = 'Spring', 'Sneakers', 'Other footwear')<br>   )<br>)</pre><p><i>“如果 Season = Summer,，则返回 Sandals。否则，请查看下一个表达式。如果 Season = Winter，则返回 Boots。如果没有一个表达式为 true，则返回 Sneakers。”</i></p></td></tr><tr><td>说明</td><td><p>另请参见 <a href="#IF" class="xref">IF</a> 和 <a href="#CASE" class="xref">CASE</a>。</p><p><code>IIF</code> 没有等同于 <code>ELSEIF</code>（如 <code>IF</code>）或重复 <code>WHEN</code> 子句（如 <code>CASE</code>）的语句。相反，可以通过将 <code>IIF</code> 语句嵌套为 <code>&lt;unknown&gt;</code> 元素来按顺序计算多个测试。返回第一个（最外面的）true。</p><p>也就是说，在下面的计算中，结果将是红色，而不是橙色，因为一旦 A=A 计算为 true，表达式就会停止计算：</p><p><code>IIF('A' = 'A', 'Red', IIF('B' = 'B', 'Orange',  IIF('C' = 'D', 'Yellow', 'Green')))</code></p></td></tr></tbody></table>

### IN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>&lt;expr1&gt; IN &lt;expr2&gt;</code></td></tr><tr><td>输出</td><td>布尔值（True 或 False）</td></tr><tr><td>定义</td><td>如果 <code>&lt;expr1&gt;</code> 中的任何值与 <code>&lt;expr2&gt;</code> 中的任何值匹配，则返回 <code>TRUE</code>。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">SUM([Cost]) IN&nbsp;(1000, 15, 200)</pre><p><i>“Cost 字段的值是 1000、15 还是 200？”</i></p><pre xml:space="preserve">[Field] IN&nbsp;[Set]</pre><p><i>“该字段的值是否存在于集合中？”</i></p></td></tr><tr><td>说明</td><td><p><code>&lt;expr2&gt;</code> 中的值可以是集、文本值列表或合并字段。</p><p>另请参见 <a href="#WHEN" class="xref">WHEN</a>。</p></td></tr></tbody></table>

### ISDATE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ISDATE(string)</code></td></tr><tr><td>输出</td><td>布尔值（True 或 False）</td></tr><tr><td>定义</td><td>如果 <code>&lt;string&gt;</code> 为有效日期，则返回 true。输入表达式必须是字符串（文本）字段。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">ISDATE("2018-09-22")</pre><p><i>“字符串 2018-09-22 是格式正确的日期吗？”</i></p></td></tr><tr><td>说明</td><td><p>什么被视为有效日期取决于对计算求值的系统的<a href="https://help.tableau.com/current/server/zh-cn/lang_intro.htm" target="_blank">区域设置</a>。例如：</p><p>在美国：</p><ul><li><code>ISDATE("2018-09-22") = TRUE</code></li><li><code>ISDATE("2018-22-09") = FALSE</code></li></ul><p>在英国： </p><ul><li><code>ISDATE("2018-09-22") = FALSE</code></li><li><code>ISDATE("2018-22-09") = TRUE</code></li></ul><p></p></td></tr></tbody></table>

### ISNULL

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ISNULL(expression)</code></td></tr><tr><td>输出</td><td>布尔值（True 或 False）</td></tr><tr><td>定义</td><td><p>如果 <code>&lt;expression&gt;</code> 为 NULL（未包含有效数据），则返回 true。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">ISNULL([Assigned Room])</pre><p><i>“Assigned Room（分配的房间）字段是否为 null？”</i></p></td></tr><tr><td>说明</td><td><p>与 <a href="#IFNULL" class="xref">IFNULL</a> 进行比较。<code>IFNULL</code> 始终返回一个值。<code>ISNULL</code> 返回一个布尔值。</p><p>另请参见 <a href="#ZN" class="xref">ZN</a>。</p></td></tr></tbody></table>

### MAX

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAX(expression)</code> 或 <code>MAX(expr1, expr2)</code></td></tr><tr><td>输出</td><td>与参数相同的数据类型，或者，如果参数的任何部分为 null，则为 <code>NULL&nbsp;</code>。</td></tr><tr><td>定义</td><td><p>返回两个参数（必须为相同数据类型）中的最大值。</p><p><code>MAX</code> 也可以聚合形式应用于单个字段。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">MAX(4,7) = 7<br>MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021# <br>MAX([Name]) = "Zander"</pre></td></tr><tr><td>说明</td><td><p><b>对于字符串</b></p><p><code>MAX</code> 通常是按字母顺序排在最后的值。</p><p class="note">对于数据库数据源，<code>MAX</code> 字符串值在数据库为该列定义的排序序列中最高。</p><p><b>对于日期</b></p><p>对于日期，<code>MAX</code> 是最近的日期。如果 <code>MAX</code> 是聚合，结果不会有日期层次结构。如果 <code>MAX</code> 是比较，结果将保留日期层次结构。</p><p><b>作为聚合</b></p><p><code>MAX(expression)</code> 是聚合函数，返回单个聚合结果。这在可视化项中显示为 <code>AGG(expression)</code>。</p><p><b>作为比较</b></p><p><code>MAX(expr1, expr2)</code> 比较这两个值并返回一个行级值。</p><p>另请参见 <code><a href="#MIN" class="xref">MIN</a></code>。</p></td></tr></tbody></table>

### MIN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MIN(expression)</code> 或 <code>MIN(expr1, expr2)</code></td></tr><tr><td>输出</td><td>与参数相同的数据类型，或者，如果参数的任何部分为 null，则为 <code>NULL&nbsp;</code>。</td></tr><tr><td>定义</td><td><p>返回两个参数（必须为相同数据类型）中的最小值。</p><p><code>MIN </code> 也可以聚合形式应用于单个字段。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">MIN(4,7) = 4<br>MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#<br>MIN([Name]) = "Abebi"</pre></td></tr><tr><td>说明</td><td><p><b>对于字符串</b></p><p><code>MIN</code> 通常是按字母顺序排列在前面的值。</p><p class="note">对于数据库数据源，<code>MIN</code> 字符串值在数据库为该列定义的排序序列中最低。</p><p><b>对于日期</b></p><p>对于日期，<code>MIN</code> 是最早的日期。如果 <code>MIN</code> 是聚合，结果不会有日期层次结构。如果 <code>MIN</code> 是比较，结果将保留日期层次结构。</p><p><b>作为聚合</b></p><p><code>MIN(expression)</code> 是聚合函数，返回单个聚合结果。这在可视化项中显示为 <code>AGG(expression)</code>。</p><p><b>作为比较</b></p><p><code>MIN(expr1, expr2)</code> 比较这两个值并返回一个行级值。</p><p>另请参见 <code><a href="#MAX" class="xref">MAX</a></code>。</p></td></tr></tbody></table>

### NOT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>NOT&nbsp;&lt;expression&gt;</code></td></tr><tr><td>输出</td><td>布尔值（True 或 False）</td></tr><tr><td>定义</td><td>对一个表达式执行逻辑非运算。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">IF <b>NOT</b> [Season] = "Summer" <br>THEN 'Don't wear sandals' <br>ELSE&nbsp;'Wear sandals'&nbsp;<br><b>END</b></pre><p><i>“如果 Season 不等于 Summer，则返回 Don't wear sandals。否则，返回 Wear sandals。”</i></p></td></tr><tr><td>说明</td><td><p>通常与 <a href="#IF" class="xref">IF</a> 和 <a href="#IIF" class="xref">IIF</a> 一起使用。另请参见 <a href="#top" class="xref">DATE</a> 和 <a href="#OR" class="xref">或者</a>。</p></td></tr></tbody></table>

### 或者

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>&lt;expr1&gt; OR &lt;expr2&gt;</code></td></tr><tr><td>输出</td><td>布尔值（True 或 False）</td></tr><tr><td>定义</td><td>对两个表达式执行逻辑析取操作。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">IF [Season] = "Spring"&nbsp;<b>OR</b>&nbsp;[Season] = "Fall" <br>THEN&nbsp;"Sneakers" <br>END</pre><p><i>“如果 (Season = Spring) 或 (Season = Fall) 为 true，则返回 Sneakers。”</i></p></td></tr><tr><td>说明</td><td><p>通常与 <a href="#IF" class="xref">IF</a> 和 <a href="#IIF" class="xref">IIF</a> 一起使用。另请参见 <a href="#top" class="xref">DATE</a> 和 <a href="#NOT" class="xref">NOT</a>。</p><p>如果任一表达式为 <code>TRUE</code>，则结果为 <code>TRUE</code>。如果两个表达式都为 <code>FALSE</code>，则结果为 <code>FALSE</code>。如果两个表达式都为 <code>NULL</code>，则结果为 <code>NULL</code>。</p><p>如果所创建的计算中的 <code>OR</code> 将比较结果显示在工作表上，则 Tableau 显示 TRUE 和 FALSE。如果要更改此情况，请使用设置格式对话框中的“设置格式”区域。</p><p class="note"><b>注意</b>：<code>OR</code> 运算符使用<em>短路计算</em>。这表示如果第一个表达式计算为 <code>TRUE</code>，则根本不会计算第二个表达式。如果第二个表达式在第一个表达式为 <code>TRUE</code> 时产生错误，则这可能十分有用，因为在这种情况下从不计算第二个表达式。</p></td></tr></tbody></table>

### THEN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>IF &lt;test1&gt; <b>THEN</b> &lt;then1&gt; 
							<br>[ELSEIF &lt;test2&gt; <b>THEN</b> &lt;then2&gt;...]
							<br>[ELSE &lt;default&gt;] 
						<br>END</code></td></tr><tr><td>定义</td><td><code>IF</code>、<code>ELSEIF</code> 或 <code>CASE</code>表达式的必需部分，用于定义如果特定值或测试为 true 则返回什么结果。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;<b>THEN</b>&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;<b>THEN</b>&nbsp;'Boots' <br>ELSE&nbsp;'Sneakers'&nbsp;<br>END</pre><p><i>“如果 Season = Summer,，则返回 Sandals。否则，请查看下一个表达式。如果 Season = Winter，则返回 Boots。如果两个表达式都不为 true，则返回 Sneakers。”</i></p><pre>CASE [Season] <br>WHEN 'Summer' <b>THEN</b> 'Sandals' <br>WHEN 'Winter' <b>THEN</b> 'Boots' <br>ELSE 'Sneakers' <br>END</pre><p><i><i>“看看“Season”字段。如果值为 Summer，则返回 Sandals。如果值为 Winter，则返回 Boots。如果计算中的选项均不匹配“Season”字段中的选项，则返回 Sneakers。”</i></i></p></td></tr><tr><td>说明</td><td><p>与 <a href="#CASE" class="xref">CASE</a>、<a href="#WHEN" class="xref">WHEN</a>、<a href="#IF" class="xref">IF</a>、<a href="#ELSEIF" class="xref">ELSEIF</a>、<a href="#THEN" class="xref">THEN</a>、<a href="#ELSE" class="xref">ELSE</a> 和 <a href="#END" class="xref">END</a> 一起使用</p></td></tr></tbody></table>

### WHEN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>CASE &lt;expression&gt; 
							<br><b>WHEN</b> &lt;value1&gt; THEN &lt;then1&gt; 
							<br><b>WHEN</b> &lt;value2&gt; THEN &lt;then2&gt; 
							<br>...
						<br>[ELSE &lt;default&gt;]<br>END</code></td></tr><tr><td>定义</td><td><code>CASE</code> 表达式的必需部分。查找第一个与 <code>&lt;expression&gt;</code> 匹配的 <code>&lt;value&gt;</code>，并返回对应的 <code>&lt;then&gt;</code>。</td></tr><tr><td>示例</td><td><pre>CASE [Season] <br><b>WHEN</b> 'Summer' THEN 'Sandals' <br><b>WHEN</b> 'Winter' THEN 'Boots' <br>ELSE 'Sneakers' <br>END</pre><p><i>“看看“Season”字段。如果值为 Summer，则返回 Sandals。如果值为 Winter，则返回 Boots。如果计算中的选项均不匹配“Season”字段中的选项，则返回 Sneakers。”</i></p></td></tr><tr><td>说明</td><td><p>与 <a href="#CASE" class="xref">CASE</a>、<a href="#THEN" class="xref">THEN</a>、<a href="#ELSE" class="xref">ELSE</a> 和 <a href="#END" class="xref">END</a> 一起使用。</p><p><code>CASE</code> 也支持 <code>WHEN IN</code>构造，例如：</p><pre xml:space="preserve">CASE &lt;expression&gt; <br><b>WHEN IN</b> &lt;set1&gt; THEN &lt;then1&gt; <br><b>WHEN IN</b> &lt;combinedfield&gt; THEN &lt;then2&gt; <br>... <br>ELSE &lt;default&gt; <br>END</pre><p><code>WHEN IN</code> 中的值可以是集、文本值列表或合并字段。另请参见 <a href="#IN" class="xref">IN</a>。</p></td></tr></tbody></table>

### ZN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ZN(expression)</code></td></tr><tr><td>输出</td><td>取决于 <code>&lt;expression&gt;</code> 的数据类型，或者为 0。</td></tr><tr><td>定义</td><td>如果 &lt;expression&gt; 不为 null，则返回该表达式，否则返回零。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">ZN([Test Grade])</pre><p><i>“如果测试成绩不为 null，则返回其值。如果测试成绩为 null，则返回 0。”</i></p></td></tr><tr><td>说明</td><td><p><code>ZN</code> 是 <a href="#IFNULL" class="xref">IFNULL</a> 的特殊情况，其中如果表达式为 null，则替代项始终为 0，而不是在计算中指定。</p><p><code>ZN</code> 在执行额外计算时特别有用，并且 null 将使整个计算为 null。但是，请谨慎将这些结果解释为 null 并不总是与 0 同义，并且可能代表缺失数据。</p><p>另请参见 <a href="#ISNULL" class="xref">ISNULL</a>。</p></td></tr></tbody></table>

聚合函数

### ATTR

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ATTR(expression)</code></td></tr><tr><td>定义</td><td>如果它的所有行都有一个值，则返回该表达式的值。否则返回星号。会忽略 Null 值。</td></tr></tbody></table>

### AVG

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>AVG(expression)</code></td></tr><tr><td>定义</td><td>返回表达式中所有值的平均值。会忽略 Null 值。</td></tr><tr><td>说明</td><td><code>AVG</code> 只能用于数字字段。</td></tr></tbody></table>

### COLLECT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>COLLECT(spatial)</code></td></tr><tr><td>定义</td><td>将参数字段中的值组合在一起的聚合计算。会忽略 Null 值。</td></tr><tr><td>说明</td><td><code>COLLECT</code> 只能用于空间字段。</td></tr></tbody></table>

### CORR

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>CORR(expression1, expression2)</code></td></tr><tr><td>输出</td><td>从 -1 到 1 的数字</td></tr><tr><td>定义</td><td>返回两个表达式的皮尔森相关系数。</td></tr><tr><td>示例</td><td><pre>example</pre></td></tr><tr><td>说明</td><td><p>皮尔森相关系数衡量两个变量之间的线性关系。结果范围为 -1 至 +1（包括 -1 和 +1），其中 1 表示精确的正向线性关系，0 表示方差之间没有线性关系，而 −1 表示精确的反向关系。</p><p>CORR 结果的平方等于线性趋势线模型的 R 平方值。请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/trendlines_add.htm#Terms" target="_blank">“趋势线模型术语”</a>。</p><p><b>与表范围 LOD 表达式一起使用：</b></p><p>您可以使用 CORR，通过<a href="https://help.tableau.com/current/pro/desktop/zh-cn/calculations_calculatedfields_lod.htm#Table" target="_blank">表范围的详细级别表达式</a>来可视化解聚散点图中的相关性。例如：</p><pre>{CORR(Sales, Profit)}</pre><p>借助详细级别表达式，关联将在所有行上运行。如果您使用像 <code>CORR(Sales, Profit)</code>（不带两边的方括号可使其成为详细级别表达式）这样的公式，视图将显示散点图中每个单独的点与其他每个点（未定义）的关联。</p></td></tr><tr><td>数据库限制</td><td><p><code>CORR</code>适用于以下数据源：Tableau 数据提取、Cloudera Hive、EXASolution、Firebird（版本 3.0 及更高版本）、Google BigQuery、Hortonworks Hadoop Hive、IBM PDA (Netezza)、Oracle、PostgreSQL、Presto、SybaseIQ、Teradata、Vertica。</p><p>对于其他数据源，请考虑提取数据或使用 <code>WINDOW_CORR</code>。请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_tablecalculation.htm" target="_blank">“表计算函数”</a>。</p></td></tr></tbody></table>

### COUNT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>COUNT(expression)</code></td></tr><tr><td>定义</td><td>返回项目数。不对 Null 值计数。</td></tr></tbody></table>

### COUNTD

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>COUNTD(expression)</code></td></tr><tr><td>定义</td><td>返回组中不同项目的数量。不对 Null 值计数。</td></tr></tbody></table>

### COVAR

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>COVAR(expression1, expression2)</code></td></tr><tr><td>定义</td><td>返回两个表达式的<i>样本</i>协方差。</td></tr><tr><td>说明</td><td><p>协方差对两个变量的共同变化方式进行量化。正协方差指明两个变量趋向于向同一方向移动，平均来说，即一个变量的较大值趋向于与另一个变量的较大值对应。<i>样本协</i>方差使用非空数据点的数量 n - 1 来规范化协方差计算，而不是使用总体协方差（可用于 <code>COVARP</code> 函数）所使用的 n。当数据是用于估算较大总体的协方差的随机样本时，则样本协方差是合适的选择。</p><p>如果 <code>&lt;expression1&gt;</code> 和 <code>&lt;expression2&gt;</code> 相同（例如， <code>COVAR([profit], [profit])</code>），<code>COVAR</code> 将返回一个值，指明值分布的广泛程度。</p><p><code>COVAR(X, X)</code> 的值等于 <code>VAR(X)</code>的值，也等于 <code>STDEV(X)^2</code> 的值。</p></td></tr><tr><td>数据库限制</td><td><p><code>COVAR</code>适用于以下数据源：Tableau 数据提取、Cloudera Hive、EXASolution、Firebird（版本 3.0 及更高版本）、Google BigQuery、Hortonworks Hadoop Hive、IBM PDA (Netezza)、Oracle、PostgreSQL、Presto、SybaseIQ、Teradata、Vertica。</p><p>对于其他数据源，请考虑提取数据或使用 <code>WINDOW_COVAR</code>。请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_tablecalculation.htm" target="_blank">“表计算函数”</a>。</p></td></tr></tbody></table>

### COVARP

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>COVARP(expression 1, expression2)</code></td></tr><tr><td>定义</td><td>返回两个表达式的<i>总体</i>协方差。</td></tr><tr><td>说明</td><td><p>协方差对两个变量的共同变化方式进行量化。正协方差指明两个变量趋向于向同一方向移动，平均来说，即一个变量的较大值趋向于与另一个变量的较大值对应。<i>总体协方差</i>等于样本协方差除以 (n-1)/n，其中 n 是非空数据点的总数。如果存在可用于所有相关项的数据，则总体协方差是合适的选择，与之相反，在只有随机项子集的情况下，样本协方差（及 <code>COVAR</code> 函数）较为适合。</p><p>如果 <code>&lt;expression1&gt;</code> 和 <code>&lt;expression2&gt;</code> 相同（例如， <code>COVARP([profit], [profit])</code>），<code>COVARP</code> 将返回一个值，指明值分布的广泛程度。注意：<code>COVARP(X, X)</code> 注意：的值等于 <code>VARP(X)</code>的值，也等于 <code>STDEVP(X)^2</code> 的值。</p></td></tr><tr><td>数据库限制</td><td><p><code>COVARP</code> 适用于以下数据源：Tableau 数据提取、Cloudera Hive、EXASolution、Firebird（版本 3.0 及更高版本）、Google BigQuery、Hortonworks Hadoop Hive、IBM PDA (Netezza)、Oracle、PostgreSQL、Presto、SybaseIQ、Teradata、Vertica</p><p>对于其他数据源，请考虑提取数据或使用 <code>WINDOW_COVAR</code>。请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_tablecalculation.htm" target="_blank">“表计算函数”</a>。</p></td></tr></tbody></table>

### MAX

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAX(expression)</code> 或 <code>MAX(expr1, expr2)</code></td></tr><tr><td>输出</td><td>与参数相同的数据类型，或者，如果参数的任何部分为 null，则为 <code>NULL&nbsp;</code>。</td></tr><tr><td>定义</td><td><p>返回两个参数（必须为相同数据类型）中的最大值。</p><p><code>MAX</code> 也可以聚合形式应用于单个字段。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">MAX(4,7) = 7<br>MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021# <br>MAX([Name]) = "Zander"</pre></td></tr><tr><td>说明</td><td><p><b>对于字符串</b></p><p><code>MAX</code> 通常是按字母顺序排在最后的值。</p><p class="note">对于数据库数据源，<code>MAX</code> 字符串值在数据库为该列定义的排序序列中最高。</p><p><b>对于日期</b></p><p>对于日期，<code>MAX</code> 是最近的日期。如果 <code>MAX</code> 是聚合，结果不会有日期层次结构。如果 <code>MAX</code> 是比较，结果将保留日期层次结构。</p><p><b>作为聚合</b></p><p><code>MAX(expression)</code> 是聚合函数，返回单个聚合结果。这在可视化项中显示为 <code>AGG(expression)</code>。</p><p><b>作为比较</b></p><p><code>MAX(expr1, expr2)</code> 比较这两个值并返回一个行级值。</p><p>另请参见 <code><a href="#MIN" class="xref">MIN</a></code>。</p></td></tr></tbody></table>

### MEDIAN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MEDIAN(expression)</code></td></tr><tr><td>定义</td><td>返回表达式在所有记录中的中位数。会忽略 Null 值。</td></tr><tr><td>说明</td><td><code>MEDIAN</code> 只能用于数字字段。</td></tr><tr><td>数据库限制</td><td><p><code>MEDIAN</code> <b>不</b>适用于以下数据源：Access、Amazon Redshift、Cloudera Hadoop、HP Vertica、IBM DB2、IBM PDA (Netezza)、Microsoft SQL Server、MySQL、SAP HANA、Teradata。</p><p>对于其他数据源类型，可以将数据提取到数据提取文件以使用此函数。请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/extracting_data.htm" target="_blank">提取数据</a>。</p></td></tr></tbody></table>

### MIN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MIN(expression)</code> 或 <code>MIN(expr1, expr2)</code></td></tr><tr><td>输出</td><td>与参数相同的数据类型，或者，如果参数的任何部分为 null，则为 <code>NULL&nbsp;</code>。</td></tr><tr><td>定义</td><td><p>返回两个参数（必须为相同数据类型）中的最小值。</p><p><code>MIN </code> 也可以聚合形式应用于单个字段。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">MIN(4,7) = 4<br>MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#<br>MIN([Name]) = "Abebi"</pre></td></tr><tr><td>说明</td><td><p><b>对于字符串</b></p><p><code>MIN</code> 通常是按字母顺序排列在前面的值。</p><p class="note">对于数据库数据源，<code>MIN</code> 字符串值在数据库为该列定义的排序序列中最低。</p><p><b>对于日期</b></p><p>对于日期，<code>MIN</code> 是最早的日期。如果 <code>MIN</code> 是聚合，结果不会有日期层次结构。如果 <code>MIN</code> 是比较，结果将保留日期层次结构。</p><p><b>作为聚合</b></p><p><code>MIN(expression)</code> 是聚合函数，返回单个聚合结果。这在可视化项中显示为 <code>AGG(expression)</code>。</p><p><b>作为比较</b></p><p><code>MIN(expr1, expr2)</code> 比较这两个值并返回一个行级值。</p><p>另请参见 <code><a href="#MAX" class="xref">MAX</a></code>。</p></td></tr></tbody></table>

### PERCENTILE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>PERCENTILE(expression, number)</code></td></tr><tr><td>定义</td><td>从给定表达式返回与指定 <code>&lt;number&gt;</code> 对应的百分位处的值。<code>&lt;number&gt;</code> 必须介于 0 到 1 之间（含 0 和 1），并且必须是数值常量。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">PERCENTILE([Score], 0.9)</pre></td></tr><tr><td>数据库限制</td><td><p>此函数可用于以下数据源：非旧版 Microsoft Excel 和文本文件连接、数据提取和仅数据提取数据源类型（例如 Google Analytics、OData 或 Salesforce）、Sybase IQ 15.1 及更高版本数据源、Oracle 10 及更高版本的数据源、Cloudera Hive 和 Hortonworks Hadoop Hive 数据源、EXASolution 4.2 及更高版本的数据源。</p><p>对于其他数据源类型，可以将数据提取到数据提取文件以使用此函数。请参见<a href="https://help.tableau.com/current/pro/desktop/zh-cn/extracting_data.htm" target="_blank">提取数据</a>。</p></td></tr></tbody></table>

### STDEV

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>STDEV(expression)</code></td></tr><tr><td>定义</td><td>基于群体样本返回给定表达式中所有值的统计标准差。</td></tr></tbody></table>

### STDEVP

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>STDEVP(expression)</code></td></tr><tr><td>定义</td><td>基于有偏差群体返回给定表达式中所有值的统计标准差。</td></tr></tbody></table>

### SUM

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>SUM(expression)</code></td></tr><tr><td>定义</td><td>返回表达式中所有值的总计。会忽略 Null 值。</td></tr><tr><td>说明</td><td><code>SUM</code> 只能用于数字字段。</td></tr></tbody></table>

### VAR

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>VAR(expression)</code></td></tr><tr><td>定义</td><td>基于群体样本返回给定表达式中所有值的统计方差。</td></tr></tbody></table>

### VARP

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>VARP(expression)</code></td></tr><tr><td>定义</td><td>对整个群体返回给定表达式中所有值的统计方差。</td></tr></tbody></table>

用户函数

### FULLNAME( )

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>FULLNAME( )</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td><p>返回当前用户的全名。</p></td></tr><tr><td>示例</td><td><pre>FULLNAME( )</pre><p>此函数返回当前已登录用户的全名，例如“Hamlin Myrer”。</p><pre xml:space="preserve">[Manager] = FULLNAME( )</pre><p>如果经理“Hamlin Myrer”已登录，则仅当视图中的“Manager”字段包含“Dave Hallsten”时，此示例才会返回 TRUE。</p></td></tr><tr><td>说明</td><td><p>此函数检查：</p><ul><li><span class="mc-variable Variables.TabsProductOnline variable">Tableau Cloud</span> 和 <span class="mc-variable Variables.TabsProductServer variable">Tableau Server</span>：已登录用户的全名</li><li><span class="mc-variable Variables.TabsProductDesktop variable">Tableau Desktop</span>：用户的本地或网络全名</li></ul><p><b>用户筛选器</b></p><p>用作筛选器时，计算字段（例如 <code>[Username field] = FULLNAME( )</code>）可用于创建用户筛选器，该筛选器仅显示与登录到服务器的人员相关的数据。</p></td></tr></tbody></table>

### ISFULLNAME

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ISFULLNAME("User Full Name")</code></td></tr><tr><td>输出</td><td>布尔值</td></tr><tr><td>定义</td><td><p>如果当前用户的全名与指定的全名匹配，则返回 <code>TRUE</code>；如果不匹配，则返回 <code>FALSE</code>。</p></td></tr><tr><td>示例</td><td><pre>ISFULLNAME("Hamlin Myrer")</pre></td></tr><tr><td>说明</td><td><p><code>&lt;"User Full Name"&gt;</code> 参数必须是文字字符串，而非字段。</p><p>此函数检查：</p><ul><li><span class="mc-variable Variables.TabsProductOnline variable">Tableau Cloud</span> 和 <span class="mc-variable Variables.TabsProductServer variable">Tableau Server</span>：已登录用户的全名</li><li><span class="mc-variable Variables.TabsProductDesktop variable">Tableau Desktop</span>：用户的本地或网络全名</li></ul></td></tr></tbody></table>

### ISMEMBEROF

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ISMEMBEROF("Group Name")</code></td></tr><tr><td>输出</td><td>布尔值或 null</td></tr><tr><td>定义</td><td><p>如果当前使用 Tableau 的用户是与给定字符串匹配的组的成员，则返回 <code>TRUE</code>，如果他们不是成员，则返回 <code>FALSE</code>，如果他们未登录，则返回 <code>NULL</code>。</p></td></tr><tr><td>示例</td><td><pre>ISMEMBEROF('Superstars')</pre><pre>ISMEMBEROF('domain.lan\Sales')</pre></td></tr><tr><td>说明</td><td><p><code>&lt;"Group Full Name"&gt;</code> 参数必须是文字字符串，而非字段。</p><p>如果用户已登录 <span class="mc-variable Variables.TabsProductOnline variable">Tableau Cloud</span> 或 <span class="mc-variable Variables.TabsProductServer variable">Tableau Server</span>，组成员身份由 Tableau 组确定。如果给定字符串是“All Users”，该函数将返回 TRUE</p><p><code>ISMEMBEROF( )</code> 函数也将接受 Active Directory 域。必须使用组名称在计算中声明 Active Directory 域。</p><p>如果对用户的组成员身份进行更改，则基于组成员身份的数据更改将反映在新会话的工作簿或视图中。现有会话将反映陈旧数据。</p></td></tr></tbody></table>

### ISUSERNAME

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>ISUSERNAME("username")</code></td></tr><tr><td>输出</td><td>布尔值</td></tr><tr><td>定义</td><td>如果当前用户的用户名与指定的用户名匹配，则返回 <code>TRUE</code>；如果不匹配，则返回 <code>FALSE</code>。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">ISUSERNAME("hmyrer")</pre></td></tr><tr><td>说明</td><td><p><code>&lt;"username"&gt;</code> 参数必须是文字字符串，而非字段。</p><p>此函数检查：</p><ul><li><span class="mc-variable Variables.TabsProductOnline variable">Tableau Cloud</span> 和 <span class="mc-variable Variables.TabsProductServer variable">Tableau Server</span>：已登录用户的用户名</li><li><span class="mc-variable Variables.TabsProductDesktop variable">Tableau Desktop</span>：用户的本地或网络用户名</li></ul></td></tr></tbody></table>

### USERDOMAIN( )

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>USERDOMAIN(&nbsp;)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回当前用户的域。</td></tr><tr><td>说明</td><td><p>此函数检查：</p><ul><li><span class="mc-variable Variables.TabsProductOnline variable">Tableau Cloud</span> 和 <span class="mc-variable Variables.TabsProductServer variable">Tableau Server</span>：登录用户的用户域</li><li><span class="mc-variable Variables.TabsProductDesktop variable">Tableau Desktop</span>：如果用户在域上，则为本地域</li></ul></td></tr></tbody></table>

### USERNAME( )

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>USERNAME( )</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回当前用户的用户名。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">USERNAME( )</pre><p>此函数返回已登录用户的用户名，例如“hmyrer”。</p><pre xml:space="preserve">[Manager] = USERNAME( )</pre><p>如果经理“hmyrer”已登录，则仅当视图中的“Manager”字段包含“hmyrern”时，此示例才会返回 TRUE。</p></td></tr><tr><td>说明</td><td><p>此函数检查：</p><ul><li><span class="mc-variable Variables.TabsProductOnline variable">Tableau Cloud</span> 和 <span class="mc-variable Variables.TabsProductServer variable">Tableau Server</span>：已登录用户的用户名</li><li><span class="mc-variable Variables.TabsProductDesktop variable">Tableau Desktop</span>：用户的本地或网络用户名</li></ul><p><b>用户筛选器</b></p><p>用作筛选器时，计算字段（例如 <code>[Username field] = USERNAME( )</code>）可用于创建用户筛选器，该筛选器仅显示与登录到服务器的人员相关的数据。</p></td></tr></tbody></table>

### USERATTRIBUTE

**注意**：使用此函数之前，请参见[用于控制和自定义数据访问的用户属性函数](https://help.tableau.com/v0.0/pro/desktop/zh-cn/functions_functions_user.htm#user_attributes)。有关详细信息，根据您的工作流程，请参见 Embedding API v3 帮助中的[身份验证和嵌入式视图](https://help.tableau.com/current/api/embedding_api/zh-cn/docs/embedding_api_auth.html)、Tableau Cloud [OIDC](https://help.tableau.com/current/online/zh-cn/openid_auth_server_config.htm#user_attributes) 或 [SAML](https://help.tableau.com/current/online/zh-cn/saml_config_site.htm#user_attributes) 主题，或者 Tableau Server [OIDC](https://help.tableau.com/current/server/zh-cn/openid_auth_requirements.htm#user_attributes) 或 [SAML](https://help.tableau.com/current/server/zh-cn/config_saml.htm#user_attributes) 主题。

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>USERATTRIBUTE('attribute_name')</code></td></tr><tr><td>输出</td><td>字符串或 null</td></tr><tr><td>定义</td><td><p>如果 <code>&lt;'attribute_name'&gt;</code> 是传递给 Tableau 的 JWT（通过已连接应用、UAT、OIDC 声明）或 SAML XML 响应的一部分，计算返回 <code>&lt;'attribute_name'&gt;</code> 的第一个值。</p><p>如果 <code>&lt;'attribute_name'&gt;</code> 不存在，则返回 null。</p></td></tr><tr><td>示例</td><td><p>假设“Region”（区域）是 JWT 或 SAML 响应中包含并传递给 Tableau 的用户属性。</p><p>作为工作簿作者，您可以将可视化项设置为根据指定区域筛选数据。在该筛选器中，您可以引用以下计算。</p><pre xml:space="preserve">[Region] = USERATTRIBUTE("Region")</pre><p>当来自西部地区的 User2 查看嵌入式可视化项时，Tableau 仅显示西部地区的相应数据。</p></td></tr><tr><td>说明</td><td>如果期望 <code>&lt;'attribute_name'&gt;</code> 返回多个值，您可以使用 <code>USERATTRIBUTEINCLUDES</code> 函数。</td></tr></tbody></table>

### USERATTRIBUTEINCLUDES

**注意**：使用此函数之前，请参见[用于控制和自定义数据访问的用户属性函数](https://help.tableau.com/v0.0/pro/desktop/zh-cn/functions_functions_user.htm#user_attributes)。有关详细信息，根据您的工作流程，请参见 Embedding API v3 帮助中的[身份验证和嵌入式视图](https://help.tableau.com/current/api/embedding_api/zh-cn/docs/embedding_api_auth.html)、Tableau Cloud [OIDC](https://help.tableau.com/current/online/zh-cn/openid_auth_server_config.htm#user_attributes) 或 [SAML](https://help.tableau.com/current/online/zh-cn/saml_config_site.htm#user_attributes) 主题，或者 Tableau Server [OIDC](https://help.tableau.com/current/server/zh-cn/openid_auth_requirements.htm#user_attributes) 或 [SAML](https://help.tableau.com/current/server/zh-cn/config_saml.htm#user_attributes) 主题。

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>USERATTRIBUTEINCLUDES('attribute_name', 'expected_value')</code></td></tr><tr><td>输出</td><td>布尔值</td></tr><tr><td>定义</td><td><p>如果以下两个条件都成立，则返回 <code>TRUE</code>：</p><ul><li><code>&lt;'attribute_name'&gt;</code> 是传递给 Tableau 的 JWT（通过已连接应用、UAT、OIDC 声明）或 SAML XML 响应的一部分</li><li><code>&lt;'attribute_name'&gt;</code> 值之一等于 <code>&lt;'expected_value'&gt;</code>。</li></ul><p>否则返回 <code>FALSE</code>。</p></td></tr><tr><td>示例</td><td><p>假设“Region”（区域）是 JWT 或 SAML 响应中包含并传递给 Tableau 的用户属性。</p><p>作为工作簿作者，您可以将可视化项设置为根据指定区域筛选数据。在该筛选器中，您可以引用以下计算。</p><pre xml:space="preserve">USERATTRIBUTEINCLUDES('Region', [Region])</pre><p>如果来自西部地区的 User2 访问嵌入式可视化项，Tableau 会检查“Region”（区域）用户属性是否与“[Region]”（区域）字段值之一匹配。如果为 true，可视化项将显示适当的数据。</p><p>当来自北部地区的另一位 User3 访问相同的可视化项时，她无法看到任何数据，因为没有与“[Region]”（区域）字段值匹配的项。</p></td></tr></tbody></table>

表计算

### FIRST( )

* * *

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

![表计算 FIRST。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_first.png)

#### 示例

当前行索引为 3 时，`FIRST() = -2`。

### INDEX( )

* * *

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

![表计算 INDEX。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_index.png)

#### 示例

对于分区中的第三行，`INDEX() = 3`。

### LAST( )

* * *

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

![表计算 LAST。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_last.png)

#### 示例

当前行索引为 3（共 7 行）时，`LAST() = 4`。

### LOOKUP(expression, \[offset\])

* * *

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

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

![表计算 LOOKUP。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_lookup.png)

#### 示例

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

### MODEL\_EXTENSION 函数

模型扩展程序函数：

- MODEL\_EXTENSION\_BOOL
- MODEL\_EXTENSION\_INT
- MODEL\_EXTENSION\_REAL
- MODEL\_EXTENSION\_STRING

用于将数据传递到外部服务（例如 R、TabPy 或 Matlab）上部署的模型。请参见[分析扩展程序](https://help.tableau.com/current/pro/desktop/zh-cn/r_connection_manage.htm)。

### MODEL\_PERCENTILE(target\_expression, predictor\_expression(s))

* * *

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

此函数是 MODEL\_QUANTILEL 的逆函数。有关预测建模函数的信息，请参见[预测建模函数在 Tableau 中的工作方式](https://help.tableau.com/v0.0/pro/desktop/zh-cn/predictions_overview.htm)。

#### 示例

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

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

### MODEL\_QUANTILE(quantile, target\_expression, predictor\_expression(s))

* * *

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

此函数是 MODEL\_PERCENTILE 的逆函数。有关预测建模函数的信息，请参见[预测建模函数在 Tableau 中的工作方式](https://help.tableau.com/v0.0/pro/desktop/zh-cn/predictions_overview.htm)。

#### 示例

以下公式返回中位数 (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。它们不进行编号，且不计入百分位排名计算的总记录数中。

有关不同排名选项的信息，请参见[排名计算](https://help.tableau.com/v0.0/pro/desktop/zh-cn/calculations_tablecalculations_definebasic_runningtotal.htm#Rank)。

#### 示例

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

![使用不同排名方法对学生年龄排名进行对比的表格。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/rank_compare.png)

### RANK\_DENSE(expression, \['asc' | 'desc'\])

* * *

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

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

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

有关不同排名选项的信息，请参见[排名计算](https://help.tableau.com/v0.0/pro/desktop/zh-cn/calculations_tablecalculations_definebasic_runningtotal.htm#Rank)。

### RANK\_MODIFIED(expression, \['asc' | 'desc'\])

* * *

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

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

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

有关不同排名选项的信息，请参见[排名计算](https://help.tableau.com/v0.0/pro/desktop/zh-cn/calculations_tablecalculations_definebasic_runningtotal.htm#Rank)。

### RANK\_PERCENTILE(expression, \['asc' | 'desc'\])

* * *

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

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

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

有关不同排名选项的信息，请参见[排名计算](https://help.tableau.com/v0.0/pro/desktop/zh-cn/calculations_tablecalculations_definebasic_runningtotal.htm#Rank)。

### RANK\_UNIQUE(expression, \['asc' | 'desc'\])

* * *

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

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

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

有关不同排名选项的信息，请参见[排名计算](https://help.tableau.com/v0.0/pro/desktop/zh-cn/calculations_tablecalculations_definebasic_runningtotal.htm#Rank)。

### RUNNING\_AVG(expression)

* * *

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

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

![具有运行平均值的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_runningavg.png)

#### 示例

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

### RUNNING\_COUNT(expression)

* * *

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

#### 示例

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

### RUNNING\_MAX(expression)

* * *

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

![具有运行最大值的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_runningmax.png)

#### 示例

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

### RUNNING\_MIN(expression)

* * *

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

![具有运行最小值的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_runningmin.png)

#### 示例

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

### RUNNING\_SUM(expression)

* * *

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

![具有运行总和的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_runningsum.png)

#### 示例

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

### SIZE()

* * *

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

![表计算 SIZE。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_size.png)

#### 示例

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

### SCRIPT\_ 函数

脚本函数：

- SCRIPT\_BOOL
- SCRIPT\_INT
- SCRIPT\_REAL
- SCRIPT\_STRING

用于将数据传递到外部服务，例如 R、TabPy 或 Matlab。请参见[分析扩展程序](https://help.tableau.com/current/pro/desktop/zh-cn/r_connection_manage.htm)。

### TOTAL(expression)

* * *

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

#### 示例

假定您从此视图开始：

![表计算 TOTAL。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_total.png)

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

![销售总额的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_total2.png)

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

![已添加到可视化项的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_total3.png)

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

![销售总额的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_total4.png)

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

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

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

![已添加到可视化项中并显示在“标记”卡上的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_total5.png)

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

![已添加到可视化项中并显示在“标记”卡上的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_total6.png)

### TOTAL(expression)

* * *

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

#### 示例

假定您从此视图开始：

![表计算 TOTAL。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_total.png)

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

![销售总额的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_total2.png)

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

![已添加到可视化项的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_total3.png)

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

![销售总额的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_total4.png)

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

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

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

![已添加到可视化项中并显示在“标记”卡上的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_total5.png)

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

![已添加到可视化项中并显示在“标记”卡上的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_total6.png)

### WINDOW\_AVG(expression, \[start, end\])

* * *

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

有一个等效的聚合函数：AVG。请参见[Tableau 函数（按字母顺序）](https://help.tableau.com/v0.0/pro/desktop/zh-cn/functions_all_alphabetical.htm)。

#### 示例

以下公式返回 **SUM(Profit)** 从前两行到当前行的窗口平均值。

`WINDOW_AVG(SUM[Profit]), -2, 0)`

### WINDOW\_CORR(expression1, expression2, \[start, end\])

* * *

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

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

有一个等效的聚合函数：CORR。请参阅 [Tableau 函数（按字母顺序）](https://help.tableau.com/v0.0/pro/desktop/zh-cn/functions_all_alphabetical.htm)。

#### 示例

以下公式返回 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 函数（按字母顺序）](https://help.tableau.com/v0.0/pro/desktop/zh-cn/functions_all_alphabetical.htm)。

#### 示例

以下公式返回 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 函数（按字母顺序）](https://help.tableau.com/v0.0/pro/desktop/zh-cn/functions_all_alphabetical.htm)。

#### 示例

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

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

### WINDOW\_MEDIAN(expression, \[start, end\])

* * *

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

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

![具有窗口中值运算符的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_windowmedian.png)

#### 示例

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

### WINDOW\_MAX(expression, \[start, end\])

* * *

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

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

![具有窗口最大值运算符的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_windowmax.png)

#### 示例

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

### WINDOW\_MIN(expression, \[start, end\])

* * *

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

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

![具有窗口最小值运算符的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_windowmin.png)

#### 示例

`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 分区中计算的窗口总计返回所有季度的销售额总计。

![具有窗口总计运算符的表计算。](/tableau/next/zh-cn/pro/desktop/zh-cn/Img/tablecalc_windowsum.png)

#### 示例

`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 不解释该表达式，所以您必须在必要时定义聚合。当您需要传递聚合表达式时，可以使用函数的 `RAWSQLAGG` 版本。

RAWSQL 直通函数可能不适用于联合数据源（跨不同数据库合并）或已发布数据源。

## RAWSQL 语法

RAWSQL 函数有两种类型：解聚和聚合。这是在函数名称的第一部分中指定的：_RAWSQL_ 或 _RAWSQLAGG_。函数名称的最后一部分是输出类型，例如 _BOOL_、_STR_ 或 _INT_。在所有 RAWSQL 函数中，参数都为 `"sql_expr", [arg1], ...[arg2]`。编写函数时，可以使用替换语法 `%n` 插入正确的字段名称或表达式。

### %n 替换语法

您的数据库通常不会理解在 Tableau 中显示的字段名称。因为 Tableau 不会解释直通函数中的 SQL 表达式，所以在表达式中使用 Tableau 字段名称可能会导致错误。使用 `%n` 将用于 Tableau 计算的正确字段名称或表达式插入直通 SQL。

例如，假设您有一个计算一组中值的函数，则可以对 Tableau 列 \[Sales\] 调用该函数，如下所示：

RAWSQLAGG\_REAL("MEDIAN(%1)", \[Sales\])

- `REALSQLAGG`：因为您想要指定聚合。
- `REAL`：因为输出是数字，不一定是整数。
- `MEDIAN` 是聚合。
- `%1` 是 `[Sales]` 的占位符。

## RAWSQL 函数

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

Tableau 中提供了以下 RAWSQL 函数：

### RAWSQL\_BOOL

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQL_BOOL("sql_expr", [arg1], …[argN])</code></td></tr><tr><td>输出</td><td>布尔值</td></tr><tr><td>定义</td><td>从给定 SQL 表达式返回布尔结果。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RAWSQL_BOOL("%1 &gt; %2", [Sales], [Profit])</pre><p>在示例中，%1 等于 [Sales]，%2 等于 [Profit]。</p></td></tr></tbody></table>

### RAWSQLAGG\_BOOL

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQLAGG_BOOL("sql_expr", [arg1], …[argN])</code></td></tr><tr><td>输出</td><td>布尔值</td></tr><tr><td>定义</td><td>从给定聚合 SQL 表达式返回布尔结果。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RAWSQLAGG_BOOL("SUM( %1) &gt;SUM( %2)", [Sales], [Profit]) </pre><p>在示例中，%1 等于 [Sales]，%2 等于 [Profit]。</p></td></tr></tbody></table>

### RAWSQL\_DATE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQL_DATE("sql_expr", [arg1], …[argN])</code></td></tr><tr><td>输出</td><td>日期</td></tr><tr><td>定义</td><td>从给定 SQL 表达式返回日期结果。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RAWSQL_DATE("%1", [Order Date])</pre><p>在下例中，%1 等于 [Order Date]。</p></td></tr></tbody></table>

### RAWSQLAGG\_DATE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQLAGG_DATE("sql_expr", [arg1], …[argN])</code></td></tr><tr><td>输出</td><td>日期</td></tr><tr><td>定义</td><td>从给定聚合 SQL 表达式返回日期结果</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RAWSQLAGG_DATE("MAX(%1)", [Order Date])</pre><p>在下例中，%1 等于 [Order Date]。</p></td></tr></tbody></table>

### RAWSQL\_DATETIME

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQL_DATETIME("sql_expr", [arg1], …[argN])</code></td></tr><tr><td>输出</td><td>日期时间</td></tr><tr><td>定义</td><td>从给定 SQL 表达式返回日期时间结果。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RAWSQL_DATETIME("%1", [Order Date])</pre><p>在下例中，%1 等于 [Order Date]。</p></td></tr></tbody></table>

### RAWSQLAGG\_DATETIME

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQLAGG_DATETIME("sql_expr", [arg1], …[argN])</code></td></tr><tr><td>输出</td><td>日期时间</td></tr><tr><td>定义</td><td>从给定聚合 SQL 表达式返回日期时间结果。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RAWSQLAGG_DATETIME("MIN(%1)", [Order Date])</pre><p>在下例中，%1 等于 [Order Date]。</p></td></tr></tbody></table>

### RAWSQL\_INT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQL_INT("sql_expr", [arg1], …[argN])</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>从给定 SQL 表达式返回整数结果。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RAWSQL_INT("500 + %1", [Sales])</pre><p>在下例中，%1 等于 [Sales]。</p></td></tr></tbody></table>

### RAWSQLAGG\_INT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQLAGG_INT("sql_expr", [arg1,] …[argN])</code></td></tr><tr><td>输出</td><td>整数</td></tr><tr><td>定义</td><td>从给定聚合 SQL 表达式返回整数结果。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RAWSQLAGG_INT("500 + SUM(%1)", [Sales])</pre><p>在下例中，%1 等于 [Sales]。</p></td></tr></tbody></table>

### RAWSQL\_REAL

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQL_REAL("sql_expr", [arg1], …[argN])</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>从给定 SQL 表达式返回数字结果。</td></tr><tr><td>示例</td><td><pre>RAWSQL_REAL("-123.98 * %1", [Sales])</pre><p>在下例中，%1 等于 [Sales]</p></td></tr></tbody></table>

### RAWSQLAGG\_REAL

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQLAGG_REAL("sql_expr", [arg1,] …[argN])</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>从给定聚合 SQL 表达式返回数字结果。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RAWSQLAGG_REAL("SUM( %1)", [Sales])</pre><p>在下例中，%1 等于 [Sales]。</p></td></tr></tbody></table>

### RAWSQL\_SPATIAL

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQL_SPATIAL("sql_expr", [arg1], …[argN])</code></td></tr><tr><td>输出</td><td>空间</td></tr><tr><td>定义</td><td>从给定 SQL 表达式返回空间结果。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RAWSQL_SPATIAL("%1", [Geometry])</pre><p>在本例中，%1 等于 [Geometry]。</p></td></tr><tr><td>注意</td><td>此函数没有 <code>RAWSQLAGG</code> 版本。</td></tr></tbody></table>

### RAWSQL\_STR

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQL_STR("sql_expr", [arg1], …[argN])</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>从给定 SQL 表达式返回字符串。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RAWSQL_STR("%1", [Customer Name])</pre><p>在下例中，%1 等于 [Customer Name]。</p></td></tr></tbody></table>

### RAWSQLAGG\_STR

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>RAWSQLAGG_STR("sql_expr", [arg1,] …[argN])</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>从给定聚合 SQL 表达式返回字符串。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">RAWSQLAGG_STR("AVG(%1)", [Discount])</pre><p>在此示例中，%1 等于 [Discount]。</p></td></tr></tbody></table>

空间函数

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

### AREA

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>AREA(Spatial Polygon, 'units')</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>返回 <code>&lt;spatial polygon&gt;</code> 的总表面积。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">AREA([Geometry], 'feet')</pre></td></tr><tr><td>说明</td><td><p>支持的单位名称（计算时必须用引号括起来，例如<code>'miles'</code>）：</p><ul><li><i>米</i>：meters、metres、m</li><li><i>公里</i>：kilometers、kilometres、km</li><li><i>英里</i>：miles、mi</li><li><i>英尺</i>：feet、ft</li></ul><p></p></td></tr></tbody></table>

### BUFFER

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>BUFFER(Spatial point, distance, 'units')</code><p><code>BUFFER(Spatial linestring, distance, 'units')</code></p><p><code>BUFFER(Spatial polygon, distance, 'units')</code></p><ul><li><i>米</i>：meters、metres、m</li><li><i>公里</i>：kilometers、kilometres、km</li><li><i>英里</i>：miles、mi</li><li><i>英尺</i>：feet、ft</li></ul></td></tr><tr><td>输出</td><td>几何图形</td></tr><tr><td>定义</td><td><p>对于空间点，返回以 <code>&lt;spatial point&gt;</code> 为中心的多边形形状，半径由 <code>&lt;distance&gt;</code> 和 <code>&lt;unit&gt;</code> 值确定。</p><p>对于线串，计算通过包含距线串的半径距离内的所有点而形成的多边形。</p><p>对于多边形，计算作为每个给定多边形的内边（负距离）或外边（正距离）的多边形。</p></td></tr><tr><td>示例</td><td><pre xml:space="preserve">BUFFER([Spatial Point Geometry], 25, 'mi')</pre><pre xml:space="preserve">BUFFER(MAKEPOINT(47.59, -122.32), 3, 'km')</pre><pre xml:space="preserve">BUFFER(MAKELINE(MAKEPOINT(0, 20),MAKEPOINT (30, 30)),20,'km'))</pre></td></tr><tr><td>说明</td><td><p>支持的单位名称（计算时必须用引号括起来，例如<code>'miles'</code>）：</p><ul><li><i>米</i>：meters、metres、m</li><li><i>公里</i>：kilometers、kilometres、km</li><li><i>英里</i>：miles、mi</li><li><i>英尺</i>：feet、ft</li></ul></td></tr></tbody></table>

### DIFFERENCE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DIFFERENCE(Spatial, Spatial)</code></td></tr><tr><td>输出</td><td>空间多边形</td></tr><tr><td>定义</td><td>当第二个参数中的所有区域都是从第一个参数中重叠的区域划分出来时，计算剩余区域的部分。丢弃第二个参数中不重叠的区域。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">DIFFERENCE(Spatial Polygon1, Spatial Polygon2)</pre></td></tr><tr><td>说明</td><td><p>支持空间多边形和多重多边形，不支持空间点或线。</p></td></tr></tbody></table>

### DISTANCE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>DISTANCE(SpatialPoint1, SpatialPoint2, 'units')</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>以指定 <code>&lt;unit&gt;</code> 返回两点之间的距离测量值。</td></tr><tr><td>示例</td><td><pre>DISTANCE([Origin Point],[Destination Point], 'km')</pre></td></tr><tr><td>说明</td><td><p>支持的单位名称（计算时必须用引号括起来，例如<code>'miles'</code>）：</p><ul><li><i>米</i>：meters、metres、m</li><li><i>公里</i>：kilometers、kilometres、km</li><li><i>英里</i>：miles、mi</li><li><i>英尺</i>：feet、ft</li></ul></td></tr><tr><td>数据库限制</td><td>此函数只能使用实时连接创建，但在将数据源转换为数据提取的情况下将继续工作。</td></tr></tbody></table>

### INTERSECTION

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>INTERSECTION (spatial, spatial)</code></td></tr><tr><td>输出</td><td>多边形</td></tr><tr><td>定义</td><td>计算并返回第二个参数中与第一个参数中区域重叠的区域部分。</td></tr><tr><td>示例</td><td><tt>INTERSECTION (Spatial Polygon1, Spatial Polygon2)</tt></td></tr><tr><td>说明</td><td>支持空间多边形和多重多边形，不支持空间点或线。</td></tr></tbody></table>

### INTERSECTS

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>INTERSECTS (geometry1, geometry2)</code></td></tr><tr><td>输出</td><td>布尔值</td></tr><tr><td>定义</td><td>返回 true 或 false，指示两个几何图形是否在空间中重叠。</td></tr><tr><td>说明</td><td>支持的组合：点/多边形、线/多边形和多边形/多边形。</td></tr></tbody></table>

### LENGTH

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>LENGTH(geometry, 'units')</code></td></tr><tr><td>输出</td><td>数字</td></tr><tr><td>定义</td><td>使用给定的 <code>&lt;units&gt;</code> 返回 <code>&lt;geometry&gt;</code> 中的一个或多个线串的大地路径长度。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">LENGTH([Spatial], 'metres')</pre></td></tr><tr><td>说明</td><td>如果 geometry 参数没有线串，则结果为 <code>&lt;NaN&gt;</code>，但允许使用其他元素。</td></tr></tbody></table>

### MAKELINE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAKELINE(SpatialPoint1, SpatialPoint2)</code></td></tr><tr><td>输出</td><td>几何图形（线）</td></tr><tr><td>定义</td><td>在两点之间生成线标记</td></tr><tr><td>示例</td><td><pre>MAKELINE(MAKEPOINT(47.59, -122.32), MAKEPOINT(48.5, -123.1))</pre></td></tr><tr><td>说明</td><td>对于构建出发地-目的地地图很有用。</td></tr></tbody></table>

### MAKEPOINT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>MAKEPOINT(latitude, longitude, [SRID])</code></td></tr><tr><td>输出</td><td>几何图形（点）</td></tr><tr><td>定义</td><td><p>将数据从 <code>&lt;latitude&gt;</code> 和 <code>&lt;longitude&gt;</code> 列转换为空间对象。</p><p>如果添加了可选的 <code>&lt;SRID&gt;</code> 参数，输入可以是其他投影地理坐标。</p></td></tr><tr><td>示例</td><td><pre>MAKEPOINT(48.5, -123.1)</pre><pre xml:space="preserve">MAKEPOINT([AirportLatitude], [AirportLongitude])</pre><pre xml:space="preserve">MAKEPOINT([Xcoord],[Ycoord], 3493)</pre></td></tr><tr><td>说明</td><td><p><code>MAKEPOINT</code> 无法使用自动生成的纬度和经度字段。数据源必须包含本机坐标。</p><p><code>SRID</code> 是一种空间参考标识符，它使用 <a href="https://epsg.io/" target="_blank">ESPG 参考系代码</a>来指定坐标系。如果未指定 <code>SRID</code>，则假设使用 WGS84，并将参数视为以度数为单位的纬度/经度。</p><p>您可以使用 <code>MAKEPOINT</code> 使数据源具备空间特性，以便可以使用空间联接将其与空间文件联接。有关详细信息，请参见<a href="https://help.tableau.com/v0.0/pro/desktop/zh-cn/maps_spatial_join.htm" class="xref">在 Tableau 中联接空间文件</a>。</p></td></tr></tbody></table>

### NO\_CUTOUTS

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>NO_CUTOUTS (spatial)</code></td></tr><tr><td>输出</td><td>校正后的空间多边形</td></tr><tr><td>定义</td><td>若平面地球解释需要多边形反转，则返回校正后的空间多边形；否则，返回原始多边形。</td></tr><tr><td>说明</td><td><p>像 Keyhole 标记语言 (.kml) 这样的空间文件格式要求多边形边界遵循特定的坐标方向。如果数据集反向绘制边界，Tableau 会将外部空间解释为形状。<code>NO_CUTOUTS</code> 重新排序这些坐标以恢复正确的布局。</p></td></tr></tbody></table>

### OUTLINE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>OUTLINE(spatial polygon)</code></td></tr><tr><td>输出</td><td>几何图形</td></tr><tr><td>定义</td><td>将多边形几何图形转换为线串。</td></tr><tr><td>说明</td><td><p>对于为轮廓创建单独的图层很有用，该图层的样式可以与填充不同。</p><p>支持多边形内的多边形。</p></td></tr></tbody></table>

### PARSE\_WKT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>PARSE_WKT (String)</code></td></tr><tr><td>输出</td><td>空间（地理）</td></tr><tr><td>定义</td><td>将包含地理实体（例如点、线串或面）的已知文本 (WKT) 表示形式的文本字符串字段转换为空间值。</td></tr><tr><td>说明</td><td><p>假定坐标使用 WGS-84 纬度和经度。有关 WKT 的详细信息，请参见<a href="https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry">众所周知的几何文本表示形式</a>。</p></td></tr></tbody></table>

### SHAPETYPE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>SHAPETYPE(geometry)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回描述空间 <code>&lt;geometry&gt;</code> 结构的字符串，例如 Empty、Point、MultiPoint、LineString、MultiLinestring、Polygon、MultiPolygon、Mixed 和 unsupported。</td></tr><tr><td>示例</td><td><pre xml:space="preserve">SHAPETYPE(MAKEPOINT(48.5, -123.1)) = "Point"</pre></td></tr></tbody></table>

### SYMDIFFERENCE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>SYMDIFFERENCE(spatial, spatial)</code></td></tr><tr><td>输出</td><td>几何图形</td></tr><tr><td>定义</td><td>计算第二个参数中与第一个参数中的区域重叠的任何部分，并从两者中丢弃。返回两个参数中区域的剩余部分。</td></tr><tr><td>示例</td><td><p><code>SYMDIFFERENCE(Spatial Polygon1, Spatial Polygon2)</code></p></td></tr></tbody></table>

### UNION

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>UNION(spatial 1, [spatial 2])</code></td></tr><tr><td>输出</td><td>几何图形</td></tr><tr><td>定义</td><td>通过将相邻或重叠边界融合为单个空间几何图形来合并空间几何图形。</td></tr><tr><td>说明</td><td><p>当使用一个参数 (<code>UNION(spatial)</code>) 时，<code>UNION </code>将充当聚合函数，跨行合并字段中的所有空间对象。</p><p>当与两个参数 (<code>UNION(spatial1, spatial2)</code>) 一起使用时，<code>UNION </code>会合并两个不同的空间字段或几何图形。</p><p>对于点和线串，<code>UNION </code>将所有元素合并到一个集合中。对于多边形，重叠或接触的形状会融合为单个多边形或多个多边形。</p></td></tr></tbody></table>

### VALIDATE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>VALIDATE(spatial geometry)</code></td></tr><tr><td>输出</td><td>几何图形</td></tr><tr><td>定义</td><td>确认空间值中几何图形的拓扑正确性。如果由于诸如面的周长与自身相交等问题而导致该值无法用于分析，则结果将为 null。如果几何图形正确，结果将是原始几何图形。</td></tr><tr><td>示例</td><td><p><code>UNION(VALIDATE([Geometry]))</code></p></td></tr></tbody></table>

其他函数

另请参见：[直通函数 (RAWSQL)](https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_passthrough.htm)。

## 正则表达式 

有关正则表达式语法的信息，请参见数据源的文档。对于 Tableau 数据提取，正则表达式语法遵守 ICU（Unicode 国际化组件）的标准，ICU 是用于 Unicode 支持、软件国际化和软件全球化的成熟 C/C++ 和 Java 库开源项目。请参见在线 ICU 用户指南中的[正则表达式](http://userguide.icu-project.org/strings/regexp)页面。

### REGEXP\_REPLACE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>REGEXP_REPLACE(string, pattern, replacement)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回给定字符串的副本，其中正则表达式模式被替换字符串取代。</td></tr><tr><td>示例</td><td><pre>REGEXP_REPLACE('abc 123', '\s', '-') = 'abc-123'</pre></td></tr><tr><td>说明</td><td><p>此函数可用于文本文件、Hadoop Hive、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata（版本 14.1 及更高版本）、Snowflake 和 Oracle 数据源。</p><p>对于 Tableau 数据提取，模式和替换字符串必须为常量。</p></td></tr></tbody></table>

### REGEXP\_MATCH

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>REGEXP_MATCH(string, pattern)</code></td></tr><tr><td>输出</td><td>布尔值</td></tr><tr><td>定义</td><td>如果指定的字符串的子字符串匹配正则表达式模式，则返回 true。</td></tr><tr><td>示例</td><td><pre>REGEXP_MATCH('-([1234].[The.Market])-','\[\s*(\w*\.)(\w*\s*\])')=true</pre></td></tr><tr><td>说明</td><td><p>此函数可用于文本文件、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata（版本 14.1 及更高版本）、Impala 2.3.0（通过 Cloudera Hadoop 数据源）、Snowflake 和 Oracle 数据源。</p><p>对于 Tableau 数据提取，模式必须为常量。</p></td></tr></tbody></table>

### REGEXP\_EXTRACT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>REGEXP_EXTRACT(string, pattern)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回与正则表达式模式匹配的字符串部分。</td></tr><tr><td>示例</td><td><pre>REGEXP_EXTRACT('abc 123', '[a-z]+\s+(\d+)') = '123'</pre></td></tr><tr><td>说明</td><td><p>此函数可用于文本文件、Hadoop Hive、Google BigQuery、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata（版本 14.1 及更高版本）、Snowflake 和 Oracle 数据源。</p><p>对于 Tableau 数据提取，模式必须为常量。</p></td></tr></tbody></table>

### REGEXP\_EXTRACT\_NTH

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>语法</td><td><code>REGEXP_EXTRACT_NTH(string, pattern, index)</code></td></tr><tr><td>输出</td><td>字符串</td></tr><tr><td>定义</td><td>返回与正则表达式模式匹配的字符串部分。子字符串匹配到第 n 个捕获组，其中 n 是给定的索引。如果索引为 0，则返回整个字符串。</td></tr><tr><td>示例</td><td><pre>REGEXP_EXTRACT_NTH('abc 123', '([a-z]+)\s+(\d+)', 2) = '123'</pre></td></tr><tr><td>说明</td><td><p>此函数可用于文本文件、PostgreSQL、Tableau 数据提取、Microsoft Excel、Salesforce、Vertica、Pivotal Greenplum、Teradata（版本 14.1 及更高版本）和 Oracle 数据源。</p><p>对于 Tableau 数据提取，模式必须为常量。</p></td></tr></tbody></table>

## 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'`

  
  

## 想要了解函数的更多信息？

请阅读[函数主题](https://help.tableau.com/v0.0/pro/desktop/zh-cn/functions.htm)。

## 另请参见

[Tableau 函数（按字母顺序）](https://help.tableau.com/v0.0/pro/desktop/zh-cn/functions_all_alphabetical.htm)