OĞUZ EROLAI·ADS·APPS

İki Excel Listesini Karşılaştırma ve Eşleştirme: Anahtar, ÇAPRAZARA, Power Query

8 dk okumaYayın: Güncelleme:

İki Excel listesini doğru karşılaştırmak için önce aynı kaydı tanımlayan anahtarı belirleyin, boş ve mükerrer anahtarları ayırın, ardından tekil kayıtları eşleştirip alan farklarını hesaplayın. ÇAPRAZARA bir kaydı bulur; o kaydın doğru, benzersiz veya bütün sütunlarının aynı olduğunu tek başına kanıtlamaz.

Bu rehber finans, satın alma ve operasyon ekipleri için. Tek sütunlu bir var/yok kontrolünden, her ay yenilenen Power Query mutabakatına kadar ilerliyor. Türkçe formüller noktalı virgül kullanır; bilgisayarınızın bölge ayarı farklıysa ayırıcıyı değiştirmeniz gerekebilir. İşlevlerin İngilizce karşılıkları: EĞERSAY = COUNTIF, ÇAPRAZARA = XLOOKUP, İNDİS = INDEX, KAÇINCI = MATCH.

Önce soruyu seçin: iki liste hangi açıdan aynı olmalı?

İhtiyaçDoğru kontrolTek başına yetmeyen yöntem
Aynı sıradaki hücreler eşit mi?=A2=D2Satır sırası değişmiş iki dosyada kayıt eşleştirme
A’daki kod B’de var mı?Temiz anahtar + EĞERSAYİsimlerin gözle benzemesi
Hangi kayıt yalnız bir listede?İki yönde var/yok veya anti birleştirmeYalnız A’dan B’ye bakmak
Aynı koddan kaç tane var?İki listede ayrı sayımÇAPRAZARA’nın ilk sonucunu almak
Aynı kaydın miktarı veya fiyatı değişmiş mi?Anahtarla hizalama, sonra sütun karşılaştırmasıSatırları yan yana koyup eşitlik bakmak
Her ay aynı kontrol tekrarlanıyor mu?Power Query ve yenileme kontrolüHer ay yeniden kopyala-yapıştır

Anahtar, satırın neyi temsil ettiğine bağlıdır. Tedarikçi kartında cari kodu yeterli olabilir; fatura satırında aynı cari kodu yüzlerce kez geçebilir. Fatura numarası + satır numarası veya sipariş numarası + ürün kodu gerekebilir. Çok satırlı bir faturayı yalnız müşteri numarasıyla birleştirmek, doğru kayıtları da mükerrer gibi gösterir.

İndirilebilir örnek: sekiz satırla bütün sonuçları görün

İki liste karşılaştırma örneğini indirin (.xlsx). Dosya makro içermez; veriler kurgusaldır. “Liste A” ve “Liste B” kaynakları, “Beklenen Sonuç” kontrol tablosu ve “Nasıl Kullanılır” açıklaması bulunur. Formüller dosyanın içinde durur. Sonuçların mantığı ve dosya yapısı kontrol edildi; bu sürüm masaüstü Excel’de çalıştırılarak test edilmedi.

KodListe A: adet / fiyatListe B: adet / fiyatBeklenen karar
00110 / 10010 / 100Aynı
0025 / 2006 / 200Adet değişmiş
0038 / 508 / 55Fiyat değişmiş
0043 / 400İki adet 3 / 400 satırıMükerrer; otomatik seçim yok
0052 / 500YokYalnız A
Boş1 / 100YokAnahtar eksik; “yalnız A” ile karıştırılmaz
0064 / 75006: 4 / 75Onaylı boşluk temizliği sonrası aynı
0072 / 252 / 25Aynı
008Yok1 / 90Yalnız B

İki kaynakta da sekiz satır vardır. A’nın sekiz satırı: bir boş anahtar + bir yalnız A + bir mükerrer nedeniyle inceleme + beş tekil eşleşme. Beş tekil eşleşmenin üçü aynı, ikisi farklıdır. B’de 008 yalnız B’dedir; 004 iki kez geçer. Toplam satır sayısı aynı olsa da iki liste aynı değildir.

