Excel - возврат нескольких уникальных запросов из диапазона, основанного на неуникальных критериях, то есть аналогичном ранге - PullRequest
0 голосов
/ 24 ноября 2018

Я поставлен в тупик, чтобы найти правильную формулу для точного возврата трех лучших результатов из диапазона во всех сценариях.Когда рейтинги не равны, все всегда хорошо, 1,2,3,4,5.Однако, когда первые 2 или 3 результата привязаны к первому месту, скажем, 1,1,1,4,5, я не могу найти правильную формулу для точного возвращения всех первых 3-х.

Рейтинг мест Ranking of Locations

Диапазон формул «Помощник» массива на E3: E6 отлично работает с диапазоном «Топ 3» на F3: F6, поэтому логика сортировки рангов работает нормально.

Вспомогательные массивы Helper Arrays

Верхний контрольный диапазон 3 Top 3 reference range

Последний шаг создания диапазона «Верхний 3 списка» в G3: G6, где это идет не так.Я перепробовал много вариантов, в том числе формулы массива, для которых я новичок, но ни один не работает.Лучшим на сегодняшний день является комбо MATCH & SMALL, но не очень хорошо с дубликатами.(см. ниже)

Топ 3 - список «Формула« не захватывает все 3 # 1 местоположения »'Top 3 - List' formula not grabbing all 3 #1 locations

Пожалуйста, если кто-то знает формулу, которая даст точное значение 'Список 3 лучших ", даже если есть повторяющиеся рейтинги?Спасибо!

PS: Это мой первый запрос.Stackoverflow помог мне МНОГИЕ раз

Без дубликатов -Все отлично

Один повторный счет - 1-я и 2-я вершины фактически # 1 дважды

Два дублирующих балла - 1-й, 2-й и 3-й топы на самом деле # 1 3x

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Этот ответ вернет три первых результата в том порядке, в котором они указаны в вашем списке.Может быть даже возможно исключить вспомогательную колонку, но я не тестировал это далеко.Я изменил ваш список так, чтобы он не просто захватывал первые три строки.В противном случае это будет так же просто, как сортировка списка и привязка к трем верхним строкам.

Вспомогательный столбец для получения трех верхних баллов

=AGGREGATE(14,6,$C$4:$C$8,ROW(A1))

Предполагается, что ваши данные находятся в B4: C8,Скопируйте формулу вниз, пока не получите ее в три строки.Совокупность с 14 отсортирует ваш список от самого большого до самого маленького.Строка (A1) вернет первое значение в отсортированном списке.когда он скопирован, он увеличится до строки (A2), поэтому он вернет второе значение в отсортированном списке и т. д.

Сопоставление отсортированного балла с именами

Это предполагает ваш верхтри списка результатов находятся в E4: E6

=INDEX(B:B,AGGREGATE(15,6,ROW($C$4:$C$8)/($C$4:$C$8=E4),COUNTIF($E$4:E4,E4)))

Он находит все номера строк, которые соответствуют числу в вашем отсортированном списке первых трех.При повторении происходит переход к следующему номеру строки в списке соответствия из-за счетчика.Номер строки затем передается в INDEX, который в свою очередь тянет имя.

POC

0 голосов
/ 24 ноября 2018

Из того, что я вижу, вы ссылаетесь на столбец Top 3, который всегда будет "1", если они связаны.Разве вы не должны использовать для этого столбец Helper?

=OFFSET($A$2,MATCH(SMALL($C$3:$C$7,E4),$C$3:$C$7,0),0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...