> ## Documentation Index
> Fetch the complete documentation index at: https://help.teable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 函数速查表

> 用于快速查找公式函数、参数、输出类型和基础用法。

函数速查表用于快速查找可用函数、参数、输出类型和示例。编写公式时，可以按函数类别定位需要的函数。

## 数值函数

数值函数用于数学运算、统计计算和数字格式处理。

| 函数名称      | 描述                                  | 输入                        | 输出     | 示例                                                  |
| --------- | ----------------------------------- | ------------------------- | ------ | --------------------------------------------------- |
| SUM       | 将数字加在一起。相当于 number1 + number2 + ... | `number1, [number2, ...]` | Number | `SUM(100, 200, 300) => 600`                         |
| AVERAGE   | 返回数字的平均值。                           | `number1, [number2, ...]` | Number | `AVERAGE(100, 200, 300) => 200`                     |
| MAX       | 返回给定数字中的最大值。                        | `number1, [number2, ...]` | Number | `MAX(100, 200, 300) => 300`                         |
| MIN       | 返回给定数字中的最小值。                        | `number1, [number2, ...]` | Number | `MIN(100, 200, 300) => 100`                         |
| ROUND     | 按 `precision` 指定的小数位数四舍五入。          | `value, [precision]`      | Number | `ROUND(1.99, 0) => 2` `ROUND(16.8, -1) => 20`       |
| ROUNDUP   | 总是向上四舍五入，即远离零。                      | `value, [precision]`      | Number | `ROUNDUP(1.1, 0) => 2` `ROUNDUP(-1.1, 0) => -2`     |
| ROUNDDOWN | 总是向下四舍五入，即朝向零。                      | `value, [precision]`      | Number | `ROUNDDOWN(1.9, 0) => 1` `ROUNDDOWN(-1.9, 0) => -1` |
| CEILING   | 返回大于或等于该值的最接近的整数倍数。                 | `value, [significance]`   | Number | `CEILING(2.49) => 3` `CEILING(2.49, 1) => 2.5`      |
| FLOOR     | 返回小于或等于该值的最接近的整数倍数。                 | `value, [significance]`   | Number | `FLOOR(2.49) => 2` `FLOOR(2.49, 1) => 2.4`          |
| EVEN      | 返回大于或等于指定值的最小偶数。                    | `value`                   | Number | `EVEN(0.1) => 2` `EVEN(-0.1) => -2`                 |
| ODD       | 将正值四舍五入到最接近的奇数，将负值四舍五入到最接近的奇数。      | `value`                   | Number | `ODD(0.1) => 1` `ODD(-0.1) => -1`                   |
| INT       | 返回数值的整数部分，向负无穷取整。                   | `value`                   | Number | `INT(1.9) => 1` `INT(-1.9) => -2`                   |
| ABS       | 返回绝对值。                              | `value`                   | Number | `ABS(-1) => 1`                                      |
| SQRT      | 返回非负数的平方根。                          | `value`                   | Number | `SQRT(4) => 2`                                      |
| POWER     | 计算指定的基数到指定的功率。                      | `value`                   | Number | `POWER(2) => 4`                                     |
| EXP       | 计算欧拉数（e）的指定次幂。                      | `value`                   | Number | `EXP(0) => 1` `EXP(1) => 2.718`                     |
| LOG       | 按指定基数计算值的对数。如果未指定，基数默认为 10。         | `value, [base=10]`        | Number | `LOG(100) => 2` `LOG(1024, 2) => 10`                |
| MOD       | 返回将第一个参数除以第二个后的余数。                  | `value, divisor`          | Number | `MOD(9, 2) => 1` `MOD(9, 3) => 0`                   |
| VALUE     | 将文本字符串转换为数字。                        | `text`                    | Number | `VALUE("$1,000,000") => 1000000`                    |

## 文本函数

文本函数用于连接、查找、替换、截取和拆分字符串。

| 函数名称                   | 描述                                                  | 输入                                                 | 输出            | 示例                                                                          |
| ---------------------- | --------------------------------------------------- | -------------------------------------------------- | ------------- | --------------------------------------------------------------------------- |
| CONCATENATE            | 连接多种值类型参数为单一文本值。                                    | `text1, [text2, ...]`                              | Text          | `CONCATENATE("Hello ", "Teable") => Hello Teable`                           |
| FIND                   | 在指定文本中查找子字符串的位置。如果未找到子字符串，则结果为 0。                   | `stringToFind, whereToSearch, [startFromPosition]` | Number        | `FIND("Teable", "Hello Teable") => 7`                                       |
| SEARCH                 | 在指定文本中查找子字符串的位置。与 `FIND` 类似，但未找到子字符串时返回空值。          | `stringToFind, whereToSearch, [startFromPosition]` | Text or Empty | `SEARCH("Teable", "Hello Teable") => 7`                                     |
| MID                    | 提取从指定位置开始的指定数量的子字符串。                                | `text, whereToStart, count`                        | Text          | `MID("Hello Teable", 6, 6) => "Teable"`                                     |
| LEFT                   | 提取字符串开始的指定数量的字符。                                    | `text, count`                                      | Text          | `LEFT("2023-09-06", 4) => "2023"`                                           |
| RIGHT                  | 提取字符串结束的指定数量的字符。                                    | `text, count`                                      | Text          | `RIGHT("2023-09-06", 5) => "09-06"`                                         |
| REPLACE                | 用替换文本替换从开始字符开始的指定数量的字符。                             | `text, whereToStart, count, replacement`           | Text          | `REPLACE("Hello Table", 7, 5, "Teable") => "Hello Teable"`                  |
| REGEXP\_REPLACE        | 使用替换文本替换匹配正则表达式的所有子字符串。                             | `text, regular_expression, replacement`            | Text          | `REGEXP_REPLACE("Hello Table", "H.* ", "") => "Teable"`                     |
| SUBSTITUTE             | 用新文本替换旧文本。可以指定索引号来替换旧文本的特定出现。如果未指定索引号，则将替换旧文本的所有出现。 | `text, oldText, newText, [index]`                  | Text          | `SUBSTITUTE("Hello Table", "Table", "Teable") => "Hello Teable"`            |
| TEXTBEFORE             | 返回指定分隔符之前的文本内容。                                     | `text, delimiter`                                  | Text          | `TEXTBEFORE("20, 04, 79", ",") => "20"`                                     |
| TEXTSPLIT              | 按指定分隔符拆分文本，并返回多个文本值。                                | `text, delimiter`                                  | Array         | `TEXTSPLIT("20, 04, 79", ",") => ["20", " 04", " 79"]`                      |
| LOWER                  | 将字符串转为小写。                                           | `text`                                             | Text          | `LOWER("Hello Teable") => "hello teable"`                                   |
| UPPER                  | 将字符串转为大写。                                           | `text`                                             | Text          | `UPPER("Hello Teable") => "HELLO TEABLE"`                                   |
| REPT                   | 将字符串重复指定的次数。                                        | `text, number`                                     | Text          | `REPT("Hello!") => "Hello!Hello!Hello!"`                                    |
| TRIM                   | 去除字符串开始和结束的空白字符。                                    | `text`                                             | Text          | `TRIM(" Hello ") => "Hello"`                                                |
| LEN                    | 计算字符串的字符数。                                          | `text`                                             | Number        | `LEN("Hello") => 5`                                                         |
| T                      | 如果参数是文本，则返回该参数，否则返回空。                               | `value`                                            | Text or Empty | <p><code>T("Hello") => "Hello"</code></p><p><code>T(100) => null</code></p> |
| ENCODE\_URL\_COMPONENT | 为构造 URL 或 URI，把部分字符替换为编码等效项。不会编码以下字符：- \_ . \~      | `value`                                            | Text          | `ENCODE_URL_COMPONENT("Hello Teable") => "Hello%20Teable"`                  |

## 逻辑函数

逻辑函数用于条件判断和逻辑运算，比如 `IF`、`AND`、`OR`。

| 函数名称      | 描述                                                      | 输入                                            | 输出                                      | 示例                                                                          |
| --------- | ------------------------------------------------------- | --------------------------------------------- | --------------------------------------- | --------------------------------------------------------------------------- |
| IF        | 如果逻辑参数为真，则返回 `value1`，否则返回 `value2`。也可用于嵌套判断和检查单元格是否为空。 | `logical, value1, value2`                     | String \| Number \| Boolean \| Datetime | `IF(2 > 1, "A", "B") => "A"` `IF(2 > 1, TRUE, FALSE) => TRUE`               |
| SWITCH    | 根据输入表达式匹配一组可能的值，并返回对应结果。没有匹配项时，可以返回默认值。很多情况下可替代嵌套 `IF`。 | `expression, [pattern, result]..., [default]` | String \| Number \| Boolean \| Datetime | `SWITCH("B", "A", "Value A", "B", "Value B", "Default Value") => "Value B"` |
| AND       | 如果所有参数都为真，则返回真；否则返回假。                                   | `logical1, [logical2, ...]`                   | Boolean                                 | `AND(1 < 2, 5 > 3) => true` `AND(1 < 2, 5 < 3) => false`                    |
| OR        | 如果任意一个参数为真，则返回真。                                        | `logical1, [logical2, ...]`                   | Boolean                                 | `OR(1 < 2, 5 < 3) => true` `OR(1 > 2, 5 < 3) => false`                      |
| XOR       | 如果有奇数个参数为真，则返回真。                                        | `logical1, [logical2, ...]`                   | Boolean                                 | `XOR(1 < 2, 5 < 3, 8 < 10) => false` `XOR(1 > 2, 5 < 3, 8 < 10) => true`    |
| NOT       | 反转其参数的逻辑值。                                              | `boolean`                                     | Boolean                                 | `NOT(1 < 2) => false` `NOT(1 > 2) => true`                                  |
| BLANK     | 返回一个空值，也可用于判断字段是否为空。                                    | `-`                                           | null                                    | `BLANK() => null` `IF({重量}=BLANK(), 1, 2) => 1`                             |
| ERROR     | 返回一个错误值。                                                | `message`                                     | Error                                   | `IF(2 > 3, "Yes", ERROR("Calculation")) => "#ERROR: Calculation"`           |
| IS\_ERROR | 如果表达式引起错误，则返回真。                                         | `expr`                                        | Boolean                                 | `IS_ERROR(ERROR()) => true`                                                 |

## 日期函数

日期函数用于处理和转换日期时间，比如获取当前日期、计算日期差、判断日期先后。

| 函数名称           | 描述                                                                | 输入                           | 输出       | 示例                                                                                                      |
| -------------- | ----------------------------------------------------------------- | ---------------------------- | -------- | ------------------------------------------------------------------------------------------------------- |
| TODAY          | 返回当前日期。                                                           | `-`                          | Datetime | `TODAY() => "2023-09-08 00:00"`                                                                         |
| NOW            | 返回当前的日期和时间。                                                       | `-`                          | Datetime | `NOW() => "2023-09-08 16:50"`                                                                           |
| YEAR           | 返回日期的四位数字年份。                                                      | `date`                       | Number   | `YEAR("2023-09-08") => 2023`                                                                            |
| MONTH          | 返回日期的月份，作为1（1月）到12（12月）之间的数字。                                     | `date`                       | Number   | `MONTH("2023-09-08") => 9`                                                                              |
| WEEKNUM        | 返回年份中的周数。                                                         | `date`                       | Number   | `WEEKNUM("2023-09-08") => 36`                                                                           |
| WEEKDAY        | 返回一周中的第几天，结果为0到6之间的整数。可以提供第二个参数（“星期日”或“星期一”）指定一周从哪一天开始。           | `date, [startDayOfWeek]`     | Number   | `WEEKDAY("2023-09-08", "Monday") => 5`                                                                  |
| DAY            | 返回日期的月份中的日期，作为1-31之间的数字。                                          | `date`                       | Number   | `DAY("2023-09-08") => 8`                                                                                |
| HOUR           | 返回日期的小时数，作为0（12:00am）到23（11:00pm）之间的数字。                           | `date`                       | Number   | `HOUR("2023-09-08 16:50") => 16`                                                                        |
| MINUTE         | 返回日期的分钟，作为0到59之间的整数。                                              | `date`                       | Number   | `MINUTE("2023-09-08 16:50") => 50`                                                                      |
| SECOND         | 返回日期的秒数，作为0到59之间的整数。                                              | `date`                       | Number   | `SECOND("2023-09-08 16:50:30") => 30`                                                                   |
| FROMNOW        | 计算当前日期与另一个日期之间的天数。                                                | `date, unit`                 | Number   | `FROMNOW({Date}, "day") => 25`                                                                          |
| TONOW          | 计算当前日期与另一个日期之间的天数。                                                | `date, unit`                 | Number   | `TONOW({Date}, "day") => 25`                                                                            |
| DATETIME\_DIFF | 返回指定单位的日期时间差异，默认单位是秒。                                             | `date1, date2, [unit]`       | Number   | `DATETIME_DIFF("2022-08-01", "2023-09-08", "day") => 403`                                               |
| WORKDAY        | 返回从开始日期起算的工作日，不包括指定假期。                                            | `date, count, [holidayStr]`  | Datetime | `WORKDAY("2023-09-08", 200) => "2024-06-14 00:00:00"`                                                   |
| WORKDAY\_DIFF  | 返回 `date1` 和 `date2` 之间的工作日数。工作日不包括周末和可选假日列表，假日列表使用 ISO 日期并用逗号分隔。 | `date1, date2, [holidayStr]` | Number   | `WORKDAY_DIFF("2023-06-18", "2023-10-01") => 75`                                                        |
| IS\_SAME       | 按指定单位比较两个日期是否相同。相同返回 `true`，否则返回 `false`。                         | `date1, date2, [unit]`       | Boolean  | `IS_SAME("2023-09-08", "2023-09-10") => false`                                                          |
| IS\_AFTER      | 判断 `date1` 是否晚于 `date2`。如果是，返回 `true`，否则返回 `false`。               | `date1, date2, [unit]`       | Boolean  | `IS_AFTER("2023-09-10", "2023-09-08") => true` `IS_AFTER("2023-09-10", "2023-09-08", "month") => false` |

## 数组和其他函数

数组和其他函数用于处理汇总数组、去重、合并、清理空值，以及获取记录 ID。

| 函数名称           | 描述                                           | 输入                      | 输出     | 示例                                                                            |
| -------------- | -------------------------------------------- | ----------------------- | ------ | ----------------------------------------------------------------------------- |
| COUNTALL       | 返回所有元素的数量，包括文本和空白。                           | `value1, [value2, ...]` | Number | `COUNTALL(100, 200, "", "Teable", TRUE()) => 5`                               |
| COUNTA         | 返回非空值的数量。此函数既计算数字又计算文本值。                     | `value1, [value2, ...]` | Number | `COUNTA(100, 200, 300, "", "Teable", TRUE) => 4`                              |
| COUNT          | 返回数字项的数量。                                    | `value1, [value2, ...]` | Number | `COUNT(100, 200, 300, "", "Teable", TRUE) => 3`                               |
| ARRAY\_JOIN    | 使用分隔符将汇总项数组连接成一个字符串。                         | `array, [separator]`    | String | `ARRAY_JOIN(["Tom", "Jerry", "Mike"], "; ") => "Tom; Jerry; Mike"`            |
| ARRAY\_UNIQUE  | 返回数组中仅有的唯一项。                                 | `array`                 | Array  | `ARRAY_UNIQUE([1, 2, 3, 2, 1]) => [1, 2, 3]`                                  |
| ARRAY\_FLATTEN | 展平嵌套数组，让所有项目成为单个数组的元素。                       | `array`                 | Array  | `ARRAY_FLATTEN([1, 2, " ", 3, true], ["ABC"]) => [1, 2, 3, " ", true, "ABC"]` |
| ARRAY\_COMPACT | 从数组中删除空字符串和 `null` 值。保留 `false` 和包含空白字符的字符串。 | `array`                 | Array  | `ARRAY_COMPACT([1, 2, 3, "", null, "ABC"]) => [1, 2, 3, "ABC"]`               |
| RECORD\_ID     | 返回当前记录的 ID。                                  | `-`                     | String | `RECORD_ID() => "recxxxxxx"`                                                  |
