Power Query ile Fuzzy Logic – Düşeyara Alternatifi

Bilirsin, Excel’de Düşeyara / VLOOKUP her zaman elinin altında olan o güvenli araçtır. Ürün listelerini eşleştirmek, müşteri tablolarını birleştirmek, fiyat karşılaştırmaları yapmak… Hepsi onunla olur. Hatta sen işi bir tık ileri götürmüşsündür; son parametresini (Range Lookup) biliyorsun, TRUE ne yapar, FALSE ne yapar, onu bile çözmüşsün. Gurur duyabilirsin kendinle.

Ama kabul et: sorun hâlâ çözülmedi. Çünkü bu kez karşı karşıya olduğun iki veri seti tam olarak eşleşmiyor. Ürün adları kimi yerde fazla kelime içeriyor, kimi yerde eksik. Kodlar bazen yazım hatalarıyla kayıtlı. Exact match seni yarı yolda bıraktı. “Tam eşleşme zorlamayayım, approximate match ile ilerleyeyim” dedin… Baktın ki ortaya saçma sapan eşleşmeler çıktı, küçük veride belki idare ediyor ama büyük tabloda facia. İşte o an “tamam, tıkandım” diyorsun.

Sonra devreye araştırma içgüdün giriyor. İnternette turlamaya başlıyorsun, forumlar, blog yazıları, YouTube videoları… Karşına “fuzzy match” diye bir kavram çıkıyor. Okudukça heyecanlanıyorsun, çünkü mantığı basit: birebir eşleşme yerine benzerlik oranına bakıyor. Harika! diyorsun. Birkaç Excel add-in deniyorsun ama ya çalışmıyor, ya karmaşık, ya da o kadar yavaş ki sabrın tükeniyor.

Ve işte tam burada çoğu kişi bilmediği bir hazineyi kaçırıyor: Power Query. Sadece veriyi temizlemek için değil, benzerlik esaslı eşleştirmeler için de birebir! Üstelik istediğin “benzerlik eşiğini” (threshold) sen belirliyorsun. Böylece yanlış eşleşmeleri azaltabiliyor, doğru eşleşmeleri yakalayabiliyorsun.

Şimdi anlatacaklarım seni o tıkanma noktasından çıkaracak; Düşeyara’nın ötesinde, verini daha akıllı bir şekilde nasıl birleştirebileceğini adım adım göstereceğim.

Power Query ile Fuzzy Logic’in Temelleri

Power Query, Excel’in “arka planda çalışan süper kahramanı”dır. Veriyi çekmek, temizlemek, dönüştürmek konusunda harikalar yaratır. Ama iş veri birleştirmeye geldiğinde de tam bir kurtarıcıdır. Özellikle fuzzy logic ile desteklendiğinde…

Burada mantık çok basit: iki veri kümesini eşleştirirken, birebir aynı olmalarını beklemek yerine, “benzerlik oranı” diye bir kavram üzerinden gidiyoruz. Diyelim ki eski veri setinde ürün adı “Ultra Espresso Kahve 250gr”, yeni veri setinde ise “Ultra Espreso Kahve 250gr” yazıyor. Eskiden Düşeyara exact match olduğu için bu satırlar eşleşmezdi. Ama fuzzy logic ile, aralarındaki benzerlik oranı yüksek olduğunda, bu eşleştirme yapılabilir.


Power Query’de Fuzzy Merge Nasıl Yapılır?

Power Query’de iki tabloyu birleştirmek için Merge (Birleştir) özelliğini kullanırsın. Normalde burada “Exact Match” dışında fazla seçenek yoktur. Ama “Use fuzzy matching” kutusunu işaretleyince sihir başlar.

Burada ayarlanabilir birkaç kritik parametre var:

  • Similarity Threshold: Bu, iki satırın benzer olabilmesi için gereken benzerlik oranı. 0.0 ile 1.0 arasında bir değer alır. 1.0 tam eşleşme, 0.0 ise tamamen farklı demek. Genellikle 0.7-0.8 arası dengeli sonuç verir.
  • Maximum Number of Matches: Her satır için kaç eşleşme getirebileceğin. Eğer yalnızca en iyi eşleşmeyi istiyorsan 1 yazabilirsin.
  • Ignore Case: Büyük-küçük harf duyarlılığını kapatır, ki çoğu durumda faydalıdır.
  • Transformation Table: Buraya özel bir eşleme listesi koyarak, örneğin “Espresso” ve “Espreso” gibi bilinen hata düzeltmelerini yapabilirsin.

Power Query ile Fuzzy Merge Adımları

Elimizde iki tablo var:

  • Tablo_A: Ürün ID ve ürün adları (birinde yazım hataları mevcut)
  • Tablo B: Ürün adları ve fiyatları (benzer ama tam olmayan ürün isimleri)

Amacımız, Tablo A’daki ürünleri, isimleri birebir aynı olmasa bile, Tablo B ile birleştirmek.

  1. Excel’de dosyayı aç ve herhangi bir hücreye tıkla. Ardından Veri sekmesine git, Sorgu ve Bağlantılar ya da Power Query Düzenleyicisini aç.
    Pasted image 20251007214500.png

  2. Veri Al -> Tablolar/Ranges’den her iki tabloyu (Tablo_A ve Tablo_B) ayrı ayrı Power Query editöründe aç. Böylece iki ayrı sorgu olur.

  3. Önce Data > From Table / Range, ardından Create Table.
    Pasted image 20251007214632.png

  4. Bu işlemi yapınca Excel Power Query Editor penceresini açacaktır. Bu pencerede Table1 olan şeyi kafamız karışmasın diye Tablo_A olarak adlandıralım. Ardından Menüden “Close & Load” yanındaki ok tuşuna basarak “Close & Load To” düğmesine basalım. Açılan pencerede sadece “Only Create Connection” seçelim.
    Pasted image 20251007214757.png
    Pasted image 20251007214837.png

Pasted image 20251007215627.png

 

Bu işlemleri yapınca sağdaki Queries & Connections kısmında bu tablo görünecektir.
Pasted image 20251007215414.png

Aynı işlemi Tablo B için de yap şimdi.

  1. Şimdi sıra Merge işleminde. Bunun için yine Data > Get Data > Combine Queries > Merge.
    Pasted image 20251007215830.png

  2. Açılan pencerede Tablo_A sorgusunu seç (burada yanlış yazımlar söz konusu), Tablo_B’yi ikinci tablo olarak seç (bu tabloda doğru yazımlar var).

  3. Her iki tablodan da eşleştirmek istediğin sütunu seç (örneğin “UrunAdi”).

  4. Pencerede en altta Use fuzzy matching (Benzerlik eşleştirmesi kullan) seçeneğini işaretle.

  5. Fuzzy ayarları yapmak için çıkan küçük ayar penceresinde Similarity Threshold değerini 0.9 olarak ayarla, istersen Ignore case seçeneğini aktif et.
    Pasted image 20251007220119.png

  6. OK diyerek birleştirme işlemini yap.

  7. Excel Power Query Editor’ü açacak. ve Merge1 isimli bir sorgu göreceksin.
    Pasted image 20251007220312.png

Ardından Table_B’nin hemen sağ üst köşesinde bulunan ikona tıkla ve tabloyu doğru yazılmış ve verdiğimiz threshold değerine göre eşleşmiş olan ürün adlarıyla expand edelim.
Pasted image 20251007220430.png

Pasted image 20251007220547.png

 

  1. Sonuçları incele; bu işlemden sonra benzer yazımlarla yazılmış ürün isimleri çok daha doğru eşleşmiş olacak.
  2. Son adım olarak bu merge1 sorgusunu sol üst köşeden “Close & Load” diyerek excel’e yükle.
    Pasted image 20251007220716.png

B sütununda yanlış yazılmış olanları, A sütununda ise bunların doğrularını görebilirsin.


Sonuçlar ve İpuçları

  • Eşleşmeler başarılı olduysa, düşük benzerlikli ama yanlış eşleşmeler azalır.
  • Eğer çok fazla yanlış eşleşme varsa, similarity threshold’u yukarı çek veya transformation table kullanarak kelime düzeltmeleri ekle.
  • Çok büyük veri setlerinde işlem süresi uzayabilir; sabırlı ol.
  • Maximum Number of Matches parametresi önemli. Ben benim örneğimde 1 verdiğim için en yüksek ihtimalli olanı getirdi. Lakin 2 verseydim, en yüksek ihtimalli olan 2 değeri getirecekti.
  • ÖNEMLİ: Özellikle Tablo B, yani referans / doğru ürünlerin olduğu tablo eşsiz, ikileme içermeyen temiz veri olmalı. Aksi halde Join aşamasında sıkıntı yaşarsınız.
  • Threshold’u 0.9 olarak belirleyip Merge 2’yi de oluşturabilirsiniz. Böylece daha düşük threshold’a sahip bir eşleşmeye de sahip olursunuz, hiç eşleşme olmamasından yeğdir.

Power Query ile Düşeyara’da sabit kalan sınırları aştın artık. Artık tam ve gelişmiş eşleşmelerle, çok daha güvenilir veri birleştirmeleri yapabilirsin. Bu teknik, veri analizinde zaman tasarrufu ve doğruluk artışı sağlar.