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

# 公式

> 通过公式字段引用其他字段，并对文本、数字、日期和逻辑条件进行动态计算。

公式字段用于根据同一条记录里的其他字段自动计算结果。它可以处理数学运算、文本拼接、日期计算和条件判断，适合把重复计算规则固化到字段中。

## 适用场景

| 场景   | 适合内容                    |
| ---- | ----------------------- |
| 自动计算 | 根据数量、单价、折扣等字段计算总价、利润或得分 |
| 文本处理 | 拼接文本、截取内容，或按分隔符提取信息     |
| 日期处理 | 计算日期差、判断时间范围，或生成未来日期    |
| 条件判断 | 根据条件返回不同结果，比如状态、提示或分类   |

## 基础概念

### 数据类型

编写公式前，先确认参与计算的字段类型。不同类型支持的操作和函数不同。

| 类型  | 说明               | 常见用法         |
| --- | ---------------- | ------------ |
| 数字  | 整数或小数            | 四则运算、汇总、比较大小 |
| 文本  | 字符串值             | 拼接、截取、替换、分割  |
| 日期  | 日期或日期时间          | 计算间隔、比较早晚    |
| 布尔值 | `TRUE` 或 `FALSE` | 条件判断、逻辑运算    |

### 引用字段

在公式中，可以通过字段名称引用其他字段的值。字段名称需要写在 `{}` 中，并与实际字段名保持一致：

```js theme={null}
{单价} * {数量}
```

### 运算符

| 运算符 | 用途            |
| --- | ------------- |
| `+` | 计算数值的和，或连接字符串 |
| `-` | 计算数值的差        |
| `*` | 计算数值的积        |
| `/` | 计算数值的商        |
| `%` | 计算余数          |

## 常用写法

### 常用函数

函数用于执行特定操作。比如 `SUM` 计算总和，`LEFT` 从文本开头提取字符，`TEXTBEFORE` 按分隔符提取前半段文本，`TEXTSPLIT` 按分隔符拆分文本。

更多函数请参阅[函数速查表](/zh/basic/field/formula/cheat-sheet)。

### 文本处理

| 操作   | 函数示例                              | 说明           |
| ---- | --------------------------------- | ------------ |
| 连接文本 | `&`、`CONCATENATE`                 | 将两个或多个文本连接起来 |
| 提取文本 | `LEFT`、`RIGHT`、`MID`、`TEXTBEFORE` | 提取字符串的一部分    |
| 拆分文本 | `TEXTSPLIT`                       | 按指定分隔符拆成多个值  |

### 逻辑判断

`IF` 函数可以根据条件返回不同值。格式如下：

```js theme={null}
IF(condition, value_if_true, value_if_false)
```

判断字段是否为空时，建议使用 `BLANK()` 进行比较。比如 `IF({重量}=BLANK(), 1, 2)` 会在数字字段为空时返回 `1`，否则返回 `2`。

### 复杂表达式

复杂公式可以同时包含多个函数、字段引用和运算符。使用括号可以控制计算顺序：

```js theme={null}
({单价} * {数量}) * (1 - {折扣})
```

## 结果显示与维护

### 格式化和交互展现

公式结果也可以继续使用[格式化](/zh/basic/field/common/formatter)和[交互展现](/zh/basic/field/common/show-as)配置，比如显示为百分比、进度条或图标样式。可配置项会根据公式结果类型变化。

### 调试与优化

* **检查数据类型**：确认操作和函数使用了正确的数据类型。
* **验证字段引用**：确认字段名称写法正确。
* **逐步检查**：把复杂公式拆成较小的部分分别测试。
* **避免重复计算**：如果同一个计算会在多处使用，可以考虑把结果保存为单独字段。
