Как посчитать уникальные значения в диапазоне с помощью 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 уникальных названий команд.

Мы можем убедиться, что это правильно, вручную определив каждое из уникальных названий команд:

  • Мавс
  • Нагревать
  • Сети
  • Воины
  • короли

На самом деле существует 5 уникальных названий команд.

Примечание . Чтобы подсчитать количество уникальных значений в другом диапазоне, просто замените A2:A11 в цикле For Each на другой диапазон.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *