KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Как создать в Excel динамический список топ-10 или топ-N?

АвторСяоянДата изменения

Во многих проектах и бизнес-процессах часто возникает необходимость ранжировать людей, организации, продукты или другие объекты по их эффективности или числовым показателям. «Список лучших» помогает выделить наиболее успешные записи — например, студентов с наивысшими оценками, топ-менеджеров по продажам или подразделения с максимальной выручкой. Допустим, у вас есть таблица с оценками студентов, и вы хотите динамически получать топ-10 по результатам — для награждения, анализа или мониторинга образовательных достижений, как показано на снимке экрана ниже. Создание динамического списка лучших 10 (или N) в Excel позволяет автоматически обновлять результаты при изменении исходных данных, экономя время и минимизируя ошибки, связанные с ручным ранжированием. В этом руководстве представлены несколько практических решений — с использованием формул, сводных таблиц и макросов VBA — которые помогут вам легко создать такой динамический список и эффективно решать разнообразные задачи анализа данных.

создание динамического списка ТОП-10 или N

Создание динамического списка лучших 10 в Excel

Создание динамического списка лучших 10 в Office 365

Создание динамического списка лучших 10 с помощью Сводная таблица

Создание динамического списка лучших 10 с использованием VBA

 

Создание динамического списка лучших 10 в Excel

В Excel 2019 и более ранних версиях создание динамического списка лучших 10 (или первых N) требует комбинирования формул для одновременного извлечения как топ-значений, так и связанных с ними имён или идентификаторов. Это проверенное решение идеально подходит для случаев, когда список должен автоматически обновляться при изменении исходных данных. Ниже описано, как реализовать такой подход с помощью классических формул Excel. Они обеспечивают отличную гибкость, не нуждаются в специальных надстройках, но их настройка немного сложнее по сравнению с современными функциями динамических массивов.

Формулы для создания динамического списка лучших 10

1. Сначала извлеките первые 10 значений из диапазона. Введите приведённую ниже формулу в пустую ячейку (например, G2), а затем перетащите маркер заполнения вниз, чтобы создать динамический список из 10 лучших значений. См. снимок экрана:

=LARGE($B$2:$B$20,ROWS(B$2:B2))
Примечание: здесь B2:B20— диапазон баллов или значений, а B2— первая ячейка в этом столбце. Настройте эти ссылки на ячейки в соответствии с размером и расположением Ваших данных.

применение формулы для извлечения значений ТОП-10

2. Чтобы отобразить соответствующие имена (или идентификаторы), связанные с этими лучшими значениями, введите следующую формулу в ячейку F2. Поскольку это формула массива, после ввода нажмите клавиши Ctrl + Shift + Enter, чтобы подтвердить её ввод. Эта формула находит имена, соответствующие только что извлечённым лучшим значениям:

=INDEX($A$2:$A$20,SMALL(IF($B$2:$B$20=G2,ROW($B$2:$B$20)-ROW($B$1)),COUNTIF($G$2:G2,G2)))
Пояснение параметров:
A2:A20— диапазон, из которого извлекаются имена;
B2:B20— диапазон баллов или значений;
G2— максимальное значение из приведённой выше формулы;
B1— заголовок списка значений, используемый для смещения в расчётах функции СТРОКА.
Эта формула динамически связывает максимальные значения с соответствующими именами. Если диапазон значений содержит дубликаты, функция СЧЁТЕСЛИ гарантирует, что каждое совпадающее имя отобразится только один раз вместе со своим баллом.

использование формулы для получения относительного элемента

3. После получения первого результата выделите формулу в ячейке F2 и перетащите маркер заполнения вниз, чтобы скопировать её во все необходимые строки. Так вы сможете динамически отображать имена всех лучших записей, соответствующих этим оценкам. См. снимок экрана:

перетащите и заполните формулу в другие ячейки

скриншот kutools for excel ai

Раскройте магию Excel с помощью KUTOOLS AI

  • Интеллектуальное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это доступно через простые команды.
  • Пользовательские формулы: создавайте индивидуальные формулы для оптимизации рабочих процессов.
  • Программирование на VBA: Пишите и внедряйте код VBA легко и без усилий.
  • Анализ формул: Легко разбирайтесь даже в самых сложных формулах.
  • Перевод текста: Ломайте языковые барьеры прямо в ваших таблицах.
Расширьте возможности Excel с помощью инструментов на базе ИИ.Скачать сейчаси ощутите эффективность, как никогда раньше!

Формулы для создания динамического списка лучших 10 с критериями

В некоторых аналитических задачах может понадобиться список лучших, включающий только записи, соответствующие определённым критериям — например, ограничение топа конкретной группой, командой или категорией. Допустим, вы хотите выявить 10 лучших оценок исключительно для «Класса 1» из общей таблицы, содержащей данные по нескольким классам. Вот как в таком случае можно использовать формулы:

создание динамического списка ТОП-10 с критериями

1. Извлеките первые 10 значений, соответствующих заданному критерию (например, «Класс 1»), из набора данных. Введите эту формулу в целевую ячейку (например, J2):

=LARGE(IF($B$2:$B$25=$F$2,$C$2:$C$25),ROW(I2)-ROW(I$1))

2. После ввода формулы нажмите клавиши Ctrl + Shift + Enter, чтобы подтвердить её как формулу массива, а затем перетащите маркер заполнения вниз для заполнения остальных ячеек. Формула вернёт 10 самых высоких значений, соответствующих выбранному условию (например, все оценки из «Класса 1»).

применение формулы для извлечения значений ТОП-10 на основе критериев

3. Чтобы отобразить соответствующие имена для этих максимальных значений в соответствии с вашими критериями, скопируйте приведённую ниже формулу в ячейку I2 и нажмите Ctrl + Shift + Enter, чтобы ввести её как формулу массива. Затем протяните формулу вниз — и вы получите полный список имён.

=INDEX($A$2:$A$25,SMALL(IF(($C$2:$C$25=J2)*($B$2:$B$25=$F$2),ROW($C$2:$C$25)-ROW($C$1)),COUNTIF(J2:$J$2,J2)))

использование формулы для создания динамического списка ТОП-10 в Office 365

Обязательно скорректируйте диапазоны в формулах, чтобы они точно соответствовали структуре ваших реальных данных. Учтите: использование больших диапазонов с формулами массива может замедлить производительность. Если среди ваших топ-10 окажутся дублирующиеся значения, формула корректно обработает повторяющиеся баллы и отобразит несколько имён студентов при равных оценках.


Создание динамического списка лучших 10 в Office 365

Хотя в более ранних версиях Excel для создания подобных списков приходилось комбинировать несколько функций с использованием формул массива, в Office 365 (и Excel 2021) появились динамические функции массивов — такие как ИНДЕКС, СОРТИРОВКА, ПОСЛЕДОВАТЕЛЬНОСТЬ и ФИЛЬТР, — которые значительно упрощают эту задачу. Благодаря им легко создавать динамические списки лучших 10, минимизировать ошибки и эффективно работать с таблицами, которые часто расширяются или изменяются. Если ваши данные постоянно обновляются, эти функции ускорят анализ и помогут быстрее принимать бизнес-решения.

Формула для создания динамического списка лучших 10

Чтобы получить и отобразить динамический список лучших 10 с помощью Office 365, введите приведённую ниже формулу в нужную ячейку. Просто адаптируйте диапазоны и числовые параметры под свои задачи — формула автоматически обновит топ-10 при любом изменении исходных данных.

=INDEX(SORT(A2:B20,2,-1),SEQUENCE(10),{1,2})

Просто нажмите клавишу Enter — и полный список лучших из десяти появится мгновенно, оставаясь динамическим: любые добавленные данные или изменённые баллы сразу же отразятся в рейтинге.

использование формулы для создания динамического списка ТОП-10 в Office 365

Советы:

Функция СОРТИРОВКА:

=SORT(array, [sort_index], [sort_order], [by_col])

  • массив: диапазон, который нужно отсортировать.
  • [sort_index]: номер столбца для сортировки. В типичной таблице оценок это, как правило, второй столбец.
  • [sort_order]: укажите 1 для сортировки по возрастанию или -1 для сортировки по убыванию. Для наилучших результатов рекомендуем использовать -1.
  • [by_col]: указывает, следует ли выполнять сортировку по столбцам (ИСТИНА) или по строкам (ЛОЖЬ или не указано).

Например: СОРТИРОВКА(A2:B20;2;-1) сортирует диапазон A2:B20 по второму столбцу в порядке убывания.


Функция ПОСЛЕДОВАТЕЛЬНОСТЬ:

=SEQUENCE(rows, [columns], [start], [step])

  • строки: количество возвращаемых строк, например, 10 — для списка топ-10.
  • [columns]: (необязательно) количество возвращаемых столбцов.
  • [start]: (необязательно) начальное значение.
  • [step]: (необязательно) значение приращения.

Функция ПОСЛЕДОВАТЕЛЬНОСТЬ(10) генерирует числа от 1 до 10, чтобы функция ИНДЕКС могла выбрать первые 10 отсортированных результатов.

Объединяя эти функции, получаем динамический двухстолбцовый список лучших 10: =INDEX(SORT(A2:B20,2,-1),SEQUENCE(10),{1,2}).


Формула для создания динамического списка лучших 10 с учётом критериев

Если вам нужно извлечь топ-10 для конкретной группы, например «Класс 1», расширенные функции Office 365 позволяют создать список лучших N, включая только строки, соответствующие заданному условию. Разместите приведённую ниже формулу в нужном месте и при необходимости скорректируйте диапазоны и ячейку с критерием:

=INDEX(SORT(FILTER(A2:C25,B2:B25=F2),3,-1),SEQUENCE(10),{1,3})

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

другая формула для создания динамического списка ТОП-10 с критериями в Office 365

Советы:

Функция ФИЛЬТР:

=FILTER(array, include, [if_empty])

  • массив: диапазон ячеек, который будет отфильтрован.
  • include: условие (например, принадлежность к заданному классу) для включения.
  • [if_empty]: (необязательно) что показывать, если ни один результат не соответствует заданным критериям.

=FILTER(A2:C25,B2:B25=F2) возвращает только те строки, в которых значения в столбце B совпадают со значением из ячейки F2.


Создание динамического списка лучших 10 с помощью Сводная таблица

Сводная таблица: автоматическое интерактивное отображение топ-N результатов

Альтернативный способ создания динамического списка лучших N — использование сводной таблицы Excel. Этот метод особенно эффективен при работе с большими объёмами данных, интерактивном анализе (например, быстрой настройке количества отображаемых лучших элементов или применении фильтров), а также когда важно избежать сложных формул. Сводные таблицы просты в использовании и автоматически обновляются при изменении исходных данных, что делает их идеальным решением для панелей мониторинга и отчётов, предназначенных для совместного использования.

Чтобы создать динамический список лучших N с помощью Сводная таблица:

  1. Щелкните в любом месте внутри таблицы данных, затем перейдите в меню Вставка > Сводная таблица.
  2. В диалоговом окне сводной таблицы выберите место размещения сводной таблицы и нажмите кнопку ОК.
  3. Перетащите поле «Имя» (или аналогичный идентификатор) в область Строки.
  4. Перетащите поле «Оценка» (или столбец значений) в область Значения. По умолчанию будет установлено «Сумма по» или «Количество по». Для списков лучших обычно требуется «Сумма» или «Максимум». При необходимости измените вычисление поля значений: щелкните правой кнопкой мыши и выберите пункт Итоги по.
  5. Отсортируйте столбец «Оценка» по убыванию: щёлкните правой кнопкой мыши по значению и выберите Сортировка > Сортировать по убыванию (от наибольшего к наименьшему).
  6. Чтобы ограничить вывод первыми N результатами, щелкните стрелку раскрывающегося списка в метках строк, выберите пункт Фильтры значенийПервые 10…, укажите нужное количество (например, первые 10) и поле для фильтрации, затем нажмите кнопку ОК.

Теперь ваша сводная таблица отображает динамический список лучших 10 (или любого другого значения N, которое вы укажете). Чтобы изменить значение N, просто снова откройте настройки фильтра. Если данные изменятся, обновите сводную таблицу — и рейтинги мгновенно актуализируются.

Преимущества этого подхода — быстрая настройка, удобная сортировка и интерактивная настройка. Однако сводная таблица не может автоматически добавлять соответствующие строки из других столбцов, если они не включены в области строк или значений. Опытные пользователи могут дополнительно настраивать отчёты, применяя группировку, создавая срезы или интегрируя фильтр «Лучшие N» в панели мониторинга.


Создание динамического списка лучших 10 с помощью VBA

Макрос VBA: автоматическое создание и обновление списка лучших N

Использование макроса VBA — идеальное решение для пользователей, работающих с объёмными или часто обновляемыми данными, где необходимо автоматизировать извлечение и обновление динамического списка лучших N. Макросы отлично справляются с задачей сокращения рутинных операций и обеспечивают стабильную согласованность результатов. Вы можете создать процедуру, которая при каждом запуске будет сортировать данные и копировать только первые N строк в указанное место.

