Страницы: 1
RSS
Составить ТОП сотрудников
 
Коллеги, добрый день. Просьба помочь с задачей.
Нужно на листе ТОП сделать вывод в нужных ячейках ФИО и сколько он сделал. Составить так сказать ТОП сотрудников.
Соответственно, при изменении цифр ТОП должен меняться.
 
=НАИБОЛЬШИЙ() для Кол-во, а затем по ним ИНДЕКС()+ПОИСКПОЗ() для ФИО
Изменено: Sanja - 25.06.2019 11:30:49
Согласие есть продукт при полном непротивлении сторон
 
Sanja, честно говоря не совсем понял. Нужно ведь чтобы в ячейках ТОПа все формировалось в порядке убывания и ФИО соответствовали кол-ву.
 
Через PQ

ps. У вас Бутенко 2 раза повторяется. Либо ошибка, либо данные нужно ещё группировать
Изменено: Dark1589 - 25.06.2019 11:51:39
 
В Вашем примере, в ТОП-10 попадают (по кол-ву) 7-1 раз, 6 - 1 раз, 5 - 1 раз, 4 - 2 раза, 5 - 2 раза, а вот 2 у Вас аж 10 штук. Какие из них попадут в ТОП?
Нарисуйте в примере Как надо, вручную, без формул
Согласие есть продукт при полном непротивлении сторон
 
Dark1589, это не совсем то. Нужно только первые 10, не все сотрудники. Всех можно просто отфильтровать.
 
Sanja, может не так делаю, но ФИО не получается вывести.
 
Mikhail76, изменил файл в посте 4, теперь только 10 сотрудников
 
Вы ответьте на мой вопрос
Цитата
Sanja написал: а вот 2 у Вас аж 10 штук. Какие из них попадут в ТОП?
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Mikhail76 написал:
может не так делаю,
Вы не обьясняете как решается Ваша задача, допустим Вы не знаете как это автоматизировать в Excel, но как просто решить знаете?, кого внести в топ-10?
людей с показателем больше 2 выявить легко их 7 человек (но топ-10, в котором 7 человек не отвечает понятию списка топ 10)
а вот с показателем 2 еще 10!!! кого из этих 10 включить в топ 10, а кого нет (если данные будут опубликованы - тут не далеко дол личных обид со стороны тех 7-и, у которых такие же твердые 2, как у тех 3-х, что попадут в топ-10)
Изменено: Ігор Гончаренко - 25.06.2019 12:02:51
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, вы правы, я не подумал об этом. В файле сформировал без формул как хотелось бы. В топ все, кто больше 2 в порядке убывания.
 
Sanja, добавил постом выше.
 
Решение с дополнительным столбцом
Код
=B2+СТРОКА()/1024
и сортировкой по нему при помощи функции НАИБОЛЬШИЙ()
Код
=ИНДЕКС(Копилка!$A$1:$B$37;1024*ОСТАТ(НАИБОЛЬШИЙ(Копилка!$C$2:$C$37;Топ!$A3);1);1)
Таким образом ТОП дополняется до 10 счастливчиками, записанными в начале конце списка (чей номер строки больше).
Изменено: IKor - 25.06.2019 14:05:59
 
Странно, файл не привязался к посту выше.
 
IKor, к сожалению дополнительных столбцов добавить не могу. Выложенный фрагмент лишь малая часть таблицы.
В Вашем примере 1024 это что?
 
Тогда Вы можете воспользоваться формулами массива (вместо ENTER вводятся CTRL+SHFT+ENTER):
Код
=ИНДЕКС(Копилка!$A$1:$B$37;1024*ОСТАТ(НАИБОЛЬШИЙ(Копилка!$B$2:$B$37+СТРОКА(Копилка!$B$2:$B$37)/1024;Топ!$A3);1);1)
обратите внимание на то, что для столбца количество последнюю единицу следует заменить на двойку.

1024 =2^10 - это число, заведомо большее количества сотрудников в списке.
Степень двойки выбрана из-за того, что при делении на нее не формируется неточность вычислений с плавающей запятой, которая (без округления) может привести к ошибкам при выполнении обратной операции.
 
Для таких целей и формулы не нужны. Фильтр ->Числовой фильтр->первые 10->показать наибольших 10 элементов списка.
Всё.
 
Мартын, так не подходит.
 
Цитата
Mikhail76 написал:
так не подходит.
Что не подходит? Чем именно не подходит? Поставленная задача решена полностью. Что ещё надо?
 
Мартын, нужно сделать вывод на другом листе (книге) из исходника, в котором почти 300 строк (сотрудников).
 
Цитата
Mikhail76 написал:
вывод на другом листе
Фильтр, применить, копировать результат, вставить на любой лист, хоть сто раз.
Задача решена.
 
IKor, прошу прощения за криворукость, но у меня что то не получается.
 
Цитата
Mikhail76 написал:
вы правы, я не подумал об этом. В файле сформировал без формул как хотелось бы. В топ все, кто больше 2 в порядке убывания.
а думать Вы все еще не пытаетесь, подумать и сформулировать задачу
Цитата
Mikhail76 написал:
в котором почти 300 строк (сотрудников)
1. допустим в списке из 300 сотрудников у всех показатель больше 2 (допустим) Вам нужет тот же список, но просто посортированный?
2. допустим с показателем 4 есть 100 человек и с показателем 3 есть 100 человек. Вам нужен список из 200 человек?
3. приблизимся к Вашей ситуации с показателем 7 - 8 человек, с показателем 6 - 15, с показатекдем 5 - 21 .... что должно оказаться в Вашем топ-списке?
возможно примеры совершенно абсурдные, но программирование - это прежде всего однозначность, это точное представление о том, что должно получиться в итоге при ЛЮБЫХ ДАННЫХ в Вашем списке
Вы сами понимаете что должно быть в итоговом списке? знаете - расскажмие нам. может кто-то расскажет Excelю как составить список согласно Вашего рассказа
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, нужен список из 10 ФИО с максимальным числом. Если вдруг будут одинаковые числа, то ограничиться минимальным числом 3.  
 
Цитата
Mikhail76 написал:
но у меня что то не получается
0. Копируете формулу из левой верхней ячейки массива в память, а сам массив стираете
1. Вставляете формулу из памяти ТОЛЬКО в левую верхнюю ячейку таблицы и нажимаете CTRL+SHFT+ENTER
2. Протягиваете (или copy=>paste) формулу из левой в правую ячейку первой строки и заменяете в ней последнюю единицу двойкой - завершаете ввод CTRL+SHFT+ENTER
3. Протягиваете (или copy=>paste) формулы из первой строки в оставшиеся строки массива
4. profit
 
Цитата
Mikhail76 написал:
Если вдруг будут одинаковые числа, то ограничиться минимальным числом 3.
Всё-же неясно, как выбирать из тех, у кого одинаковые данные?
Если будет четверо с 10, пятеро с 7 и девятеро с 6, то получится ТОП : 10;10;10;10;7;7;7;7;7;(6;6;6;6;6;6;6;6;6)???????
Как в данном случае поступить? Кого из девяти достойных ставить на десятое место?
И таки я настаиваю на варианте с фильтром. Он всё делает за Вас, остаётся только скопировать результат в нужное место.
 
IKor, спасибо, все получилось!!!
Страницы: 1
Наверх