Anahtarı temizleyin, kimliği yeniden üretmeyin

Ham kodu A sütununda koruyun; iki sayfanın E sütununa ayrı bir karşılaştırma anahtarı ekleyin. Bu örnekte kod başındaki/sonundaki boşluklar anlam taşımıyor:

=KIRP(YERİNEKOY(A2&"";DAMGA(160);" "))

İngilizcesi:

=TRIM(SUBSTITUTE(A2&"",CHAR(160)," "))

YERİNEKOY, bölünmez boşluğu normal boşluğa çevirir; KIRP dış boşlukları kaldırır ve içteki art arda normal boşlukları tekler. İç boşluğun anlamlı olduğu kodlarda bu kuralı aynen kullanmayın. Temizlik kuralını iki kaynakta aynı uygulayın. KIRP’ın bölünmez boşluğu tek başına kaldırmaması Microsoft TRIM belgesinde açıklanır.

Baştaki sıfırları otomatik tamamlamayın. SAĞDAN("0000000000"&A2;10) uzun kodu sessizce keser: 11234567890, 1234567890 olur. Bu bir temizlik değil, başka anahtar üretimidir. 001 ile 1 ancak kaynak sistemin kuralı bunu söylüyorsa aynı kayıttır. Kaybolan sıfırı kaynakla doğrulayın; ham değer, düzeltilmiş değer ve düzeltme gerekçesini saklayın.

CSV’yi çift tıklayarak açmak yerine Veri → Metin/CSV’den içeri alın ve kod sütununu metin seçin. Power Query’de otomatik “Değiştirilen Tür” adımını da kontrol edin. Önceden sayı yapılmış hücreyi sonradan metne çevirmek, kaybolmuş basamakları geri getirmez. Excel’in sayısal hassasiyeti 15 anlamlı hanedir; uzun kimlikleri kaynaktan metin olarak yeniden almak gerekir. Kaynak: Microsoft, baştaki sıfırlar ve büyük sayılar, kontrol: 22 Ekim 2026.

Önce boş ve mükerrer kontrolü, sonra ÇAPRAZARA

İndirilen dosyada A:D ham veri, E temiz anahtardır. “Liste A”da F sütunu anahtarın kendi listesindeki, G sütunu karşı listedeki sayısını verir. Bu ilk formüller, bütün dolu kodların üç haneli metin olduğu kontrollü örnek içindir. Farklı uzunlukta sayısal görünen kimlikleri veya harfe duyarlı kodları karşılaştıracaksanız aşağıdaki ÖZDEŞ yöntemini kullanın:

F2: =EĞER(E2="";0;EĞERSAY($E$2:$E$9;E2))
G2: =EĞER(E2="";0;EĞERSAY('Liste B'!$E$2:$E$9;E2))

Sonucu H2’de sınıflandırın:

=EĞER(E2="";"Anahtar boş";EĞER(F2>1;"A'da mükerrer";EĞER(G2=0;"Yalnız A";EĞER(G2>1;"B'de mükerrer";"Tekil eşleşme"))))

Bu sıranın amacı, birden fazla karşılık varken ilk satırı doğru kabul etmemek. Her iki listede mükerrer olması durumunda H ilk sorunu gösterir; F ve G gerçek adetleri korur. Önce anahtarın yeterince ayrıntılı olup olmadığını inceleyin, ardından hatalı tekrar varsa kaynağında düzeltin. Farklı şube, para birimi veya hesap türü nedeniyle açılmış kartları körlemesine birleştirmeyin.

Tekil eşleşmede B’nin adetini I2’ye getirin:

=EĞER(H2="Tekil eşleşme";ÇAPRAZARA(E2;'Liste B'!$E$2:$E$9;'Liste B'!$C$2:$C$9;"Bulunamadı";0);"")

Fiyat için dönüş aralığını D2:D9 yapıp J sütununa yazın. Microsoft’a göre ÇAPRAZARA varsayılan olarak tam eşleşir ve ilk sonucu döndürür; tam eşleşme, benzersiz eşleşme demek değildir. Excel 2016/2019’da ÇAPRAZARA yoktur. Örnek dosya bu sürümlerde de kullanılan İNDİS + KAÇINCI yaklaşımını içerir. Kaynak: Microsoft XLOOKUP, 22 Ekim 2026.

=EĞER(H2="Tekil eşleşme";İNDİS('Liste B'!$C$2:$C$9;KAÇINCI(E2;'Liste B'!$E$2:$E$9;0));"")

KAÇINCI’daki son 0 tam eşleşmedir. Her hatayı EĞERHATA ile “yok”a çevirmeyin: kırık başvuru da “yok” gibi görünür. DÜŞEYARA kullanıyorsanız dördüncü bağımsız değişken YANLIŞ olmalı; ayrıca anahtar aralığın ilk sütununda bulunmalıdır.

Ters kontrolü unutmayın. “Liste B”de E anahtarını “Liste A”nın E sütununda sayın; aynı boş ve mükerrer kontrolünü burada da kurun. Böylece yalnız B’deki 008 görünür. Sadece A’dan yapılan arama bu kaydı hiçbir zaman raporlamaz.

Kodda yıldız, soru işareti veya büyük/küçük harf farkı varsa

EĞERSAY büyük/küçük harfi ayırmaz; * ve ? ölçütte joker karakterdir. Gerçek kod AB*1 ise normal EĞERSAY başka kodları da sayabilir. Literal ölçüt için önce ~, sonra jokerleri kaçırın:

=EĞERSAY('Liste B'!$E$2:$E$9;"="&YERİNEKOY(YERİNEKOY(YERİNEKOY(E2;"~";"~~");"*";"~*");"?";"~?"))

Boş anahtar kontrolü bunun dışında kalmalıdır. Bu kaçış yalnız EĞERSAY ölçütünü düzeltir; eski KAÇINCI formülündeki joker yorumunu veya harf duyarlılığını düzeltmez. EĞERSAY’ın kapalı başka bir çalışma kitabına başvurusu da hata üretebilir; örnek bu yüzden iki listeyi aynı dosyada tutar. Kaynaklar: Microsoft COUNTIF, MATCH.

Kimlik karakterleri birebir korunacaksa, iki temiz anahtar sütununu da metin tutup F/G sayımlarını ÖZDEŞ (EXACT) ile kurun. G2 örneği:

=EĞER(E2="";0;TOPLA.ÇARPIM(--ÖZDEŞ(E2;'Liste B'!$E$2:$E$9)))

F2 için karşı aralığı kendi $E$2:$E$9 aralığınızla değiştirin. ÖZDEŞ harf büyüklüğünü de ayırır ve * karakterini bir kod karakteri olarak karşılaştırır. H sınıflandırması aynı kalabilir. ÇAPRAZARA destekleyen Excel’de I2 de aynı eşitlik kuralını kullanmalı:

=EĞER(H2="Tekil eşleşme";ÇAPRAZARA(DOĞRU;ÖZDEŞ(E2;'Liste B'!$E$2:$E$9);'Liste B'!$C$2:$C$9;"Bulunamadı";0);"")

Yalnız sayımı değiştirip aramayı eski bırakmayın. 001 ve 1, AB ve ab, A*1 ve AX1 çiftlerini ayrı kontrol satırları olarak deneyin; kuralınız birebir kimlikse birbirine bağlanmamalılar. Eski Excel’de bu dizi yaklaşımını normal KAÇINCI’nın yerine doğrudan koymak yerine metin türleriyle Power Query kurmak daha anlaşılır olabilir. Kaynak: Microsoft EXACT.

Kaydı bulduktan sonra değişen alanları hesaplayın

K2’de adet farkını =EĞER(H2="Tekil eşleşme";I2-C2;""), L2’de fiyat farkını =EĞER(H2="Tekil eşleşme";J2-D2;"") hesaplayın. İşaret B eksi A anlamına gelir. Pozitif sonuç B’deki değerin daha yüksek olduğunu söyler; hangi kaynağın doğru olduğunu söylemez.

