Як підрахувати унікальні значення в діапазоні за допомогою 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

Коли ми запускаємо цей макрос, ми отримуємо такий результат:

Єдиний номер VBA

У вікні повідомлення повідомляється, що є 5 унікальних імен команд.

Ми можемо переконатися, що це правильно, вручну визначивши кожну з унікальних імен команди:

  • Mavs
  • Тепло
  • Сітки
  • Воїни
  • королі

Фактично існує 5 унікальних назв команд.

Примітка . Щоб підрахувати кількість унікальних значень в іншому діапазоні, просто замініть A2:A11 у циклі For Every на інший діапазон.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:

VBA: як підрахувати клітинки з певним текстом
VBA: як підрахувати кількість рядків у діапазоні
VBA: як написати функції COUNTIF і COUNTIFS

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *