Excel: получить лучшие 3 значения и имена - PullRequest
4 голосов
/ 07 апреля 2020

Я пытаюсь получить 3 лучших результата (результат формулы), а также имена аналитиков, которые получили эти (3 самых высоких) балла. Я пытался использовать RANK, SORT, LARGE и все они дают мне странные результаты.

Это результат, которого я добиваюсь. Обратите внимание, что количество аналитиков на балл варьируется.

desiredresult

Вот что я получаю, используя RANK.

rank

Вот что я получаю, используя SORT.

sort

Вот что я получаю, используя LARGE

large

Я не уверен, что я делаю неправильно. Может быть, я использую неправильную функцию, поэтому буду очень признателен, если кто-нибудь сможет указать мне правильное направление.

Ответы [ 4 ]

4 голосов
/ 07 апреля 2020

Опция с функцией AGGREGATE:

=AGGREGATE(14,6,($B$2:$B$11)*(COUNTIF($D$1:D1,$B$2:$B$11)=0),1)

enter image description here

Дополнительно для получения имен:

=IFERROR(INDEX($A$2:$A$11,AGGREGATE(15,6,(1/($D2=$B$2:$B$11))*ROW($B$2:$B$11)-1,COLUMN()-COLUMN($D$2))),"")

enter image description here

3 голосов
/ 07 апреля 2020

Если есть формула массива Dynami c:

=LARGE(UNIQUE(B1:B10),SEQUENCE(3))

enter image description here

Чтобы получить имена, используйте TEXTJOIN:

=TEXTJOIN(",",TRUE,IF($B$1:$B$10=C1,$A$1:$A$10,""))

enter image description here

3 голосов
/ 07 апреля 2020

Вот решение, использующее MAX. Второй и третий являются формулами массива.

enter image description here

Получите наибольшее значение:

=MAX(C2:C11)

Получите наибольшее значение, которое меньше чем значение выше (E2 - это ячейка выше):

{=MAX(IF($C$2:$C$11<E2,$C$2:$C$11))}

Получите наибольшее значение, которое меньше значения, указанного выше (E3 - ячейка выше):

{=MAX(IF($C$2:$C$11<E3,$C$2:$C$11))}
0 голосов
/ 07 апреля 2020

В современной версии Excel с массивами Dynami c вы можете использовать:

Для баллов:

D2: =LARGE(UNIQUE(Score),{1,2,3})

Для аналитиков:

D3: =INDEX(Analyst,-1+AGGREGATE(15,6,1/(Score=D$2)*ROW(Score),ROW(INDEX($A:$A,1,1):INDEX($A:$A,COUNTIF(Score,D$2),1))))

enter image description here

...