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

Как отсортировать данные в обратном порядке в Excel?

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

В Excel стандартная формула =RANK(cell, range) присваивает данным ранги так, что наибольшее значение получает ранг 1, а наименьшее — самый низкий номер. Однако иногда требуется изменить эту логику: наименьшему значению присваивается наивысший ранг, а наибольшему — последний, как показано на снимке экрана ниже. Это особенно полезно при анализе данных, где меньшие значения означают лучший результат — например, время прохождения дистанции, затраты или количество ошибок.
Снимок экрана, показывающий данные, отсортированные в обратном порядке в Excel

Ранжирование данных в обратном порядке|Код VBA: автоматическое присвоение обратных рангов


Ранжирование данных в обратном порядке

Чтобы выполнить обратное ранжирование в Excel, достаточно немного изменить стандартную формулу RANK, добавив дополнительный аргумент. Этот простой приём позволяет легко сортировать данные от наименьшего к наибольшему — в обратном порядке по сравнению с настройками по умолчанию.

Выберите пустую ячейку, в которую вы хотите поместить результат обратного ранжирования. Предположим, ваш диапазон данных расположен в ячейках с B2 по B10. Введите следующую формулу в первую ячейку рядом с вашими данными (например, в ячейку C2):

=RANK(B2,$B$2:$B$10,1)

После ввода формулы нажмите Enter. Чтобы применить формулу ко всем ячейкам столбца, воспользуйтесь маркером заполнения: наведите курсор на правый нижний угол ячейки с формулой (C2), дождитесь появления знака «плюс» и перетащите его вниз до конца диапазона рядом с вашими данными (в данном примере — до ячейки C10).
Снимок экрана с применённой формулой обратного ранжирования в Excel

Если ваши диапазоны данных отличаются, просто скорректируйте ссылки на ячейки в формуле в соответствии с вашими фактическими данными. Имейте в виду: если среди значений есть дублирующиеся, функция RANK присвоит им одинаковый ранг, а следующие ранги будут пропущены (например, если два элемента делят второе место, следующий получит четвёртый ранг).

Обратное ранжирование особенно ценно, когда требуется выделить наименьшие значения или самые короткие временные интервалы, и идеально подходит для наборов данных, где совпадения допустимы или даже ожидаемы.


Код VBA: автоматическое присвоение обратных рангов

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

1. Откройте редактор VBA, выбрав Инструменты разработчика > Visual Basic. В окне Visual Basic for Applications выберите Вставка > Модуль и вставьте следующий код в область модуля:

Sub AssignReverseRank()
    Dim dataRange As Range
    Dim outputRange As Range
    Dim i As Long
    Dim j As Long
    Dim temp As Variant
    Dim arr As Variant
    Dim sortedArr As Variant
    Dim rankArr() As Long
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set dataRange = Application.InputBox("Select the data range to rank (single column):", xTitleId, "", Type:=8)
    If dataRange Is Nothing Then Exit Sub
    
    Set outputRange = Application.InputBox("Select the first cell for output ranks:", xTitleId, "", Type:=8)
    If outputRange Is Nothing Then Exit Sub
    
    arr = dataRange.Value
    ReDim rankArr(1 To UBound(arr, 1), 1 To 1)
    sortedArr = arr
    
    ' Sort the array in ascending order
    For i = 1 To UBound(sortedArr, 1) - 1
        For j = i + 1 To UBound(sortedArr, 1)
            If sortedArr(i, 1) > sortedArr(j, 1) Then
                temp = sortedArr(i, 1)
                sortedArr(i, 1) = sortedArr(j, 1)
                sortedArr(j, 1) = temp
            End If
        Next j
    Next i
    
    ' Assign reverse ranks
    For i = 1 To UBound(arr, 1)
        For j = 1 To UBound(sortedArr, 1)
            If arr(i, 1) = sortedArr(j, 1) Then
                rankArr(i, 1) = j
                Exit For
            End If
        Next j
    Next i
    
    outputRange.Resize(UBound(rankArr, 1), 1).Value = rankArr
End Sub

2. Чтобы запустить макрос, нажмите кнопку Кнопка запуска«Выполнить» или клавишу F5. Вам предложат выбрать диапазон данных (укажите один столбец, который нужно ранжировать в обратном порядке), а затем — первую ячейку для вывода результатов ранжирования. После каждого выбора нажмите «ОК».

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

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


Лучшие инструменты повышения продуктивности в 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-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек