Vba kullanarak aralıktaki benzersiz değerler nasıl sayılır?
VBA’yı kullanarak bir aralıktaki benzersiz değerlerin sayısını saymak için aşağıdaki temel sözdizimini kullanabilirsiniz:
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
Bu özel örnek, A2:A11 aralığındaki benzersiz değerlerin sayısını sayar ve ardından bu sayıyı bir mesaj kutusunda görüntüler.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: VBA Kullanarak Aralıktaki Benzersiz Değerleri Sayma
Excel’de aşağıdaki basketbol takımı adları listesine sahip olduğumuzu varsayalım:
A2:A11 aralığındaki benzersiz takım adlarının sayısını saymak istediğimizi varsayalım.
Bunun için aşağıdaki makroyu oluşturabiliriz:
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
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Mesaj kutusu bize 5 benzersiz takım adının olduğunu söylüyor.
Benzersiz takım adlarının her birini manuel olarak tanımlayarak bunun doğru olduğunu doğrulayabiliriz:
- Mav’ler
- Sıcaklık
- Ağlar
- Savaşçılar
- krallar
Aslında 5 benzersiz takım adı var.
Not : Farklı bir aralıktaki benzersiz değerlerin sayısını saymak için, For Every döngüsündeki A2:A11’i farklı bir aralıkla değiştirmeniz yeterlidir.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: Belirli bir metin içeren hücreler nasıl sayılır?
VBA: Aralıktaki satır sayısı nasıl sayılır?
VBA: COUNTIF ve COUNTIFS işlevleri nasıl yazılır?