Страницы: 1
RSS
Поиск 5-ти наибольших значений по одному условию
 
Уважаемые знатоки, прошу помощи. Подскажите как найти 5 наибольших значений по одному условию (в данном случае ФИО)
 
Можно такой вот формулой массива (вводить Ctrl+Shift+Enter)
Код
=НАИБОЛЬШИЙ((($G$3:$G$69)*--($F$3:$F$69=M3));L3)
Кому решение нужно - тот пример и рисует.
 
Двойной минус. Круто. Спасибо :) Сильно выручил
 
еще вариант
Код
=НАИБОЛЬШИЙ(ЕСЛИ($F$3:$F$69=M3;$G$3:$G$69;"");L3)
 
Простая (немассивная) формула.
Код
=LARGE(INDEX(($B$3:$B$69=I3)*($C$3:$C$69);0);H3)
Изменено: jakim - 17.06.2015 17:27:34
 
Цитата
Антон написал: Двойной минус. Круто.
Только зачем оно в данном случае.  ;)
 
Цитата
$F$3:$F$69=M3
для ТС -  слово (по данному условию) ИСТИНА или ЛОЖЬ превращает в число 1 или 0
Цитата
Алишер Шакиров написал: Только зачем оно в данном случае.  
для надёжности  :) ... в массивной формуле - необязательно
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi написал: в массивной формуле - необязательно
там есть знак * и поэтому -- не нужно
причем здесь массивная? или я что-то не понял
 
Цитата
Catboyun написал: или я что-то не понял
в данной массивной формуле, о которой шла речь - из поста2
там кстати можно обойтись и без столбца L, в 1-ю ячейку рядом с первой фамилией в столбце M
Код
=НАИБОЛЬШИЙ((($G$3:$G$69)*($F$3:$F$69=M3));СЧЁТЕСЛИ($M$3:M3;M3))
тоже ввести, как массивную... и растянуть вниз
Изменено: JeyCi - 18.06.2015 09:09:12
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Вот странно
=НАИБОЛЬШИЙ((($G$3:$G$69)*--($F$3:$F$69=M3));L3) и
=НАИБОЛЬШИЙ((($G$3:$G$69)*($F$3:$F$69=M3));СЧЁТЕСЛИ($M$3:M3;M3))
работают
а
=НАИМЕНЬШИЙ((($G$3:$G$69)*--($F$3:$F$69=M3));L3) и
=НАИМЕНЬШИЙ((($G$3:$G$69)*($F$3:$F$69=M3));СЧЁТЕСЛИ($M$3:M3;M3))
выдают нули..
Изменено: Alex1001 - 18.06.2015 10:58:13
 
Почему "странно"? Посмотрите, какой массив при пошаговом вычислении формулы формируется и посчитайте, сколько там нулей. Задаете в НАИМЕНЬШИЙ выводить 1-й наименьший - он вам и выводит 0. И так будет пока в параметрах формулы не зададите выводить номер наименьшего, который больше 0. :)
Кому решение нужно - тот пример и рисует.
 
В том то и прикол, что нулей в массиве нет) Файл тот же самый значения выбраны случайно в диапазоне больше нуля
Изменено: Alex1001 - 18.06.2015 11:05:52
 
Я говорил при пошаговом вычислении смотреть. Знаете, где это? Если нет - п.меню Формулы - вычислить формулу.
Кому решение нужно - тот пример и рисует.
 
Код
=НАИМЕНЬШИЙ(ЕСЛИ($F$3:$F$69=M3;$G$3:$G$69);L3)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Посмотрел.. в результате вычисления ($G$3:$G$69)*--($F$3:$F$69=M3)) получается почему то массив с толпой нулей, но второе наименьшее все равно 0 (как и 3е и 4ое) хотя ненулевые в нем тоже есть..
 
Alex1001,
А формула Икки тоже не работает?
 
Ну так правильно - среди этого массива (с толпой нулей и с ненулевыми значениями) вы задаете показывать 3-й наименьший элемент. Он вам честно показывает третий 0. :) И так будет показывать, пока нули не кончатся. :)
Кому решение нужно - тот пример и рисует.
 
Чего то я недогоняю.. Я почему то считал что в массиве 1;2;3;4;0;0;0;0 первый наименьший это 0 а второй это 1.. и как тогда выбрать реальные наименьшие по Петрову к примеру?
 
В примере, который вы привели, первый наименьший - 0, второй - 0 и только пятый - 1.
Для того, чтобы понять, какой по номеру будет наименьший больше 0 надо в этом массиве вычислить сколько элементов равно 0.
СЧЁТЕСЛИ(Массив;"=0"), прибавить к найденному количеству 1 и передать это, как номер наименьшего, который надо выводить в формулу.
Кому решение нужно - тот пример и рисует.
 
Всем спасибо! Особенно ikki! Респектуважухабл! Коротко и по существу, и все работает! И спасибо Пытливому за прояснение сути!
 
Типа такого:
Код
=НАИМЕНЬШИЙ((F3:F16=M3)*(G3:G16);СУММ(ЕСЛИ(F3:F16<>M3;1;0))+1)

формула массива (для данных из первоначального файла-примера
Кому решение нужно - тот пример и рисует.
 
Спасибо!
 
Посмотрите такой вариант.
В столбце "small" необходимо заменить формулу на такую
Код
=LARGE(INDEX(($F$3:$F$69=M3)*($G$3:$G$69);0);COUNTIF($F$3:$F$69;M3)-L3+1)
Изменено: jakim - 18.06.2015 21:28:03 (ошибка)
Страницы: 1
Наверх