Як підрахувати унікальні значення в діапазоні за допомогою vba
Ви можете використовувати такий базовий синтаксис, щоб підрахувати кількість унікальних значень у діапазоні за допомогою VBA:
SubCountUnique ()
Dim Rng As Range, List As Object, UniqueCount As Long
Set List = CreateObject(" Scripting.Dictionary ")
'count unique values in range A2:A11
For Each Rng In Range(" A2:A11 ")
If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
Next
'store unique count
UniqueCount = List.Count
' display unique count
MsgBox " Count of Unique Values: " & UniqueCount
End Sub
У цьому конкретному прикладі підраховується кількість унікальних значень у діапазоні A2:A11 , а потім відображається кількість у вікні повідомлення.
У наступному прикладі показано, як використовувати цей синтаксис на практиці.
Приклад: підрахунок унікальних значень у діапазоні за допомогою VBA
Припустімо, що в Excel є такий список назв баскетбольних команд:
Припустімо, ми хочемо підрахувати кількість унікальних назв команд у діапазоні A2:A11 .
Для цього ми можемо створити такий макрос:
SubCountUnique()
Dim Rng As Range, List As Object, UniqueCount As Long
Set List = CreateObject(" Scripting.Dictionary ")
'count unique values in range A2:A11
For Each Rng In Range(" A2:A11 ")
If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
Next
'store unique count
UniqueCount = List.Count
'display unique count
MsgBox " Count of Unique Values: " & UniqueCount
End Sub
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
У вікні повідомлення повідомляється, що є 5 унікальних імен команд.
Ми можемо переконатися, що це правильно, вручну визначивши кожну з унікальних імен команди:
- Mavs
- Тепло
- Сітки
- Воїни
- королі
Фактично існує 5 унікальних назв команд.
Примітка . Щоб підрахувати кількість унікальних значень в іншому діапазоні, просто замініть A2:A11 у циклі For Every на інший діапазон.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:
VBA: як підрахувати клітинки з певним текстом
VBA: як підрахувати кількість рядків у діапазоні
VBA: як написати функції COUNTIF і COUNTIFS