Vba: як класифікувати список значень
Ви можете використовувати такий базовий синтаксис, щоб упорядкувати список значень у Excel за допомогою VBA:
SubRankValues ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 0)
Next i
End Sub
У цьому конкретному прикладі ранжуються значення в клітинках B2:B11 і відображаються ранги в клітинках C2:C11 .
Останній аргумент 0 визначає, що значення повинні бути ранжовані в порядку зростання (найбільше значення отримує ранг 1, друге за величиною значення отримує ранг 2 тощо).
Щоб упорядкувати значення в порядку спадання, просто замініть 0 на 1 .
У наступному прикладі показано, як використовувати цей синтаксис на практиці.
Приклад: як упорядкувати значення за допомогою VBA
Припустимо, у нас є такий список баскетболістів разом із набраними ними очками:
Припустімо, ми хочемо обчислити ранг кожного значення в стовпці балів.
Для цього ми можемо створити такий макрос:
SubRankValues ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 0)
Next i
End Sub
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
Рейтинг кожного значення в стовпці балів відображається в стовпці C.
Наприклад:
- Гравець H з 41 балом має найвище значення балів, тому він отримує ранг 1 .
- Гравець C із 40 очками має друге за величиною значення балів, тому він отримує ранг 2 .
І так далі.
Щоб ранжувати значення в стовпці балів у порядку спадання, ми можемо змінити останній аргумент методу Rank з 0 на 1 :
SubRankValues ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 1)
Next i
End Sub
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
Рейтинг кожного значення в стовпці балів відображається в стовпці C.
Наприклад:
- Гравець I з 11 очками має найнижче значення балів, тому він отримує ранг 1 .
- Гравець E з 13 очками має друге найнижче значення балів, тому він отримує ранг 2 .
І так далі.
Примітка . Ви можете знайти повну документацію для методу VBA Rank тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:
VBA: як підрахувати клітинки з певним текстом
VBA: як підрахувати кількість рядків у діапазоні
VBA: як написати функції COUNTIF і COUNTIFS