Чтобы использовать макрос VBA для создания динамического списка лучших N, выполните следующие действия:

  1. Щелкните Разработчик > Visual Basic, чтобы открыть редактор VBA. (Если вкладка «Разработчик» не отображается, перейдите в меню Файл > Параметры > Настроить ленту и включите параметр «Разработчик».)
  2. В окне VBA выберите Вставка > Модуль, чтобы добавить новый модуль.
  3. Вставьте следующий код VBA в модуль:
Sub ExtractTopNList()
'Updated by Extendoffice 2025/7/24
    Dim DataRange As Range
    Dim OutputRange As Range
    Dim N As Integer
    Dim ws As Worksheet, tempWS As Worksheet
    Dim xTitleId As String
    Dim LastCol As Long
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set ws = ActiveSheet
    Set DataRange = Application.InputBox("Select the full data range to analyze (including headers)", xTitleId, ws.UsedRange.Address, Type:=8)
    Set OutputRange = Application.InputBox("Select the top-left cell of the output area", xTitleId, "", Type:=8)
    N = Application.InputBox("How many top items to extract? (Enter a positive integer)", xTitleId, 10, Type:=1)
    
    If DataRange Is Nothing Or OutputRange Is Nothing Or N < 1 Then Exit Sub
    
    ' Create a temporary worksheet to avoid sorting original data
    Set tempWS = Worksheets.Add(After:=Worksheets(Worksheets.Count))
    DataRange.Copy tempWS.Range("A1")
    
    ' Determine last column for sorting key
    LastCol = DataRange.Columns.Count
    
    ' Sort in temporary sheet
    tempWS.UsedRange.Sort Key1:=tempWS.Cells(1, LastCol), Order1:=xlDescending, Header:=xlYes
    
    ' Copy headers and top N rows to output
    tempWS.Rows(1).Copy Destination:=OutputRange
    tempWS.Range("A2").Resize(N, LastCol).Copy Destination:=OutputRange.Offset(1, 0)
    
    ' Optional: Delete temporary sheet
    Application.DisplayAlerts = False
    tempWS.Delete
    Application.DisplayAlerts = True
    
    Application.CutCopyMode = False
End Sub

4. Перед запуском макроса убедитесь, что ваши данные правильно организованы в виде таблицы с заголовками. Нажмите F5 или щёлкните кнопку Кнопка «Выполнить» в редакторе VBA. Вам будет предложено:

  1. Выберите диапазон данных (включая заголовки для корректной сортировки).
  2. Выберите ячейку, в которую будут вставлены результаты.
  3. Введите число N (например, 10 — чтобы получить первые 10).

Макрос скопирует первые N записей (включая заголовки) именно туда, куда вы укажете.

При первом запуске рекомендуем использовать резервную копию книги. Если возникнут ошибки — например, из-за выбора неверного диапазона, — просто повторно запустите макрос и убедитесь, что диапазоны и структура данных указаны корректно.

Это решение идеально подходит для автоматизации регулярных отчётных задач, создания панелей мониторинга или быстрого обновления списков лучших N — без ручных формул и сортировки. Вы можете дополнительно настроить скрипт VBA, чтобы реализовать более сложную логику ранжирования, например сортировку по указанному столбцу или экспорт результатов в другую книгу.

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


В заключение, Excel предлагает разнообразные способы создания и поддержки динамического списка лучших N — от классических формул до современных функций Office 365, сводных таблиц для интерактивного анализа и макросов VBA для продвинутой автоматизации. Выберите подход, который наилучшим образом соответствует вашему рабочему процессу и объёму данных: формулы отлично справляются с большинством ручных анализов, функции Office 365 обеспечивают максимальную простоту и гибкость, сводные таблицы идеальны для быстрых и гибких сводок, а VBA особенно эффективен при автоматизации масштабных и повторяющихся задач ранжирования. Не забывайте регулярно проверять корректность формул или кода и своевременно адаптировать ссылки на ячейки при изменении структуры данных по мере развития проекта.


Лучшие инструменты повышения продуктивности в Office

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 15:12 Текстовыеинструменты(Добавить текст,Удалить определенные символы, …)|   50+Типыдиаграмм(Диаграмма Ганта, …)|   40+ Практические формулы(Рассчитать возраст на основе даты рождения, …)|   19 Инструментывставки(Вставить QR-код,Вставка изображения по пути, …)|   12 Инструментыпреобразования(Преобразовать в слова,Конвертация валют, …)|   7 Объединить и разделитьИнструменты(Расширенное объединение строк,Разделить ячейки, …)|… и многое другое
Используйте Kutools на предпочитаемом языке — поддержка английского, испанского, немецкого, французского, китайского и ещё 40+ языков!

Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек