Создать поиск по индексу, учитывающий дубликаты - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть фиктивный набор данных в Excel, который выглядит следующим образом.

enter image description here

Для удобства предположим, что этот диапазон вставляется из ячейки A1 в B7 врабочий лист.

Я хочу создать диапазон, который показывает мне 5 самых высоких показателей по идентификатору.Следовательно, конечный продукт должен выглядеть следующим образом:

enter image description here

Для этого я использовал формулу индекса вместе с функцией соответствия, содержащей функцию Large, которая дает мнекоторое является наибольшим значением KТак, например, для первого результата в столбце ID ниже я использую:

=INDEX($A$2:$B$7,MATCH(LARGE($B$2:$B$7,1),$B$2:$B$7,0),1)

Аналогично для первого результата в столбце Количество ниже я использую

LARGE($B$2:$B$7,1)

Если я применю это ко всем своим ячейкам, меняя значение K на строку, я получу конечный результат, похожий на:

enter image description here

AsВы можете видеть, что результат работает хорошо для идентификаторов, которые не имеют одинаковое количество.Однако на тех, где количество совпадает, я получаю дубликаты.Следовательно, я ищу функцию, которая ищет, собирается ли она выводить дубликат, а затем проверяет, есть ли другой идентификатор с тем же значением Count.

Я полагаю, что это может быть сложной задачей в базовом Excel, новозможно, есть способ сделать это в VBA?Однако я не очень знаком с VBA, и я не могу найти что-либо в интернете вокруг этого.Кто-нибудь может понять, как это сделать?

Большое спасибо!

1 Ответ

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

Свяжите ваш вывод идентификатора с выходом Count Ouput, используя COUNTIF (), чтобы вернуть правильный k.

=INDEX(A:A,AGGREGATE(15,7,ROW($A$2:$A$7)/($B$2:$B$7=F2),COUNTIF($F$2:F2,F2)))

enter image description here

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