Как создать динамический список топ-10 или N в Excel?
Во многих проектах и бизнес-процессах часто требуется ранжировать людей, организации, продукты или другие сущности на основе их производительности или числовых значений. «Список лучших» служит для выделения записей с самыми высокими показателями, таких как лучшие ученики по оценкам, лучшие продавцы или отделы с наибольшим доходом. Например, у вас может быть таблица с оценками студентов, и вы хотите динамически извлечь десять лучших результатов для награждения, анализа или мониторинга образовательных результатов, как показано на скриншоте ниже. Создание динамического списка топ-10 или N в Excel позволяет вам автоматически видеть обновленные результаты при изменении данных, экономя время и снижая риск ошибок при ручном ранжировании. Это руководство представляет несколько практических решений — включая формулы, сводные таблицы и макросы VBA — чтобы помочь вам построить динамический список топ-10 или N для эффективного удовлетворения различных потребностей анализа данных.
Создание динамического списка топ-10 в Excel
- Формулы для создания динамического списка топ-10
- Формулы для создания динамического списка топ-10 с критериями
Создание динамического списка топ-10 в Office 365
- Формула для создания динамического списка топ-10
- Формула для создания динамического списка топ-10 с критериями
Создание динамического списка топ-10 с помощью сводной таблицы
Создание динамического списка топ-10 в Excel
В Excel 2019 и более ранних версиях создание динамического списка топ-10 (или топ-N) предполагает объединение формул для одновременного извлечения как максимальных значений, так и связанных с ними имен или ID. Это решение широко используется и подходит для ситуаций, когда вы хотите, чтобы список обновлялся автоматически при изменении данных. Следующие операции демонстрируют, как этого добиться с помощью классических формул Excel. Эти формулы обеспечивают гибкость и не требуют специальных надстроек Excel, но процесс настройки немного сложнее по сравнению с некоторыми современными функциями динамических массивов.
Формулы для создания динамического списка топ-10
1. Для начала вам нужно извлечь первые 10 значений из вашего диапазона значений. Введите следующую формулу в пустую ячейку (например, G2). После ввода формулы перетащите маркер заполнения вниз для создания динамического списка топ-10 значений. См. скриншот:
2. Затем, чтобы отобразить соответствующие имена (или ID), связанные с этими максимальными значениями, введите следующую формулу в ячейку F2. Это формула массива, поэтому после ввода нажмите Ctrl + Shift + Enter для подтверждения. Эта формула находит имена, соответствующие ранее извлеченным максимальным значениям:
- A2:A20 — это диапазон, из которого будут извлекаться имена;
- B2:B20 — это диапазон баллов или значений;
- G2 — это максимальное значение из формулы выше;
- B1 — это заголовок списка значений и используется для расчета смещения в функции СТРОКА.
Эта формула динамически связывает самые высокие значения с их именами. Если ваш диапазон значений содержит дубликаты, функция СЧЁТЕСЛИ гарантирует, что каждое совпадающее имя появится только один раз с его оценкой.
3. После извлечения первого результата выберите формулу в ячейке F2 и перетащите маркер заполнения вниз, чтобы скопировать формулу во столько строк, сколько необходимо. Это расширит ваши результаты, динамически отображая имена всех лучших участников, соответствующих этим оценкам. См. скриншот:

