Почему ВПР в Excel ломается на прайсах поставщиков и что делать
Если ты хоть раз сводил прайсы трёх поставщиков через ВПР, ты знаешь это чувство: формула протянулась, а половина строк показывает #Н/Д. Не потому что товара нет - потому что ключи не совпали по символу. Разберём, почему так выходит и как из этого выкрутиться.
1. Артикулы пишутся по-разному
У одного поставщика «4607099-001», у второго «4607099/001», у третьего «4607099 001». Это один и тот же товар, но для ВПР это три разные строки. Дальше веселее: где-то ведущие нули обрезаны, где-то стоит лишний пробел в конце ячейки, где-то скрытые символы из выгрузки 1С.
2. EAN есть, но не у всех
Штрихкод EAN-13 - самый надёжный ключ. Если он есть, всё сходится точно. Проблема в том, что у поставщика-перекупа EAN часто нет, или есть в одной строке из десяти.
3. Названия отличаются по словам
«Молоко Простоквашино 2,5% 950 мл» и «Молоко Простоквашино 950мл 2.5%». Тот же товар, ВПР по названию - мимо.
4. Шапка прайса не там, где ожидает формула
Поставщик добавил две строки «Уважаемые партнёры…» сверху, и колонка «Цена», на которую ты тащишь ВПР по индексу 5, теперь индекс 7. Все формулы внезапно врут, но ошибки не выдают - данные просто берутся из соседней колонки.
5. Файл в Windows-1251
CSV из 1С приходит в Windows-1251. Excel при импорте может показать кириллицу кракозябрами, и матчинг по названию станет сравнивать «Òîâàð» с «Товар». Мимо.
Что делать
- Матчить по EAN, артикулу и нормализованному названию каскадно. Если EAN есть с обеих сторон - берём его. Нет - пробуем артикул без всяких разделителей и с ведущими нулями. Нет - fuzzy-сравнение по названию (RapidFuzz справляется на 85% даже с переставленными словами).
- Определять колонки по содержимому, не по шапке. EAN-13 распознаётся регуляркой
/^\d{13}$/, цена - float в разумном диапазоне, артикул - alphanum с цифрами. Это надёжнее чем «5-я колонка слева». - Хранить историю. Поставщик дал прайс в понедельник и в пятницу. Без истории ты увидишь только текущие цены - не увидишь, что Вася поднял 15 позиций на 5%. Это потерянная маржа.
Решение в Praiser
В Praiser мы делаем всё это за тебя. Ты грузишь свой прайс и прайсы поставщиков, мы парсим автоматически (включая Windows-1251 и сдвинутые шапки), матчим по каскаду EAN → артикул → fuzzy, показываем таблицу: твоя цена → цены поставщиков → минимум → маржа. Если хочешь просто сравнить два файла без регистрации - есть бесплатный инструмент сравнения.