> ## 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` разделяет текст по разделителю.

Другие функции см. в [шпаргалке по формулам](/ru/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 - {Скидка})
```

## Отображение результатов и обслуживание

### Форматирование и интерактивное отображение

К результатам формул также можно применять настройки [форматирования](/ru/basic/field/common/formatter) и [интерактивного отображения](/ru/basic/field/common/show-as), например проценты, индикатор выполнения или стили значков. Доступные варианты зависят от типа результата формулы.

### Отладка и оптимизация

* **Проверяйте типы данных**: убедитесь, что операции и функции используют правильные типы данных.
* **Проверяйте ссылки на поля**: убедитесь, что имена полей записаны правильно.
* **Тестируйте поэтапно**: разбивайте сложные формулы на более мелкие части и проверяйте их отдельно.
* **Избегайте повторных вычислений**: если один и тот же расчёт используется в нескольких местах, рассмотрите возможность хранить результат в отдельном поле.
