Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Ранжирование списка по нескольким условиям (без макросов)
 
Добрый день. Возникла необходимость проранжировать (указать место в рейтинге) компаниям из единого списка. Если с общим рейтингом все понятно (функция "ранг" ;) , то как быть когда нужно проранжировать отдельные компании из этого списка.
В моем примере одна группа компаний помечается в столбце B как "а", другая - "б".
Подскажите, пожалуйста, каким способом указанное можно сделать без применения макроса.
Спасибо!
 
В поиск - "Рейтинг продаж внутри товарной группы" ... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Большое спасибо!
Изменено: 1996Aseka - 25 Апр 2013 17:58:21
 
Формула массива:

=ЕСЛИ(B2="а";ПОИСКПОЗ(C2;НАИБОЛЬШИЙ(ЕСЛИ($B$2:$B$9="а";$C$2:$C$9);СТРОКА($A$1:ИНДЕКС(A:A;СЧЁТЕСЛИ($B$2:$B$9;"а")))););"")
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, спасибо. Формула сработала. Однако хотелось бы понять ее логику:
1. B2 = "а"
2. тогда ищем позицию ячейки, которая является наибольшей из "а" (по столбцу С)...
3. а вот дальше все эти манипуляции со строкой и индексом для меня за гранью...
подскажите, если не займет много времени...
Спасибо!
 
Цитата
1. B2 = "а"
Формула должна выдать результат, только в том месте, где это нужно.

Цитата
2. тогда ищем позицию ячейки, которая является наибольшей из "а" (по столбцу С)...
Функцией НАИБОЛЬШИЙ расставляем все данные, удовлетворяющие условию =ЕСЛИ($B$2:$B$9="а", по убыванию.

Цитата
3. а вот дальше все эти манипуляции со строкой и индексом для меня за гранью...
А вот ПОИСКПОЗ уже и создаёт ранжирование, т.к. находит порядковый номер позиции.
------------------
Читайте форум, справку и найдёте ответы на все вопросы.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Большое спасибо, Владимир.

...
Сижу полтора часа. Читаю справку, но никак все-таки догнать окончательно не могу:
Цитата
=ЕСЛИ(B2="а";ПОИСКПОЗ(C2;НАИБОЛЬШИЙ(ЕСЛИ($B$2:$B$9="а";$C$2:$C$9);СТРОКА($A$1:ИНДЕКС(A:A;СЧЁТЕСЛИ($B$2:$B$9;"а")))););"")


Цитата
=ЕСЛИ(B2="а";
это понятно

Цитата
ПОИСКПОЗ(C2;
здесь тоже ясно

Цитата
НАИБОЛЬШИЙ(...
позиция C2 будет вычисляться из диапазона ранжированного по убыванию, т.е. это 23, 21, 13

но как НАИБОЛЬШИЙ превращается в просматриваемый массив для ПОИСКПОЗа?

ведь как гласит справка НАИБОЛЬШИЙ "позволяет выбрать значение по его относительному местоположению", т.е. это вроде бы одно значение только

Цитата
СТРОКА($A$1:ИНДЕКС(A:A;СЧЁТЕСЛИ($B$2:$B$9;"а")))););"")
а смысл этой части формулы?


уффф. простите за тугодумность.
если не затруднит, проясните...
Спасибо!
Изменено: 1996Aseka - 28 Апр 2013 23:27:07
Страницы: 1
Читают тему (гостей: 1)
Наверх