Excel - извлечение 5 лучших значений - PullRequest
0 голосов
/ 31 октября 2019

Я хотел бы извлечь 5 лучших игроков на основе продаж каждого сотрудника (без сводной таблицы / автофильтра).

См. Мой скриншот ввода и вывода

Снимок

Любые предложения, как получить первые 5 первых рангов (даже если они повторены; как показано на скриншотах)

Я подтвердил Извлечь вершину5 значений для каждой группы в списке без VBA , а также некоторых других ссылок.

Заранее спасибо за ваше время и внимание! Пожалуйста, дайте мне знать, если мой запрос неясен и / или если у вас есть какие-либо конкретные вопросы.

Ответы [ 3 ]

1 голос
/ 31 октября 2019

Попробуйте это. Как у вас в образце:

на ячейку E16:

=VLOOKUP(LARGE($C$3:$C$12,ROW()-15),CHOOSE({2/1},$A$3:$A$12,$C$3:$C$12),2,FALSE)

на ячейку F16:

=VLOOKUP(LARGE($C$3:$C$12,ROW()-15),CHOOSE({2/1},$B$3:$B$12,$C$3:$C$12),2,FALSE)

В ячейке G16:

=VLOOKUP(LARGE($C$3:$C$12,ROW()-15),$C$3:$C$12,1,FALSE)

Вы можете перетащить его вниз, чтобы отсортировать список. Надеюсь, это поможет!

1 голос
/ 31 октября 2019

Альтернативный подход с использованием Power Query , который доступен в Excel 2010 Professional Plus и всех более поздних версиях Excel.

Шаги:

  1. Добавьте вашу таблицу входных данных в Power Query Editor;
  2. Сортируйте таблицу по Sales, затем по Name;
  3. Добавьте Индексный столбец начиная с 1;
  4. Фильтр столбец Index для отображения значений, меньших или равных 5;
  5. Удалите столбец Index, тогда у вас должно получиться что-то вроде следующего:

Demo

Закрыть и загрузить вывод таблицы на новый лист (по умолчанию).

Вот запрос мощности Коды для справки. Все используемые функции находятся в графическом интерфейсе, поэтому он должен быть простым и понятным.

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Employee", type text}, {"Month", type text}, {"Sales", type number}}),
    #"Sorted Rows" = Table.Sort(#"Changed Type",{{"Sales", Order.Descending}, {"Employee", Order.Ascending}}),
    #"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 1, 1),
    #"Filtered Rows" = Table.SelectRows(#"Added Index", each [Index] <= 5),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Index"})
in
    #"Removed Columns"

Дайте мне знать, если у вас есть какие-либо вопросы. Приветствия:)

1 голос
/ 31 октября 2019

Это то, что я использую, чтобы отследить 5 лучших отсутствующих ... Редактировать в соответствии с вашими потребностями.

enter image description here

Формула в ячейке A1:

=INDEX(A$13:A52,AGGREGATE(15,6,ROW($1:$40)/(B$13:B$52=B1),COUNTIF(B$1:B1,B1)))

Формула в ячейке B1: БОЛЬШАЯ (B $ 13: B $ 52, ROW ())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...