Как ранжировать данные в обратном порядке в Excel?
В Excel, используя стандартную формулу =RANK(ячейка, диапазон) данные будут ранжироваться так, что наибольшее значение получит ранг 1, а наименьшее значение будет иметь самый низкий ранг. Однако бывают ситуации, когда нужно изменить эту логику, присваивая наименьшему значению наивысший ранг, а наибольшему — последний, как показано на скриншоте ниже. Это особенно полезно при анализе данных, где меньшие значения означают лучшую производительность, например, время гонок, затраты или количество ошибок.
Ранжирование данных в обратном порядке | VBA Код: Автоматическое присвоение обратных рангов
Ранжирование данных в обратном порядке
Чтобы выполнить обратное ранжирование в Excel, можно немного модифицировать стандартную формулу RANK, добавив дополнительный аргумент. Этот подход позволяет легко ранжировать данные от наименьшего к наибольшему, а не в порядке по умолчанию.
Выберите пустую ячейку, где должен появиться результат обратного ранжирования. Предположим, ваш диапазон данных находится в ячейках B2 через B10, введите следующую формулу в первую ячейку рядом с вашими данными (например, в ячейке C2):
=RANK(B2,$B$2:$B$10,1)
После ввода формулы нажмите Enter. Чтобы применить формулу к другим ячейкам в столбце, используйте маркер заполнения: поместите курсор мыши в нижний правый угол ячейки, куда вы ввели формулу (C2), и когда курсор превратится в знак «плюс», перетащите его вниз, чтобы заполнить остальные ячейки в диапазоне рядом с вашими данными (в этом примере до C10).
Если ваш диапазон данных отличается, просто измените ссылки на ячейки в формуле в соответствии с вашими реальными данными. Помните, что если у вас есть повторяющиеся значения, функция 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
Повысьте свои навыки работы в 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-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
- Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек