Преобразования таблицы

Как прибавить 20% к цене, округлить результат и отсеять неверные значения

2026-06-20
Задача

В колонке price_raw цена приходит целым числом или десятичным числом с точкой либо запятой. Нужно получить в price_final только положительную цену: прибавить к ней 20%, округлить до ближайшего целого, а неподдерживаемые и обнулившиеся значения оставить пустыми.

Короткий ответ

Создайте price_final из price_raw и примените ровно шесть правил с названиями из интерфейса: Убрать пробелы по краям, проверку формата Не регулярное выражениеНе загружать поле, отсев неположительных значений — Меньше или равно со значением 0Не загружать поле, Увеличить на % со значением 20, Округлить без отдельного операнда и тот же отсев после округления.

Как настроить в Eofferix

  1. Добавьте или откройте итоговую колонку price_final и выберите для неё исходную колонку price_raw. Эти имена используются только в примере: в своём шаблоне выберите реальные колонки цены.

    Открытие правил итоговой колонки price_final в табличном редакторе Eofferix
    Откройте итоговую колонку цены и убедитесь, что источником выбрана реальная исходная цена.
  2. Добавьте первые три правила в таком порядке: ЛюбоеУбрать пробелы по краям; Не регулярное выражение со значением ^\d+(?:[.,]\d{1,2})?$Не загружать поле; Меньше или равно со значением 0Не загружать поле. Регулярное выражение принимает только цифры и необязательную дробную часть максимум из двух знаков.

  3. Добавьте ещё три правила: ЛюбоеУвеличить на % со значением 20; ЛюбоеОкруглить; затем Меньше или равно со значением 0Не загружать поле. У действия Округлить в этом интерфейсе нет видимого поля операнда: оно использует настройку по умолчанию — округление до ближайшего целого с шагом 1.

    Шесть правил проверки цены, прибавления 20 процентов и округления в Eofferix
    Сначала проверяется исходное значение, затем прибавляются 20%, выполняется округление и повторно отсекается нулевой результат.
  4. Примените правила и проверьте предпросмотр на допустимых ценах, слишком длинной дробной части, нуле, отрицательном числе, тексте и малой положительной цене. Выгружайте результат только после проверки контрольных строк из таблицы ниже.

Важно. price_raw, price_final и надбавка 20% — только пример. Подставьте реальные имена колонок и согласованную ставку. Если 20% означает НДС, сначала подтвердите, что исходная цена действительно указана без НДС, что применима именно эта ставка и что правила вашего канала допускают такое округление.

Что получится

Значение в price_rawРезультат в price_finalПочему
999.901200После прибавления 20% получается 1199,88; ближайшее целое — 1200.
14901788Допустимое целое число: 1490 × 1,20 = 1788.
99,95120Запятая принимается как десятичный разделитель: 119,94 округляется до 120.
0.4210,504 округляется до 1 и проходит финальную проверку.
0.10пусто0,12 округляется до 0; последнее правило очищает нулевой результат.
12.345пустоВ дробной части больше двух знаков.
0пустоИсходная цена не больше нуля.
-10пустоОтрицательный формат не проходит регулярное выражение.
100 ₽пустоОбозначение валюты не входит в допустимый формат.
пустопустоПустое значение не превращается в цену.

Что проверить перед выгрузкой

  • В колонке стоят все шесть правил именно в указанном порядке; Eofferix выполняет их сверху вниз.
  • В регулярном выражении указано ^\d+(?:[.,]\d{1,2})?$: оно проверяет всю строку и допускает не более двух дробных знаков.
  • У правила Увеличить на % указано 20, а у Округлить нет отдельного операнда.
  • Контрольные значения дают именно такие результаты: 999.901200, 14901788, 99,95120.
  • Финальное правило Меньше или равно со значением 0Не загружать поле стоит после округления: без него, например, 0.10 превратилось бы в ноль.

Ограничения примера

  • Проверка формата принимает только десятичную запись без знака, пробелов внутри, разделителей тысяч и знака валюты; следующее правило отсеивает ноль.
  • Точка и запятая считаются десятичными разделителями. Неоднозначный формат 1,234 в этом примере намеренно отклоняется, потому что после разделителя стоят три цифры.
  • Результат — целое число. Если канал требует копейки или другое правило округления, настройте отдельный сценарий и заново проверьте граничные значения.
  • Не загружать поле очищает значение этой итоговой колонки, но не удаляет всю строку товара.
  • Процентная надбавка математически совпадает с умножением на 1,20, но сама по себе не доказывает корректность налогового расчёта. Ставки и категории НДС зависят от юрисдикции: проверьте обзор ставок НДС Еврокомиссии и правила, применимые к вашей продаже.

Обрабатывайте данные быстрее с Eofferix

Создайте бесплатный аккаунт, чтобы автоматизировать каталоги и прайс-листы под ваши правила.

Зарегистрироваться