Excel Formül
Modül 5: İleri Düzey Veri İşleme ve Raporlama

Benzersiz Liste Oluşturma (Unique)

Kurumsal raporlarda binlerce satırlık müşteri, ürün veya şehir isimleri alt alta tekrar eder. Bizim amacımız bu kalabalığın içinden yinelenenleri eleyerek tertemiz bir Benzersiz (Unique) liste çıkarmaktır. Bunu VBA'da yapmanın en şık yolu Collection (Koleksiyon) nesnesidir.

Collection Nesnesinin Sihirli Özelliği

VBA'daki Collection yapısının harika bir kuralı vardır: Koleksiyonun içine asla aynı anahtarda (key) ikinci bir öğe ekleyemezsiniz. Eğer eklemeye çalışırsanız VBA hata verir. Yazılımcılar bu hatayı ustaca yakalayarak (On Error Resume Next) tekrar eden verileri otomatik olarak filtreler ve sadece tekil olanları listede tutarlar.

Örnek Kod Kalıbı

Dim liste As New Collection
Dim hucre As Range

On Error Resume Next ' Aynı veri eklenirse hatayı yoksay
For Each hucre In Range("A1:A10")
    liste.Add hucre.Value, CStr(hucre.Value)
Next hucre
On Error GoTo 0

Canlı Simülatör: Tekrar Eden Verileri Ayıklama

Sol taraftaki A sütununda tekrar eden şehir isimleri ("Ankara", "İstanbul", "Ankara"...) yer alıyor. Makro çalıştığında, bu liste taranacak ve B sütununa sadece benzersiz şehirler yazılacaktır. Kodu Çalıştır butonuna basın.

Visual Basic Editörü
Module1 (Code)
Sub BenzersizListeAl()
    Dim benzersiz As New Collection
    Dim i As Integer, hedefSatir As Integer

    On Error Resume Next ' Yinelenen hata vermesin
    For i = 1 To 5
        benzersiz.Add Cells(i, 1).Value, CStr(Cells(i, 1).Value)
    Next i
    On Error GoTo 0

    ' Benzersiz listeyi B sütununa aktar
    For i = 1 To benzersiz.Count
        Cells(i, 2).Value = benzersiz(i)
    Next i

    MsgBox "Benzersiz liste başarıyla oluşturuldu!", vbInformation
End Sub
Canlı Excel Sayfası
B1
A (Ham Liste)
B (Benzersiz Rapor)
1
Ankara
2
İstanbul
3
Ankara
4
İzmir
5
İstanbul
Microsoft Excel ✕
Benzersiz liste başarıyla oluşturuldu!