Para karşılaştırmadan önce para birimi, KDV kapsamı, birim ve dönemi eşitleyin. Örnek dosya tam eşitlik kullanır. İş kuralınız kuruş toleransı gerektiriyorsa, örneğin =MUTLAK(J2-D2)<=0,01 yalnız kurgusal 0,01 toleransı kabul edildiğinde kullanılabilir; evrensel muhasebe kuralı değildir. Tarih alanında saat bulunması da aynı görünen iki tarihi farklı yapabilir.

Eksikleri ayrı göstermek için H sütununu filtreleyin. Dinamik dizi destekleyen Excel’de:

=FİLTRE('Liste A'!A2:D9;'Liste A'!H2:H9="Yalnız A";"Eksik kayıt yok")

Üçüncü argüman, hiç eksik kayıt yokken hata yerine açıklama verir. Sonucun döküleceği alan boş olmalı. Kaynak: Microsoft FILTER.

Örnekteki $2:$9 aralıkları eğitim için sabittir. Gerçek liste büyüyecekse iki kaynağı Ctrl+T ile Excel Tablosu yapın; tablo/sütun adlarıyla başvurun veya Power Query kullanın. Yeni satır ekledikten sonra formül kapsamını mutlaka kontrol edin.

Power Query ile aylık karşılaştırma

Power Query, aynı temizleme ve birleştirme adımlarını yeni dosyalara yeniden uygular. Yanlış anahtar kuralını da aynı düzenle tekrarlar; ilk kurulumun kontrolü önemlidir.

  1. İki dosyayı Veri → Veri Al → Dosyadan ayrı sorgular olarak içeri alın. Kaynak adı, sayfa/tablo ve dönemini kaydedin.
  2. Anahtar sütunlarının türünü Metin yapın. Sıfırı düşüren otomatik tür adımını düzeltip kaynaktan yeniden okuyun.
  3. Ham sütunu koruyun, temiz anahtarı yeni sütunda üretin. Boş/geçersiz anahtarları ayrı istisna sorgusuna alın.
  4. Her iki listede anahtara göre Gruplandır → Satırları Say ile mükerrerleri inceleyin. Tekil kayıt mutabakatında bunları ayrı raporlayın.
  5. Sorguları Birleştir → Yeni olarak birleştir seçin. Üstte A, altta B olsun; anahtarları seçin. Birden çok alan kullanıyorsanız iki tabloda alanları aynı sırayla seçin.
  6. Sol anti ile yalnız A’yı, sağ anti ile yalnız B’yi, sol dış ile A’nın eşleşme raporunu üretin. İç birleştirme eşleşmeyenleri düşürür; tek başına tam mutabakat değildir.
  7. Sağ tablodan gereken sütunları genişletin. Genişletme sonrasında satır sayısını ve tutarları kontrol edin; eşleşme bulundu diye toplamı doğrudan kullanmayın.
  8. Sonuçları sayfaya yükleyin. Yeni dönem dosyalarıyla Tümünü Yenile sonrasında kaynak tarihini ve istisna adetlerini yeniden kontrol edin.

Birleştirme alanları aynı veri türünde olmalı. Çoklu anahtarda A&B gibi ayırıcısız birleştirme, AB+C ile A+BC için aynı sonucu üretir; iki sütun üzerinden join daha açık bir yöntemdir. Kaynak: Microsoft Power Query birleştirme rehberi.

Onaylı alan kuralı tam 10 ASCII rakam ise aşağıdaki özel sütun yalnız bu biçimi kabul eder; sıfır eklemez, uzun kodu kesmez. Bu, vergi numarasının gerçek olduğunu veya doğru firmaya ait olduğunu doğrulamaz:

let
    t = if [VKN] = null then "" else
        Text.Trim(Text.Replace(Text.From([VKN]), Character.FromNumber(160), " ")),
    valid = Text.Length(t) = 10 and Text.Select(t, {"0".."9"}) = t
in
    if valid then t else null

