Обработка заявок

Как распознать спецификацию в Excel и сопоставить её с прайсом

Почему клиентская таблица никогда не бывает аккуратной, как из неё вытащить товарные строки и что делать с объединёнными ячейками, шапками и итогами.

Филимонов Иван4 мин чтения
Рука с распечаткой диаграмм над столом с ноутбуком и калькулятором
Фото: Jakub Żerdzicki / Unsplash

Клиентская спецификация в Excel почти никогда не выглядит как аккуратная таблица «артикул — количество — цена». Это рабочий файл, который прошёл через несколько рук: в нём есть шапка на три строки, объединённые ячейки, разделы, пустые строки-отбивки и итоги внизу. Задача разбора — достать из этого товарные строки, не потеряв ни одной и не приняв за товар заголовок раздела.

Почему нельзя просто попросить прислать «по шаблону»

Соблазн понятный: выложить на сайт форму нужного вида и обрабатывать только её. На практике это означает потерю части заявок.

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

Формат входа задаёт клиент. Всё, что можно сделать со своей стороны, — научиться читать то, что он прислал.

Что именно нужно найти в файле

Разбор решает четыре задачи, и решает их именно в таком порядке.

1. Найти таблицу

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

2. Определить назначение столбцов

Заголовки пишут по-разному: «Кол-во», «Кол.», «Количество», «Q-ty». Опираться на точное совпадение названия бесполезно. Работают два сигнала одновременно:

  • Заголовок столбца — по набору вариантов написания.
  • Содержимое — столбец с целыми числами в диапазоне единиц-сотен скорее количество, чем цена; столбец с длинным текстом — наименование.

Когда сигналы противоречат друг другу, надёжнее содержимое: заголовок могли просто не поправить после копирования из другого файла.

3. Отделить товарные строки от служебных

Тип строки Признак
Товарная есть наименование и количество
Раздел есть только текст, часто выделен жирным
Итог есть сумма, но нет количества либо есть слово «итого»
Отбивка пустая

Строки-разделы выбрасывать полностью не стоит: «Электроинструмент» перед следующими двадцатью позициями — это подсказка о категории, которая пригодится при подборе.

4. Разобрать саму строку наименования

Здесь начинается содержательная часть. В строке «УШМ 125мм 1200Вт с рег. оборотов или аналог» перемешаны тип товара, две числовые характеристики, свойство и оговорка о допустимости замены. Разбор вытаскивает из неё:

  • тип: УШМ (углошлифовальная машина);
  • диаметр: 125 мм;
  • мощность: 1200 Вт;
  • допустим аналог: да.

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

Типичные ловушки

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

Число как текст. «1 200» с неразрывным пробелом, «1,200», «1200 шт.» — всё это одно и то же количество, записанное так, что прямое преобразование в число даёт ошибку.

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

Несколько листов. Спецификация на объект нередко разбита по разделам на листы. Обработка только первого листа выглядит как успешная — и теряет две трети заявки.

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

Что делать со строками, которые не разобрались

Не выбрасывать. Строка, которую не удалось распознать, должна попасть в результат с пометкой «требует проверки» и исходным текстом. Иначе получается худший из возможных исходов: клиент прислал 200 позиций, в подборе их 180, и никто не знает, куда делись остальные двадцать.

Практическое правило: число строк на выходе всегда совпадает с числом товарных строк на входе. Меняется только их статус.

Как это проверить у себя

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

  1. Совпадает ли количество распознанных строк с фактическим.
  2. Правильно ли определены количества и единицы измерения.
  3. Что произошло со строками-разделами и итогами.

Демонстрация на подготовленном файле не говорит ни о чём: аккуратную таблицу разберёт что угодно.

Коротко

  • Требовать от клиента «правильный» шаблон — способ потерять часть заявок.
  • Назначение столбцов надёжнее определять по содержимому, чем по заголовку.
  • Служебные строки нужно отличать от товарных, но разделы полезно сохранять как подсказку о категории.
  • Нераспознанная строка обязана попасть в результат с пометкой, а не исчезнуть.
  • Проверять решение нужно на настоящих клиентских файлах, а не на демонстрационных.

Вопросы по теме статьи

Нужно ли приводить файл клиента к единому шаблону?

Нет, и требовать этого от клиента — плохая идея: часть заявок вы просто потеряете. Разбор должен сам находить шапку, товарные строки, разделы и итоги в том файле, который прислали.

Что делать со строками-разделами вроде «Электроинструмент»?

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

Как быть, если в файле нет артикулов?

Работать по названию и числовым характеристикам. Артикул клиенты указывают далеко не всегда, и подбор, который без него не работает, бесполезен на реальных заявках.

Автоматическая обработка заявок: подбор товаров по спецификации клиента

Клиент присылает спецификацию в Excel, сканом или фото рукописного бланка — CartFlow распознаёт и разбирает строки, подбирает позиции по вашему каталогу, предлагает аналоги и готовит счёт с QR-кодом по ГОСТ.

Читайте дальше