Извлечение первых пяти максимальных уникальных значений

Я провожу лигу Nerf на вечеринке и хочу, чтобы в моей электронной таблице отображались пять лучших участников.

Участникам разрешено неограниченное количество заявок, и учитывается только их лучший результат. Записи собираются в Таблицах Google и Топ-5 опубликованы на экране киоска .

Вот некоторые примеры данных:

- **Full Name,Score**
- Test Test,3
- Test2 Test2,1
- Test3 Test3,10
- Test4 Test4,3
- Test5 Test5,42
- Test5 Test5,500
- Test6 Test6,20

Вот формула, которая у меня есть (благодаря tigeravatar):

=INDEX($A$2:$A$28,MATCH(1,INDEX(($B$2:$B$28=LARGE($B$2:$B$28,ROWS(I$1:I1)))*(COUNTIF(I$1:I1,$A$2:$A$28)=0),),0))

Эта формула показывает все максимальные значения — если, например, у одного человека есть 5 записей, которые выше, чем у всех остальных, они все будут учтены.

В «пятерку лучших» должны входить только работы с наибольшим количеством баллов от пяти разных участников.

Что мне нужно сделать, чтобы показать только лучшие работы, предоставленные каждым участником?


person James Geddes    schedule 20.10.2014    source источник
comment
В Excel вы можете просто сводную таблицу. Перетащите имя в строки; Оценка для значений и установите значения, чтобы показать МАКС.   -  person Ron Rosenfeld    schedule 20.10.2014
comment
Можно ли делать все, что вам нужно, только в Google Таблицах? Вы можете использовать что-то вроде =QUERY(A2:B28,"select A, max(B) group by A order by max(B) desc limit 5 label max(B) ''",0)   -  person AdamL    schedule 21.10.2014
comment
Да, я хотел бы сохранить все в электронной таблице Google. Похоже, эта формула делает именно то, что мне нужно! Спасибо AdamL!   -  person James Geddes    schedule 21.10.2014
comment
Спасибо @pnuts и рад помочь Джеймсу.   -  person AdamL    schedule 16.02.2015


Ответы (2)


Кажется, что формула, предложенная @AdamL, отвечает требованиям:

=QUERY(A2:B28,"select A, max(B) group by A order by max(B) desc limit 5 label max(B) ''",0)
person Community    schedule 25.09.2015

=QUERY(A2:B28,"select A, max(B) group by A order by max(B) desc limit 5 label max(B) ''",0)

‹= Работает без чехла.

если у вас есть специальный символ в ячейках столбца A, вывод/результат функции неверен.

Например,

если значение в A1 равно HN_123_1/2, вывод неправильный. Здесь используются специальные символы «_» и «/».

Надеюсь, это поможет.

person Võ Tự Đức    schedule 28.12.2017