Раскройте магию Excel с Kutools AI
- Умное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это посредством простых команд.
- Пользовательские формулы: Создавайте индивидуальные формулы для оптимизации ваших рабочих процессов.
- Кодирование VBA: Пишите и внедряйте код VBA без особых усилий.
- Интерпретация формул: Легко разбирайтесь в сложных формулах.
- Перевод текста: Преодолейте языковые барьеры в ваших таблицах.
Формулы для создания динамического списка топ-10 с критериями
В некоторых задачах анализа вам может понадобиться список лучших, который отображает только записи, соответствующие определенным критериям, например ограничивая лучшие результаты конкретной группой, командой или категорией. Например, вы можете захотеть найти 10 лучших оценок только для «Класса 1» из общего листа данных, содержащего оценки нескольких классов. Вот как можно использовать формулы для этой ситуации:
1. Начните с извлечения первых 10 значений, соответствующих указанному условию (например, «Класс 1») из набора данных. Введите эту формулу в целевую ячейку (например, J2):
2. После ввода формулы нажмите Ctrl + Shift + Enter для подтверждения ее как формулы массива, затем перетащите маркер заполнения вниз, чтобы заполнить другие ячейки. Формула вернет 10 самых высоких значений, которые соответствуют вашему выбранному условию (например, все оценки из «Класса 1»).
3. Чтобы перечислить соответствующие имена для этих лучших значений согласно вашим критериям, скопируйте и вставьте формулу ниже в ячейку I2 и нажмите Ctrl + Shift + Enter как формулу массива. Затем заполните вниз по мере необходимости, чтобы сгенерировать полный список имен.
Убедитесь, что скорректировали диапазоны в формулах, чтобы они соответствовали фактической структуре ваших данных. Имейте в виду, что использование больших диапазонов данных с формулами массива может замедлить производительность. Если дублирующиеся значения появятся в вашем списке топ-10, формула корректно обработает повторяющиеся оценки и покажет несколько имен студентов, если их оценки равны.
Создание динамического списка топ-10 в Office 365
Хотя более ранним версиям Excel требовалось комбинирование нескольких функций с формулами массива, Office 365 (и Excel 2021) вводят такие функции динамических массивов, как ИНДЕКС, СОРТИРОВКА, ПОСЛЕДОВАТЕЛЬНОСТЬ и ФИЛЬТР, которые значительно упрощают рабочий процесс. Эти функции упрощают создание динамических списков топ-10, уменьшают количество ошибок и особенно полезны для таблиц, которые часто растут или меняются. Если вы работаете в среде с постоянно обновляемыми данными, эти функции могут упростить анализ и позволить принимать бизнес-решения быстрее.
Формула для создания динамического списка топ-10
Чтобы извлечь и отобразить динамический список топ-10 с использованием Office 365, введите следующую формулу в желаемую выходную ячейку. Все, что вам нужно сделать, это настроить диапазоны и числа в зависимости от ваших потребностей, и формула автоматически покажет последние результаты топ-10 каждый раз, когда данные изменяются.
Просто нажмите клавишу Enter. Полный список топ-10 появится мгновенно и останется динамичным, так что дополнительные данные или измененные оценки сразу же будут отражены в вашем рейтинге.
Функция СОРТИРОВКА:
=СОРТИРОВКА(массив; [индекс_сортировки]; [порядок_сортировки]; [по_колонке])
- массив: Диапазон, который вы хотите отсортировать.
- [индекс_сортировки]: Номер столбца, по которому нужно сортировать. Для типичной таблицы оценок это часто второй столбец.
- [порядок_сортировки]: Используйте 1 для возрастания или -1 для убывания. Чтобы получить максимальные оценки, используйте -1.
- [по_колонке]: Определяет, сортировать по столбцам (ИСТИНА) или по строкам (ЛОЖЬ или опущено).
Например: СОРТИРОВКА(A2:B20;2;-1) сортирует A2:B20 по второму столбцу в порядке убывания.
Функция ПОСЛЕДОВАТЕЛЬНОСТЬ:
=ПОСЛЕДОВАТЕЛЬНОСТЬ(строки; [столбцы]; [начало]; [шаг])
- строки: Количество строк для возврата, например, 10 для списка топ-10.
- [столбцы]: (Необязательно) Количество столбцов для возврата.
- [начало]: (Необязательно) Начальное значение.
- [шаг]: (Необязательно) Шаг увеличения.
ПОСЛЕДОВАТЕЛЬНОСТЬ(10) генерирует числа от 1 до 10, позволяя ИНДЕКС выбрать 10 лучших отсортированных результатов.
Объединяя их, =ИНДЕКС(СОРТИРОВКА(A2:B20;2;-1);ПОСЛЕДОВАТЕЛЬНОСТЬ(10);{1;2}) дает вам динамический двухстолбцовый список топ-10.
Формула для создания динамического списка топ-10 с критериями
Если вам нужно извлечь топ-10 для определенной группы, такой как «Класс 1», эти продвинутые функции Office 365 могут создать список топ-N, включая только те строки, которые соответствуют вашим критериям. Разместите формулу ниже в нужном месте и настройте диапазоны и ячейку критериев по мере необходимости:
После ввода формулы просто нажмите клавишу Enter. Отображается список топ-10, отфильтрованный и ранжированный для указанного критерия, обновляясь всякий раз, когда вы изменяете данные или критерии.
Функция ФИЛЬТР:
=ФИЛЬТР(массив; условие; [если_пусто])
- массив: Диапазон ячеек для фильтрации.
- условие: Условие (например, равно заданному классу) для включения.
- [если_пусто]: (Необязательно) Что отобразить, если результаты не соответствуют критериям.
=ФИЛЬТР(A2:C25;B2:B25=F2) возвращает только те строки, где столбец B соответствует значению в F2.
Создание динамического списка топ-10 с помощью сводной таблицы
Сводная таблица: Автоматическое отображение топ-N результатов интерактивно
Альтернативный способ создания динамического списка топ-N — использование функции сводной таблицы Excel. Этот метод особенно подходит для больших наборов данных, интерактивного анализа (например, быстрого изменения количества лучших элементов или применения фильтров) или когда вы хотите избежать сложных формул. Сводные таблицы удобны в использовании и автоматически обновляются при изменении данных, что делает их отличными для информационных панелей или отчетов, которые передаются другим.
Чтобы создать динамический список топ-N с помощью сводной таблицы:
- Щелкните внутри своей таблицы данных, затем перейдите к Вставка > Сводная таблица.
- В диалоговом окне Сводной таблицы выберите, куда вы хотите поместить сводную таблицу, и нажмите OK.
- Перетащите поле «Имя» (или аналогичный идентификатор) в область Строки.
- Перетащите поле «Оценка» (или столбец значений) в область Значения. Обычно по умолчанию установлено «Сумма» или «Количество». Для списка лучших вы обычно хотите «Сумму» или «Максимум». При необходимости измените вычисление поля значений, щелкнув правой кнопкой мыши и выбрав Сгруппировать значения по.
- Отсортируйте столбец «Оценка» по убыванию, щелкнув правой кнопкой мыши значение и выбрав Сортировка > Сортировка от наибольшего к наименьшему.
- Чтобы ограничить результаты топ-N, щелкните стрелку выпадающего списка Метки строк, выберите Фильтры значений > Первые 10..., установите число (например, Топ-10) и поле для фильтрации, затем нажмите OK.
Ваша сводная таблица теперь показывает динамический топ-10 (или любой N, который вы указали). Чтобы изменить топ-N, просто снова зайдите в настройки фильтра. Если ваши данные изменяются, обновите сводную таблицу, чтобы мгновенно обновить рейтинги.
Преимущества этого подхода включают быструю настройку, простую сортировку и интерактивную настройку. Однако сводные таблицы не могут автоматически добавлять соответствующие строки из других столбцов, если они не включены в области Строки или Значения. Продвинутые пользователи могут дополнительно настраивать отчеты, группируя, создавая фильтры или включая фильтр Топ-N в информационные панели.
Создание динамического списка топ-10 с использованием VBA
Макрос VBA: Автоматическая генерация и обновление списка топ-N
Использование макроса VBA подходит для пользователей, работающих с большими объемами данных или часто обновляемыми данными, где требуется автоматизация извлечения и обновления динамического списка топ-N. Макросы идеально подходят для уменьшения рутинных задач и обеспечения последовательности. Вы можете создать процедуру, которая сортирует данные и копирует только первые N строк в определенное место каждый раз при выполнении.
Чтобы использовать макрос VBA для создания динамического списка топ-N, следуйте этим шагам:
- Щелкните Разработчик > Visual Basic, чтобы открыть редактор VBA. (Если вы не видите вкладку Разработчик, перейдите к Файл > Параметры > Настройка ленты и включите «Разработчик».)
- В окне VBA щелкните Вставка > Модуль, чтобы добавить новый модуль.
- Вставьте следующий код 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. Вам будет предложено:
- Выбрать диапазон данных (включая заголовки для правильной сортировки).
- Выбрать ячейку вывода для вставки результатов.
- Введите число N (например, 10 для Топ-10).
Макрос скопирует первые N записей (включая заголовки) в указанное вами место.
Рекомендуется использовать это решение в резервной копии книги при первом тестировании. Если возникают ошибки (например, выбор неверного диапазона), повторите выполнение и убедитесь, что ваши диапазоны и структура данных правильны.
Это решение идеально подходит для автоматизации рутинных задач составления отчетов, создания информационных панелей или быстрого обновления отчетов топ-N без использования ручных формул или сортировки. Вы можете дополнительно настроить сценарий VBA для более сложной логики ранжирования, например, сортировки по определенному столбцу или экспорта результатов в другую книгу.
Устранение неполадок: Если макрос не работает должным образом, проверьте, что ваша таблица данных содержит правильные заголовки, исправьте типы данных, чтобы избежать проблем с сортировкой, и убедитесь, что ссылки на ячейки точно выбраны в каждом запросе. Всегда сохраняйте свою работу перед запуском макросов, чтобы предотвратить случайные изменения данных.
Подведем итог: Excel поддерживает различные методы для создания и поддержания динамического списка топ-N — от традиционных формул до мощных функций Office 365, сводных таблиц для интерактивного анализа и макросов VBA для продвинутой автоматизации. Выберите метод, который лучше всего подходит для вашего рабочего процесса и масштаба данных. Использование формул эффективно для большинства ручных анализов, функции Office 365 обеспечивают наибольшую простоту и мощность, сводные таблицы превосходны для быстрых и гибких сводок, а VBA особенно полезен для автоматизации больших, повторяющихся задач ранжирования. Всегда проверяйте целостность ваших формул или кода и адаптируйте ссылки на ячейки, чтобы они соответствовали любым изменениям в структуре данных по мере развития вашего проекта.
Лучшие инструменты для повышения продуктивности в Office
Повысьте свои навыки работы в 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.





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