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:
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