Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

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

Author Sun Last modified

В Excel, используя стандартную формулу =RANK(ячейка, диапазон) данные будут ранжироваться так, что наибольшее значение получит ранг 1, а наименьшее значение будет иметь самый низкий ранг. Однако бывают ситуации, когда нужно изменить эту логику, присваивая наименьшему значению наивысший ранг, а наибольшему — последний, как показано на скриншоте ниже. Это особенно полезно при анализе данных, где меньшие значения означают лучшую производительность, например, время гонок, затраты или количество ошибок.
A screenshot showing data ranked in reverse order in Excel

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


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

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

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

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

После ввода формулы нажмите Enter. Чтобы применить формулу к другим ячейкам в столбце, используйте маркер заполнения: поместите курсор мыши в нижний правый угол ячейки, куда вы ввели формулу (C2), и когда курсор превратится в знак «плюс», перетащите его вниз, чтобы заполнить остальные ячейки в диапазоне рядом с вашими данными (в этом примере до C10). 
A screenshot of reverse rank formula applied in 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. Чтобы запустить макрос, нажмите Run button кнопку Выполнить или нажмите F5. Вам будет предложено выбрать диапазон ваших данных (выберите один столбец, который вы хотите ранжировать в обратном порядке), а затем выберите первую ячейку, куда вы хотите вывести результаты ранжирования. Нажмите ОК после каждого выбора.

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

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


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

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: 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.

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