null dönenleri birleştirmeden önce ayırın; ham değer ve hata nedenini raporda tutun. M eşitliğinde null = null doğrudur ve NestedJoin anahtar eşitliğine dayanır; dolayısıyla boş anahtarları güvenilir eşleşme saymamak gerekir. Bu, belgelerden çıkarılan kontrol kuralıdır; burada Power Query motorunda deney sonucu olarak sunulmuyor. Kaynaklar: M işleçleri, Table.NestedJoin.

Büyük örnek: 233 ERP satırı neden 237 rapor satırı olabilir?

Bu ikinci örnek de kurgusaldır. ERP’de 233 tedarikçi, muhasebede 241 cari kartı olsun: 226 ortak tedarikçi, ERP’ye özel yedi yeni tedarikçi, muhasebeye özel 11 eski tedarikçi ve dört ortak tedarikçinin ikinci cari kartı. Ortakların 18 kodunda baştaki sıfır düşmüş, dokuzunda dış boşluk, beşinde ERP anahtarı boş olsun.

18 kayıp sıfır kaynakla teyit edilerek düzeltildiğinde ve dokuz boşluk temizlendiğinde 221 ERP satırı karşılık bulur. Beş boş anahtar ayrı tutulur; birleştirmeye 228 ERP satırı girer. Mükerrerleri henüz ayırmadan yapılan teşhis amaçlı birleştirmede:

KontrolBeklenen sayıNeden
Sol anti7Yeni tedarikçiler
Sağ anti1611 eski + ERP anahtarı boş beş tedarikçinin karşılığı
İç birleştirme, genişletilmiş225221 eşleşen ERP satırı + dört ek cari kartı
Sol dış, genişletilmiş232228 geçerli ERP satırı + dört ek cari kartı
Beş boş anahtar ayrıca rapora eklenirse237232 birleşim satırı + beş istisna

232 veya 237 satır 237 ayrı tedarikçi demek değildir. Mükerrer cari yüzünden aynı ERP tutarı iki satıra taşınabilir. Önce çoğalmanın nedenini çözün; sonra tutar toplayın. Geçersiz ve mükerrerleri ayıran nihai raporun sayıları bu teşhis tablosundan farklı olacaktır.

Anahtar yoksa bulanık eşleşme nasıl kullanılır?

Bulanık birleştirme benzer isimlerden aday üretir. “Özkan Metal Kaplama Ltd.” ile “Özkan Metal Kaplama A.Ş.” kurgu örneğinde farklı şirketler olabilir. Ltd./A.Ş. eklerini silmek benzerliği artırırken ayrımı yok eder. En yüksek skorun doğru kayıt olduğu veya skorun doğruluk olasılığı olduğu sonucuna varmayın.

Yalnız çözülememiş kayıtları aday havuzuyla karşılaştırın; aday unvanını, kaynak kodunu, doğrulanan kimliği ve kararı yan yana tutun. Onaylanan eşleme tablosunda kaynak sistem + kaynak kayıt kodu + hedef kod + onaylayan + tarih + geçerlilik kapsamı bulunsun. Her ay bu tabloyu körlemesine uygulamak yerine kaynak kaydın değişip değişmediğini kontrol edin. Power Query’nin bulanık birleştirmesi metin alanlarında çalışır; seçenekler ve kullanılabilirlik için Microsoft Fuzzy Merge belgesine bakın.

Sonuç yanlış görünüyorsa nereden başlamalı?

Belirtiİlk kontrol
Ekranda aynı kod, sonuç “yok”Metin/sayı türü, baştaki sıfır, görünmez boşluk
Tek eşleşme beklerken farklı satır geliyorİki listede anahtar adedi; yaklaşık eşleşme ayarı
Birleştirmede satırlar çoğalıyorSağda ve solda mükerrer anahtar; çoktan çoğa ilişki
Yeni satırlar rapora girmiyorSabit aralık, tablo kapsamı, kaynak dosya ve yenileme
FİLTRE hata veriyorBoş sonuç argümanı ve dökülme alanındaki dolu hücreler
Toplam farkı var ama tekil satırlar doğruMükerrer çoğalma, para birimi, KDV, dönem ve yuvarlama
Formül ile Power Query farklı eşleşiyorHarf duyarlılığı ve iki yöntemin temizleme kuralları

