Запятая или точка в ценах: как привести дробную часть к одному виду

Прайс собран из трёх источников, и колонка цен выглядит так: «1 200,50», «1200.50», «1 200.50» — вперемешку, строк на шестьсот. Выделяете колонку, смотрите сумму — и видите примерно треть от реальной. Остальное Excel просто не считает: для него это текст. Разберём, почему так происходит и как привести разделитель дробной части к одному виду — без потери копеек.

Почему в одном файле три вида цен

Корень проблемы — два разных соглашения о записи чисел:

  • Русская локаль Windows и Excel ждёт запятую как разделитель дробной части: «1200,50» — число. «1200.50» с точкой она не признаёт и оставляет текстом.
  • Машинные форматы — выгрузки API, веб-версии учётных систем, JSON и большинство CSV — отдают точку: так принято в англоязычной нотации и в программных стандартах. Поставщик не ошибся, просто его система говорит на другом «диалекте».
  • Разделитель тысяч докучает сверху: пробел в «1 200.50» приезжает из веб-страниц и печатных форм, и часто это неразрывный пробел.

Добавьте ручной ввод — менеджер копирует цены из письма или с сайта, и написание плывёт от строки к строке. На выходе колонка, где каждый источник оставил свой след.

Как распознать, что цена — текст

Три признака, проверка занимает полминуты:

  • Выравнивание. Числа Excel по умолчанию прижимает вправо, текст — влево. Колонка, где часть значений «отвалилась» влево, — смесь чисел и текста.
  • Зелёный треугольник в углу ячейки: «число сохранено как текст». На сотнях строк Excel помечает так почти все текстовые цены.
  • Строка состояния. Выделите колонку: внизу появятся «Количество» и «Сумма». Сумма считается только по числам — если строк 600, а итог как за 200, две трети колонки текстовые.

Площадки ведут себя так же, как Excel: шаблон маркетплейса ждёт в поле цены число. Текстовое значение либо отваливается с ошибкой при загрузке, либо хуже — молча пропускается, и позиция остаётся без цены.

Колонка цен с тремя видами записи: запятая, точка и точка с пробелом тысяч
Часть цен прижата влево — это текст, в сумму они не входят

Приведение в Excel: сначала пробелы, потом точка

Порядок действий принципиален. Если в «1 200.50» сначала заменить точку на запятую, получится «1 200,50» — всё ещё текст, потому что пробел тысяч никуда не делся. Поэтому:

  1. Выделите колонку цены — только её: точки есть и в артикулах, и в названиях.
  2. Ctrl+H → «Найти»: пробел → «Заменить на»: пусто → «Заменить все». Если часть пробелов выжила — они неразрывные: в поле «Найти» зажмите Alt и наберите 0160 на цифровом блоке. Оба случая подробно разобраны в статье про пробелы в цифрах.
  3. Снова Ctrl+H → «.» → «,» → «Заменить все». Теперь «1200.50» станет «1200,50», и Excel сам превратит значения в числа.

Одна засада: значения вида «12.05» или «01.03» — где и целая, и дробная часть укладываются в дату, — Excel может понять как 12 мая или 1 марта. В ценах такое редкость (копейки обычно ,00 или ,50), но если в прайсе встречаются мелкие суммы — проверьте их выборочно.

Приведение в конвертере

Когда файл один — хватит Ctrl+H. Когда такие прайсы приходят каждую неделю от разных поставщиков, удобнее собрать настройку один раз. Откройте конвертер очистки и загрузите файл — до 2 МБ обрабатывается бесплатно и без регистрации.

На шаге «Структура» укажите, с какой строки начинается таблица. На шаге «Колонки» найдите колонку цены и добавьте действия «Заменить текст» в том же порядке, что и руками: сначала пробел → пусто, затем «.» → «,». Действия выполняются по очереди для всех строк разом, а соседние колонки не трогают — замена адресная, а не по всему листу, как у Ctrl+H. Про прицельные замены подробнее — в статье про массовую замену в прайсе.

Действия «Заменить текст» на колонке цены: сначала пробелы, затем точка в запятую
Порядок действий на колонке: сначала пробелы, потом разделитель

Результат виден в живом превью ещё до скачивания: вся колонка приведена к одному виду. На экспорте получаете XLSX со значениями — без формул и без «числа как текст» — или CSV в UTF-8, если дальше файл ждёт другая система.

Превью колонки цен после приведения к единому виду с запятой
После приведения вся колонка выглядит одинаково и готова к загрузке

После регистрации настройка сохраняется шаблоном: следующий прайс того же поставщика приводится в три клика — загрузить, применить шаблон, скачать.

Контроль: сверка суммы после приведения

Замена прошла — это ещё не значит, что всё сошлось. Контрольная точка одна: сумма колонки после приведения должна совпасть с исходной.

  • Если в исходнике есть итог — счёт, акт, строка «Итого», — сверьте с ним: поставщик считал итог уже по настоящим числам.
  • Если итога нет, сверьте выборочно 10–15 строк с исходным файлом, включая самые длинные числа, — именно на них чаще всего сидел пробел тысяч.
  • Расхождение в копейках — знак, что где-то дробная часть потерялась или значение уехало в дату. Найдите такие строки фильтром по колонке и поправьте точечно.

Если цены страдают не только разделителем, но и «руб.», лишними колонками и строками-разделами, смотрите материал про полную очистку прайса — там вся связка целиком.

Частые вопросы

Как быстро найти все текстовые цены в колонке?

Самый быстрый способ — посмотреть на выравнивание: текст прижат влево, числа вправо. Если нужен точный список, добавьте рядом формулу =ЕТЕКСТ(B2) и отфильтруйте ИСТИНА — это все строки, которые Excel числами не считает.

Почему выгрузки дают точку, а Excel ждёт запятую?

Это два разных стандарта, и никто не ошибся. Программные форматы — JSON, API, большинство CSV — пишут дробную часть через точку по англоязычному соглашению. Русская локаль Windows и Excel исторически использует запятую. Приведение к одному виду — нормальный этап обработки такого файла.

Замена точки на запятую не сломает остальные данные?

Сломает, если делать её по всему листу: точки встречаются в артикулах, ссылках и названиях вроде «GSB 13.5». Поэтому в Excel колонку сначала выделяют, а в конвертере действие «Заменить текст» изначально вешается на одну колонку и соседние не затрагивает.

А если нужно наоборот — точка вместо запятой?

Та же замена в обратную сторону: «,» → «.». Такое нужно, когда файл уходит в систему, которая ждёт английскую нотацию чисел. Порядок не меняется: сначала убрать пробелы тысяч, потом менять разделитель — иначе «1 200,50» останется текстом в обеих локалях.