Новости:

Подпишитесь на рассылку новых сообщений форума через службу рассылок: Subscribe.ru

Главное меню

Простенький анализатор прайсов

Автор EvgenyZ, 01.11.2011, 14:42

« назад - далее »

EvgenyZ

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

Спасибо.

sma80

Например так.
Неизвестно, в каком виде у вас прайсы поставщиков, но в любом случае нужен идентификатор для товаров. В этом примере добавлен столбик в ваше итоговое сравнение, а в прайсах поставщиков проставлены ссылки на него - разовая объемная работа (если прайсы поставщиков не меняют структуру из раза в раз, хотя и в этом случае цены в ваш файл можно переносить так же формулой суммесли() либо ВПР(_)).
А, да, цветовое выделение просто условным форматирование сделано.

EvgenyZ

sma80, благодарю. Возникло несколько вопросов.
1. В прайсах ссылки ( к примеру =Итоговый!A10)  проставляются вручную. А как сделать так, чтобы программа сопоставляла сама одинаковые коды на разных листах и переносила информацию на сводный лист?
2. Цветовое выделение сделано условным выделением - это как, просто закаршена ячейка?

sma80

EvgenyZ, в прайсах ссылки проставлены вручную именно потому, что изначально надо сопоставить товар - при всем желании программа сама не догадается, что, например, "болт100" в вашей таблице и "Болт М 16х90-100" в чьем-то прайсе - это одно и то же (не думаю, что тут можно каким-то образом настроить автоматический анализ и сопоставление позиций). Именно по этому коду в сводную таблицу и вытаскиваются цены по конкретному товару (в примере с помощью суммесли(), т.к. вряд ли в одном и том же прайсе будет встречаться неоднократно одна и та же позиция, а если будет, то лучше ВПР(_)).
условное_форматирование удобная штука, попробуйте с помощью F1 разобраться:) В принципе в любую ячейку свода (именно где цены) встаньте и выберите пункт Формат/условное_форматирование, все понятно будет.

EvgenyZ

С помощью условного форматирования, задача выделения цветом  выполнена не совсем правильно. Реализован случай, когда из всего массива данных выбираются наибольшее и наименьшее значение, в то время как эти значения необходимо  выделить цветом в каждой строке, т.е. нужно выделить наибольшую и наимменьшую цену на болт 6х20 (и так на куждую позицию) среди всех поставщиков. Пробовал в условном форматировании и значение менять и формулу, пока не выходит.

ShAM

Цитата: EvgenyZ от 09.11.2011, 09:43
необходимо  выделить цветом в каждой строке, т.е. нужно выделить наибольшую и наимменьшую цену на болт 6х20 (и так на куждую позицию).
В ячейке D8 Формат-условное_форматирование:
Вместо =МАКС($D$8:$J$15) поставить =МАКС($D8:$J8)
Вместо =МИН($D$8:$J$15) поставить =МИН($D8:$J8)
И распространить на весь диапазон D8-J15

EvgenyZ

Да, теперь все работает. В качестве эксперимента перенос данных на сводный лист из прайсов реализовал с помощью =ВПР(_). С условным форматированием цветом наибольших и наименьших значений по строке есть маленький нюанс: если в заданной ячейке нет данных, то всводном листе формула возвращает ошибку #Н/Д и не выделяет цветом необходимые значения уже по всей строке. Проблему решил с использованием =ЕСЛИ() и =ЕОШИБКА(). Нужно заминить #Н/Д на числовое значение, в моем случае это нуль. У меня получилось так:

=ЕСЛИ(ЕОШИБКА(ВПР(A6;зитар!$A$1:$G$100;7;0));0;ВПР(A6;зитар!$A$1:$G$100;7;0))

EvgenyZ

При подготовке прайсов для их обработки с помощью функции =ВПР(_), необходимо каждому товару задать свой индивидуальный код. Допустим, если это "болт 6х30" в качестве кода выбрал b630. И кажый код прходилось набивать вручную. Вопрос: можно ли более-менее автоматизировать этот процесс, а именно, чтобы хотябы числовая часть кода бралась из ячейки, в которой указанн размер болта? По примеру, из болта (понятное дело, такого не существует, сделано для наглядности) 6,3х10,6 получить в соседней ячейке 63106 (перенести только цифры). Пример прилагаю.

sma80

Самый просто способ с минимумом формул - копируете в свободный столбец столбик B, автозаменой заменяете иксы и запятые на пустое значение и рядом в столбике вставляете формулу сцепить("b";...).

EvgenyZ

Автозамена работает не только при вводе информации? Ею можно редактирвать уже введенную инфу? Может есть другой способ решения поставленной выше задачи, тк разделение параметров , например болта, у разных  поставщиков может отличаться (/*-.,х) и при замене их на пробел, во всех последующих документах вместо этих символов будет пробел.

sma80

Автозамена - в меню Правка пункт Заменить (если 2003) или в меню Главная пункт крайний справа Найти и выделить - Заменить (если 2007)... Почему проще так заменить - меньше времени уйдет, чем формулы менять с учетом разнообразных символов, которые у разных поставщиков могут быть. Просто выделяете весь столбик (скопированный, который потом можно удалить, а не исходный), и в нем делаете замену, но только не на пробел, а ну пустое значение