Her yenilemede kaynak satırı, boş/geçersiz anahtar, mükerrer anahtar, tekil eşleşme, yalnız A/B ve değişen alan sayılarını kaydedin. Sonucun doğruluğu “hata görünmüyor” ile değil, bu sayıların kaynaklarla tutmasıyla anlaşılır.

Sıkça Sorulan Sorular

İki sütunu seçip Yinelenen Değerler demek yeterli mi?

Hayır. Bu kural bir sütunun kendi içindeki tekrarları da boyar. A2:A500’de yalnız karşı sütunda bulunmayanları boyamak için formülle koşullu biçimlendirme kurun: =VE(A2<>"";EĞERSAY($C$2:$C$500;A2)=0). Sade kodlar için uygundur; joker ve harf duyarlılığı sınırları yukarıdaki gibidir.

Dosyaların aynı sırada olması gerekiyor mu?

Anahtarla eşleştiriyorsanız gerekmez. Doğrudan A2=D2 karşılaştırması ise aynı sırada ve aynı anlamdaki hücreleri varsayar. Önce anahtarla hizalayın, sonra alanları karşılaştırın.

Aynı kodun birden çok kez geçmesi her zaman hata mı?

Hayır. Fatura veya sipariş satırında aynı ürün tekrar edebilir. Satırın kimliğini tanımlayan ek alanı kullanın ya da amaç toplam miktar karşılaştırmasıysa önce kod bazında toplayın. Hangi işlemin doğru olduğu iş sorusuna bağlıdır.

Excel dosyasını yapay zekâya verip eşleştirebilir miyim?

Şirketinizin onayladığı veri paylaşım koşullarını kontrol edin ve gerekmeyen kişi/müşteri verilerini çıkarın. Yapay zekâ formül ve aday açıklaması hazırlayabilir; kod eşitliği, sayımlar ve toplamlar tekrar çalıştırılabilir kurallarla doğrulanmalıdır. Açıklama, eşleşme kanıtının yerine geçmez.

Karşılaştırma her ay bir iş akışına dönüşüyorsa

Excel veya Power Query iki dosyayı karşılaştırmak için yeterli olabilir. Önce bu sayfadaki örnekle hangi alanın kayıt kimliği olduğunu, tekrarların nasıl ele alınacağını ve hangi farkların inceleme gerektirdiğini netleştirin. Bir kez yapılacak karşılaştırma için yeni bir uygulama kurmak zorunda değilsiniz.

İş her ay tekrarlanıyor, farklı kişilerden dosya geliyor ve bulunan farkları bir ekip açıklayıp onaylıyorsa ihtiyaç değişir. Artık yalnız “iki liste aynı mı?” sorusunu değil, “bu farkı kim inceledi, hangi belgeye dayandı ve hangi sürümü onayladı?” sorularını da yanıtlamak gerekir. Bu aşamada Excel tabanlı bir web uygulaması kaynak dosyalarını, inceleme görevlerini ve karar geçmişini birlikte tutacak şekilde değerlendirilebilir.

Örneğin banka hareketiyle POS raporunun tutarları farklıysa komisyon, iade, bloke ve valör ilişkisi ayrıca incelenir. Banka ve POS mutabakatı uygulaması bu özel kontrol ihtiyacını anlatır. Benzer tutarı bulmak tek başına işlemlerin eşleştiğini kanıtlamaz; para birimi, referans ve kaynak toplamları da korunmalıdır.

Özel uygulama seçeneğini düşünmeden önce mevcut karşılaştırmanızın kurallarını ve sorumlusunu belirleyin. Aynı dosya yeniden geldiğinde ne olacağı, açıklanamayan farkın kimde bekleyeceği ve geçmiş kararın nasıl bulunacağı belliyse uygulama kapsamı daha somut çıkar. Ücretli kapsam çalışmasında anonim örnek üzerinden ilerleyebiliriz; gerçek banka dökümü paylaşmanız gerekmez.

Başa dön ↑