Гид по формулам
Редакция от 5 августа 2026
Формулы в 2x2calc: полная инструкция
Формула задаётся в элементе «Результат». В качестве переменных используются ID числовых полей, переключателей, списков, мультичекбоксов и других результатов.
1. Основной принцип
Допустим, в калькуляторе есть следующие элементы:
| Элемент | ID | Значение |
|---|---|---|
| Площадь | area |
80 |
| Цена за м² | price |
1500 |
| Монтаж | install |
5000 |
Формула результата:
Расчёт:
В формулу вводится именно ID элемента, а не его название.
Правильно:
Неправильно:
2. Требования к ID
ID — это имя переменной, используемое в формуле.
Рекомендуемый формат:
price
price_m2
install_cost
room_count
result_total
Для ID рекомендуется использовать:
- латинские буквы;
- цифры;
- знак подчёркивания
_; - первую позицию — латинскую букву.
Правильно:
price2
price_m2
room_count
Неправильно:
price-m2
price.m2
2price
price m2
ID должны быть уникальными
Нельзя назначать двум элементам один и тот же ID:
price
Регистр символов имеет значение
Следующие ID считаются разными:
Price
PRICE
Рекомендуется использовать строчные латинские буквы:
Не используйте имена функций в качестве ID
Не рекомендуется назначать элементам такие ID:
MIN
MAX
ROUND
SQRT
AND
OR
NOT
TRUE
FALSE
3. Какие элементы участвуют в формулах
Числовое поле
В формулу передаётся число, введённое пользователем. Например, ID числового поля:
Если пользователь ввёл 75, переменная area получает значение 75. Если поле очищено, в расчёте обычно используется 0.
Ползунок
В формулу передаётся текущее значение ползунка:
Значение учитывает минимальное и максимальное значения, а также шаг. При шаге 0.5 возможны, например:
1.5
2
2.5
Выпадающий список и Radio-список
В формулу передаётся числовое значение выбранного варианта, а не его название.
| Вариант | Значение |
|---|---|
| Эконом | 1000 |
| Стандарт | 1500 |
| Премиум | 2200 |
ID списка:
Если выбран вариант «Стандарт»:
Формула:
Checkbox
Checkbox передаёт значение «Включено» или «Выключено». Обычно:
Выключено = 0
ID checkbox:
Формула:
Checkbox может сразу возвращать стоимость:
Выключено = 0
Тогда формула упрощается:
Checkbox можно использовать как коэффициент:
Выключено = 1
Формула:
Мультичекбокс
В формулу передаётся сумма значений всех выбранных вариантов.
| Вариант | Значение |
|---|---|
| Доставка | 1000 |
| Подъём | 500 |
| Монтаж | 3000 |
ID мультичекбокса:
Если выбраны доставка и монтаж:
Формула:
Ограничение мультичекбокса
Формуле доступна только итоговая сумма. В формуле нельзя напрямую проверить, выбран ли конкретный вариант
Если нужно отдельно проверять каждую опцию, используйте несколько отдельных checkbox. Избегайте значений, при которых разные комбинации дают одинаковую сумму.
Другой результат
Один результат может использовать ID другого результата.
Формула: area * price
Формула: subtotal + delivery
Формула: total * 1.2
Самоссылка
Результат не должен ссылаться сам на себя:
Формула: total + 100
Циклическая ссылка
Нельзя создавать взаимные ссылки:
result_b = result_a + 20
Элементы, которые не участвуют в формулах
- текстовое поле;
- длинное текстовое поле;
- поле даты;
- текстовый блок;
- изображение;
- форма заявки;
- горизонтальная линия.
Например, нельзя написать:
Формульный движок работает с числами и логическими значениями, но не со строками и датами.
4. Запись чисел
Десятичный разделитель
Десятичная часть отделяется точкой:
0.25
12.75
Нельзя использовать десятичную запятую:
Запятая разделяет аргументы функций:
Разделители тысяч
Правильно:
1500000
Неправильно:
1,000
1.000
В формуле:
При отображении калькулятор может показать:
Научная запись
Не следует использовать:
2.5E3
Используйте обычную запись:
2500
5. Арифметические операторы
| Действие | Оператор | Пример |
|---|---|---|
| Сложение | + |
a + b |
| Вычитание | - |
a - b |
| Умножение | * |
a * b |
| Деление | / |
a / b |
| Возведение в степень | ^ |
a ^ 2 |
| Унарный минус | - |
-a |
| Унарный плюс | + |
+a |
Умножение всегда указывается явно
Правильно:
Неправильно:
Правильно:
Неправильно:
Правильно:
Неправильно:
6. Возведение в степень
Квадрат:
Куб:
Обратное число:
Квадратный корень через степень:
Предпочтительный вариант:
Последовательность вычисления степеней
Формула:
понимается как:
Результат:
Отрицательное основание
Формула:
понимается как:
Результат:
Чтобы получить 4:
7. Скобки и порядок вычислений
Используются круглые скобки:
Пример:
Порядок выполнения операций:
- выражения в скобках и функции;
- возведение в степень
^; - унарные операторы
+,-,!,NOT; - умножение и деление;
- сложение и вычитание;
- сравнения;
AND;OR.
Формула:
равна:
Если нужно сначала выполнить сложение:
8. Операторы сравнения
| Проверка | Оператор |
|---|---|
| Равно | = |
| Не равно | != |
| Больше | > |
| Меньше | < |
| Больше или равно | >= |
| Меньше или равно | <= |
Примеры:
area != 100
area > 100
area < 100
area >= 100
area <= 100
Для равенства используется один знак
Правильно:
Неправильно:
Не используйте цепочки сравнений
Неправильно:
Правильно:
или:
9. Логические операторы
| Действие | Словесная запись | Символьная запись |
|---|---|---|
| И | AND |
&& |
| ИЛИ | OR |
|| |
| НЕ | NOT |
! |
Названия функций и логических операторов нечувствительны к регистру:
and
And
Логическое И
Логическое ИЛИ
Логическое НЕ
Для сравнения используйте скобки:
10. Что считается истиной и ложью
любое ненулевое число = истина
Checkbox со значениями 1 и 0 можно использовать так:
Это аналогично:
В числовом контексте:
ложь = 0
Вместо TRUE и FALSE используйте:
0
11. Функция IF
Синтаксис:
Пример:
Несколько условий
Один из нескольких вариантов
Вложенные IF
area <= 50,
area * 1000,
IF(
area <= 100,
area * 900,
area * 800
)
)
Одной строкой:
IF с двумя аргументами
При ложном условии результат будет 0. Для ясности лучше писать:
12. Функция MIN
Возвращает наименьшее число:
Ограничение сверху:
Несколько аргументов:
Не используйте:
13. Функция MAX
Возвращает наибольшее число:
Минимальная стоимость заказа – 5000:
Несколько аргументов:
Не используйте:
14. Функция ROUND
Синтаксис:
Округление после запятой
ROUND(value, 1)
ROUND(value, 2)
ROUND(value, 3)
Пример:
Результат:
Округление до десятков, сотен и тысяч
ROUND(value, -2)
ROUND(value, -3)
Пример:
Результат:
Допустимый диапазон
ROUND(value, 20) будет обработано как округление до шести знаков после запятой.
ROUND с одним аргументом
округляет до целого. Для ясности:
Особенность отрицательных чисел
Результат стандартного округления JavaScript:
15. Функция SQRT
Квадратный корень:
Функция принимает ровно один аргумент.
Пример:
Результат:
Гипотенуза:
При a = 3 и b = 4 результат равен 5.
Регистр не важен:
sqrt(25)
Sqrt(25)
Отрицательное подкоренное выражение
не имеет действительного числового результата. При необходимости:
16. AND и OR как функции
AND
OR
17. Формула и округление результата
Способ 1. ROUND внутри формулы
Округлённое число становится фактическим результатом и передаётся в последующие формулы.
Способ 2. Настройка округления элемента «Результат»
- не округлять;
- арифметическое округление;
- округление вверх;
- округление вниз;
- до тысячных, сотых, десятых, единиц, десятков, сотен или тысяч.
Исходное значение:
может отображаться как:
Чтобы другие результаты использовали показанное значение, включите:
Если округление — часть алгоритма, используйте ROUND(). Если оно нужно только для отображения — настройку элемента «Результат».
18. Деление на ноль
может дать бесконечность или некорректный результат. Проверяйте знаменатель:
Можно использовать другое безопасное значение:
19. Расчёт процентов
Прибавить 20%
Вычесть скидку
При скидке 15%:
Процент от числа
20. Типовые формулы
Цена по площади
Цена по количеству
Цена плюс услуга
Минимальная стоимость
Максимальное ограничение
Наценка
Скидка
Надбавка 20%
Условная доплата
Доплата при двух условиях
Один из нескольких тарифов
Гипотенуза
Среднее арифметическое
Ограничение диапазоном
Модуль без ABS
Ступенчатая цена
Первые 50 единиц по 1000, остальные по 800:
quantity <= 50,
quantity * 1000,
50 * 1000 + (quantity — 50) * 800
)
Три ценовых диапазона
area <= 50,
area * 1000,
IF(
area <= 100,
area * 900,
area * 800
)
)
21. Цепочка результатов
Сложный расчёт лучше разделять на промежуточные результаты.
Формула:
area * price_m2 + options
Формула:
subtotal * discount / 100
Формула:
subtotal — discount_amount
- формулы легче читать;
- проще находить ошибки;
- можно показывать промежуточные значения;
- один результат можно использовать в нескольких формулах.
22. Что формульный движок пока не поддерживает
CEIL()
FLOOR()
SIN()
COS()
TAN()
LOG()
LN()
EXP()
PI()
RANDOM()
MOD()
- строки и сравнение текста;
- даты;
- массивы;
- проверка отдельного варианта мультичекбокса;
- оператор остатка
%; - оператор степени
**; - равенство
==; - неравенство
<>; - тернарный оператор;
- квадратные и фигурные скобки;
- русские названия функций;
- комментарии, единицы измерения и денежные символы внутри формул;
- неявное умножение.
Не будут работать:
PI()
price * 20%
area == 10
2 ** 3
IF(city = "Москва", 1, 0)
1000 ₽
10 м²
23. Типичные ошибки
Название вместо ID
Неправильно:
Правильно:
Десятичная запятая
Неправильно:
Правильно:
Пропущено умножение
Неправильно:
Правильно:
Двойное равенство
Неправильно:
Правильно:
Неверный регистр ID
Неправильно:
Правильно:
Ссылка на текстовое поле
Неправильно:
Правильно:
Неподдерживаемая функция
Используйте настройку округления вверх у элемента «Результат».
Циклические результаты
result2 = result1 + 100
Разорвите цикл и используйте независимое исходное поле или промежуточный результат.
24. Как проверять сложную формулу
Собирайте сложную формулу постепенно.
Сначала:
Затем:
Затем:
Затем:
И только потом полную формулу.
Что нужно проверить
- минимальные значения;
- максимальные значения;
- нули;
- каждый вариант списка;
- включённый и выключенный checkbox;
- сочетания мультичекбокса;
- значения на границе условия, ниже и выше неё;
- режим просмотра;
- публичную страницу;
- embed-калькулятор.
25. Краткая памятка
Вычитание: a — b
Умножение: a * b
Деление: a / b
Степень: a ^ b
Квадратный корень: SQRT(a)
Равно: a = b
Не равно: a != b
Больше: a > b
Меньше: a < b
Больше или равно: a >= b
Меньше или равно: a <= b
И: a AND b
a && b
AND(a, b)
ИЛИ: a OR b
a || b
OR(a, b)
НЕ: NOT(a)
!(a)
Условие: IF(condition, yes, no)
Минимум: MIN(a, b)
Максимум: MAX(a, b)
Округление: ROUND(a, digits)
Квадратный корень: SQRT(a)
Основные правила
- десятичный разделитель — точка;
- аргументы функций разделяются запятыми;
- равенство обозначается одним знаком
=; - умножение всегда обозначается
*; - переменные — это ID элементов;
- ID чувствительны к регистру;
- формулы работают с числами и логическими значениями;
- для сложных расчётов используйте промежуточные результаты.
