Jak policzyć unikalne wartości w zakresie za pomocą vba


Aby zliczyć liczbę unikalnych wartości w zakresie za pomocą języka VBA, możesz użyć następującej podstawowej składni:

 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

Ten konkretny przykład zlicza liczbę unikalnych wartości w zakresie A2:A11 , a następnie wyświetla liczbę w oknie komunikatu.

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Policz unikalne wartości w zakresie za pomocą VBA

Załóżmy, że mamy w Excelu następującą listę nazw drużyn koszykarskich:

Załóżmy, że chcemy policzyć liczbę unikalnych nazw zespołów w zakresie A2:A11 .

W tym celu możemy utworzyć następujące makro:

 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

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Pojedynczy numer VBA

Okno komunikatu informuje nas, że istnieje 5 unikalnych nazw zespołów.

Możemy sprawdzić, czy jest to poprawne, ręcznie identyfikując każdą z unikalnych nazw zespołów:

  • Mavs
  • Ciepło
  • Siatki
  • Wojownicy
  • królowie

W rzeczywistości istnieje 5 unikalnych nazw zespołów.

Uwaga : Aby policzyć liczbę unikalnych wartości w innym zakresie, po prostu zamień A2:A11 w pętli For Each na inny zakres.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak liczyć komórki zawierające określony tekst
VBA: Jak policzyć liczbę wierszy w zakresie
VBA: Jak pisać funkcje COUNTIFS i COUNTIFS

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *