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

İki Listeyi Karşılaştırma (Mutabakat)

İş hayatında en çok yapılan operasyonlardan biri de iki farklı listedeki verileri karşılaştırmaktır (Örneğin: Banka Ekstresi ile Muhasebe Kayıtları veya Eski Liste ile Yeni Liste). İnsan gözüyle binlerce satırı tek tek kontrol etmek imkansızdır; ancak VBA ile bu işlem saniyenin onda biri sürer.

İç İçe Döngüler (Nested Loops) Mantığı

İki listeyi karşılaştırmanın en klasik yolu iç içe iki adet For döngüsü kurmaktır. Birinci listedeki her bir elemanı alır, ikinci listenin başından sonuna kadar tek tek aratırız. Eşleşme bulduğunda yan sütuna "Eşleşti" yazarız.

Örnek Karşılaştırma Algoritması

Dim i As Integer, j As Integer

For i = 1 To 3 ' 1. Listeyi tara
    For j = 1 To 3 ' 2. Listede ara
        If Cells(i, 1).Value = Cells(j, 2).Value Then
            Cells(i, 3).Value = "Eşleşti"
        End If
    Next j
Next i

Canlı Simülatör: Liste Mutabakatı

Aşağıdaki tabloda A sütununda "Mevcut Liste", B sütununda ise "Güncel Liste" yer almaktadır. Makro, A sütunundaki isimlerin B sütununda var olup olmadığını kontrol edecek ve sonuçları C sütununa yazacaktır. Kodu Çalıştır butonuna basın.

Visual Basic Editörü
Module1 (Code)
Sub ListeleriKarsilastir()
    Dim i As Integer, j As Integer
    Dim bulundu As Boolean

    For i = 1 To 3
        bulundu = False
        For j = 1 To 3
            If Cells(i, 1).Value = Cells(j, 2).Value Then bulundu = True
        Next j

        If bulundu Then
            Cells(i, 3).Value = "Eşleşti"
        Else
            Cells(i, 3).Value = "Eksik"
        End If
    Next i

    MsgBox "Karşılaştırma ve mutabakat tamamlandı!", vbInformation
End Sub
Canlı Excel Sayfası
C1
A (Liste 1)
B (Liste 2)
C (Sonuç)
1
Ahmet
Ahmet
2
Mehmet
Can
3
Ayşe
Ayşe
Microsoft Excel ✕
Karşılaştırma ve mutabakat tamamlandı!