Фильтрация прайса по нескольким условиям сразу

В прайсе поставщика четыре тысячи строк, а загружать на площадку из них нужно восемьсот: только позиции в наличии, только дороже ста рублей и без служебных строк «Итого», которыми 1С украшает каждую страницу выгрузки. Наложить одно условие несложно. А вот выставить три сразу — и не повторять эту рутину на каждом новом прайсе — уже задача с нюансами. Разберём, как это сделать в Excel и в конвертере.

Зачем фильтровать до загрузки, а не после

Лишняя строка в файле — это не «пусть будет, не мешает». Каждый типовой пропуск бьёт по своему:

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

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

Логика И / ИЛИ без занудства

Условия соединяются двумя словами:

  • И — строка проходит, только когда верны все условия сразу: «остаток больше 0» И «цена больше 100» И «название не содержит Итого». Так отбирают по принципу «оставить хорошее».
  • ИЛИ — строка проходит, когда верно хотя бы одно условие: «склад Москва» ИЛИ «склад Подольск». Так перечисляют допустимые варианты одного поля.

Бытовая ловушка номер один — поставить ИЛИ там, где нужно И. «Остаток больше 0 ИЛИ цена больше 100» пропустит и дорогой товар без остатков, и дешёвый с остатком — то есть почти весь прайс целиком. Для фильтрации перед загрузкой почти всегда нужна связка И.

В Excel: автофильтр по нескольким колонкам

Стандартный путь: выделить шапку → «Данные» → «Фильтр» (Ctrl+Shift+L), затем накрутить условия по очереди на каждой колонке:

  1. «Остаток» → «Числовые фильтры» → «Больше» → 0.
  2. «Цена» → «Числовые фильтры» → «Больше» → 100.
  3. «Наименование» → «Текстовые фильтры» → «Не содержит» → «Итого».

Между колонками автофильтр всегда работает по И — как раз то, что нужно. Отфильтрованное копируют на новый лист либо инвертируют логику и удаляют видимые строки: базовая механика разобрана в статье про удаление строк по условию.

Исходный прайс: нулевые остатки, копеечные позиции и строки «Итого»
Исходный прайс: четыре тысячи строк, из которых нужны восемьсот

Ограничения автофильтра:

  • Внутри одной колонки — максимум два условия с И/ИЛИ. «Цена больше 100 и меньше 50 000» — можно, три вилки сразу — уже нет.
  • Настройка не сохраняется. Завтра придёт свежий прайс — и вся процедура повторяется вручную, с шансом кликнуть «содержит» вместо «не содержит» и отправить в файл мусор.

Расширенный фильтр: могучий, но хрупкий

Когда автофильтра не хватает, в Excel есть «Данные» → «Дополнительно». Условия выписываются в отдельный диапазон на листе: условия в одной строке диапазона работают по И, в разных строках — по ИЛИ. Он умеет сложные сочетания и умеет выгружать результат в другое место, не трогая исходник.

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

Фильтры в конвертере: три условия один раз — и в шаблон

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

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

На шаге «Фильтры» добавьте условия: «Остаток больше 0», «Цена больше 100», «Наименование не содержит Итого». Условий может быть несколько, и складываются они по И: в итоговый файл пройдут только строки, где верны все. Превью сразу показывает, сколько строк отсеялось и какие именно.

Три условия фильтрации на шаге «Фильтры» в конвертере
Три условия, сложенные по И: остаток, цена и название
Превью результата: отфильтрованные строки исключены
Превью: видно, сколько строк отсеялось и какие именно

Главное отличие от Excel: настройка сохраняется в шаблоне (после регистрации). На следующей неделе приходит свежий прайс того же поставщика — загружаете файл, шаблон применяется сам, и те же три фильтра отрабатывают без единого клика. Исходный файл при этом не меняется никогда: конвертер читает его и собирает новый. Ошибочное условие ничего не портит — поправили и скачали заново.

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

Как понять, где И, а где ИЛИ?

Проговорите правило вслух. Если смысл «оставить только хорошее» — это И: верны должны быть все условия. Если смысл «любой из допустимых вариантов» — это ИЛИ, и такие условия обычно относятся к одному полю: склад Москва или Подольск, категория «Крепёж» или «Метизы».

«Итого» встречается и в названии обычного товара — как быть?

Условие «не содержит Итого» выкосит и его. Два выхода: задать условие точнее — «равно Итого», если служебные строки состоят из одного этого слова, — или снять строки-разделы ещё на шаге «Структура», тогда текстовый фильтр вообще не понадобится.

Фильтры применятся к следующему прайсу сами?

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

После фильтрации не осталось ни одной строки — это ошибка?

Обычно нет: сработало слишком строгое условие. Снимайте условия по одному и смотрите превью — так найдётся то, которое обнуляет выборку. Частая причина: цена или остаток прочитались как текст из-за пробелов-разделителей разрядов, и сравнение «больше 100» не срабатывает. Сначала почистите числовую колонку, потом фильтруйте.