Страницы: 1
RSS
Как подставить группу удовлетворяющую двум условиям
 
Доброго времени суток, уважаемые форумчане.
Есть вопрос. Имеется табличка в ячейках A:E. Так же имеется ценовая категория для каждой подгруппы продуктов. Как, отталкиваясь от средней цены продукта, подтянуть к нему наименование соответствующей ценовой категории (столбец М) ?
Заранее спасибо за помощь!
 
Как-то так (формула массивная, вводится Ctrl-Shift-Enter)
Код
=ЕСЛИОШИБКА(ИНДЕКС($M$6:$M$18;ПОИСКПОЗ(E3;ЕСЛИ($K$6:$K$18=A3;$L$6:$L$18);1)+1);"дешево")


 
Если предположить, что таблица с описанием ЦК будет всегда отсортирована по подгруппам товаров можно попытатся использовать конструкцию с функцией СМЕЩ
Изменено: Shikamaru - 16.04.2015 17:39:46
 
Цитата
Shikamaru написал: использовать конструкцию с функцией СМЕЩ
идея интересная, но мне кажется, для этого необходимо четко знать последовательность групп, чтобы не иметь возможность найти не только начало, но и конец группы. Или можно с использованием допстолбца
 
Всем спасибо за участие! МВТ, Ваша формула работает. Еще раз огромное спасибо!
 
Цитата
МВТ написал: ...необходимо четко знать последовательность групп, чтобы не иметь возможность найти не только начало, но и конец группы. Или можно с использованием допстолбца
Ваш вариант допускает ошибки, а мой - нет
Последовательность групп действительно имеет занчение - я же так и написал

Цитата
Shikamaru написал: Если предположить, что таблица с описанием ЦК будет всегда отсортирована по подгруппам товаров
Забыл добавить, что сортировка должна быть двухуровневой: 1-й: по группам товаров, как я и говорил (при этом в исходном файле нужно внести корру и дописать группу товаров в обе строки "свыше 1500 руб." и "свыше 1200 руб.", чтобы они также принадлежали какой-нибудь группе), 2-й: по цене, в данном случае оно так и есть.

Начало и Конец группы несложно определить - для начала можно использовать функцию ПоискПоз, а для конца - СчётЕсли, тем самым определив начальную строку, где встречается напр. фрукты, и конечную - сколько фруктов вообще насчитало.
предлагаю использовать вот такую конструкцию
=ИНДЕКС(СМЕЩ(R5C13;ПОИСКПОЗ(RC1;R6C11:R100C11;0);0;СЧЁТЕСЛИ(R6C11:R100C11;RC1);1);СЧЁТЕСЛИ(СМЕЩ(R5C12;ПОИСКПОЗ(RC1;R6C11:R100C11;0);0;СЧЁТЕСЛИ(R6C11:R100C11;RC1);1);"<"&RC5)+1)

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

Сорри, могу вырезать 37 символов
 
Цитата
Shikamaru написал: У вас лимит на вес сообщений в форуме???
Нет, у нас желание, чтобы сообщения были читабельны.
 
Цитата
Shikamaru написал: Ваш вариант допускает ошибки
Позвольте полюбопытствовать: где именно?
 
Ошибка появляется для любого фрукта до 500 р., или овоща до 200 р., так как в просматриваемом диапазоне функция поискпоз не находит нужного значения

Вы любязно замазали его заглушкой "дешево", но я так понимаю для каждой группы товаров нужно вставить свой вариант ЦК: для фруктов "до 500р.", для овощей "до 200р."

Или усложнить механизм подбора заглушки, или работает с ошибками
 
Shikamaru, ну, если Вас НАСТОЛЬКО покоробила моя "заглушка", то тогда - вот так (формула все еще массивная)
Код
=ЕСЛИОШИБКА(ИНДЕКС($M$6:$M$18;ПОИСКПОЗ(E7;ЕСЛИ($K$6:$K$18=A7;$L$6:$L$18);1)+1);"менее " & НАИМЕНЬШИЙ(ЕСЛИ($K$6:$K$18=A7;$L$6:$L$18);1)& " руб.")

 
=))))) вот теперь работает =))))))))
Страницы: 1
Наверх