Excel'de DÜŞEYARA Bulanık Eşleştirme (3 Hızlı Yol)

  • Bunu Paylaş
Hugh West

Bugün nasıl kullanacağımızı öğreneceğiz VLOOKUP aramak için Bulanık Eşleşme Excel'de.

Daha büyük veri setleriyle çalışırken, genellikle benzer değerleri filtrelemeye çalışırız. Bu eşleştirme türlerinden biri Bulanık Eşleşme burada değerler tam olarak aynı değildir, ancak yine de benzerliklerine göre eşleştirilirler.

Öyleyse, şimdi de VBA VLOOKUP fonksiyon aramak için Excel'in Bulanık Eşleşme .

Bulanık Eşleşmeye Giriş

A Bulanık Eşleşme bir türüdür Kısmi eşleşme.

Bu tür eşleşmelerde, bir metin diğer metinle tam olarak eşleşmez, ancak metnin önemli bölümleri diğer metinle eşleşir.

Verilen örnekte, kitap "Dünya Savaşı Sırasında Hindistan'ın Tarihi" üç önemli bölüm içermektedir: Tarih , Hindistan ve Dünya Savaşı .

Dolayısıyla, bu bölümlerden birini ya da birden fazlasını içeren tüm kitaplar bulanık bir şekilde kitapla eşleşecektir.

Yani, bulanık eşleşmeler şunlardır:

  • İkinci Dünya Savaşı Tarihi
  • Antik Yunan Tarihi
  • Dünya Savaşı: Nedenleri ve Etkileri
  • İndus Uygarlığı: Kadim Bir Tarih
  • Hindistan Özgürlüğü Kazandı
  • Adolf Hitler: Dünya Savaşı Öncesi ve Sonrası
  • Hindistan'ın Keşfi

Alıştırma Çalışma Kitabını İndirin

VLOOKUP Bulanık Eşleştirme.xlsm

Excel'de DÜŞEYARA Bulanık Eşleştirme için 3 Yaklaşım

Burada bir veri setimiz var İsimler bir kitapçının bazı kitaplarının

Bugünkü amacımız VLOOKUP oluşturmak için Excel'in Bulanık Eşleşmeler . 3 farklı yaklaşım üzerinde tartışalım.

1. VLOOKUP Joker Karakterler Kullanarak Bulanık Eşleştirme (Tüm Arama_Değer Eşleştirme)

  • Öncelikle, joker karakteri kullanarak bazı bulanık eşleşmeler oluşturacağız Yıldız işareti (*) Ama unutmayın, tüm sembolü eşleştirmeniz gerekir. lookup_value ayrı parçaları değil, bu yöntemde lookup_value .

Örneğin, şu metni içeren bir kitap bulabiliriz "İkinci Dünya Savaşı" bu şekilde.

Sadece tam metne sahip kitaplar "İkinci Dünya Savaşı" eşleşecek.

Formül çok basit. Yıldız işareti (*) sembolünün her iki ucunda lookup_value Metin.

Formül şöyle olacak:

=VLOOKUP("*İkinci Dünya Savaşı*",B5:B22,1,FALSE)

  • Ayrıca orijinal metnin yerine bir hücre referansı da kullanabilirsiniz. Ampersand (&) sembolünü tek bir metinde birleştirmek için kullanın:

=VLOOKUP("*"&D5&"*",B5:B22,1,FALSE)

Hakkında daha fazla bilgi edinmek için VLOOKUP joker karakterleri kullanarak bu makale .

Daha fazlasını okuyun: Excel'de Wildcard ile DÜŞEYARA Nasıl Yapılır (2 Yöntem)

2. VBA Kullanarak Bulanık Eşleştirme

Önceki bölümdeki yöntem amacımızı kısmen yerine getirmektedir, ancak tam olarak değil.

Şimdi a kullanarak bir formül türeteceğiz VBA kodu amacımızı neredeyse tamamen yerine getirecek.

  • İlk olarak, bir VBA penceresini açın ve aşağıdakileri ekleyin VBA yeni bir modülde kodlayın:

Kod :

 Function FUZZYMATCH(str As String, rng As Range) str = LCase(str) Dim Remove_1(5) As Variant Remove_1(0) = "," Remove_1(1) = "." Remove_1(2) = ":" Remove_1(3) = "-" Remove_1(4) = ";" Remove_1(5) = "?" Dim Rem_Str_1 As String Rem_Str_1 = str Dim rem_count_1 As Variant For Each rem_count_1 In Remove_1 Rem_Str_1 = Replace(Rem_Str_1, rem_count_1, "") Next rem_count_1 Words = Split(Rem_Str_1) Dim i AsVariant For i = 0 To UBound(Words) If Len(Words(i)) = 1 Or Len(Words(i)) = 2 Then Words(i) = Replace(Words(i), Words(i), " bt ") End If Next i Dim Final_Remove(26) As Variant Final_Remove(0) = "the" Final_Remove(1) = "and" Final_Remove(2) = "but" Final_Remove(3) = "with" Final_Remove(4) = "into" Final_Remove(5) = "before" Final_Remove(6) = "after" Final_Remove(7) = "beyond" Final_Remove(8) ="burada" Final_Remove(9) = "orada" Final_Remove(10) = "onun" Final_Remove(11) = "onun" Final_Remove(12) = "onun" Final_Remove(13) = "can" Final_Remove(14) = "could" Final_Remove(15) = "may" Final_Remove(16) = "might" Final_Remove(17) = "shall" Final_Remove(18) = "should" Final_Remove(19) = "will" Final_Remove(20) = "would" Final_Remove(21) = "this" Final_Remove(22) = "that" Final_Remove(23) = "have"Final_Remove(24) = "has" Final_Remove(25) = "had" Final_Remove(26) = "during" Dim w As Variant Dim ww As Variant For w = 0 To UBound(Words) For Each ww In Final_Remove If Words(w) = ww Then Words(w) = Replace(Words(w), Words(w), " bt ") Exit For ' End If Next ww Next w Dim Lookup As Variant Dim x As Integer x = rng.Rows.count ReDim Lookup(x - 1) Dim j As Variant j = 0 Dim k As Variant For Each kIn rng Lookup(j) = k j = j + 1 Next k Dim Lower As Variant ReDim Lower(UBound(Lookup)) Dim u As Variant For u = 0 To UBound(Lookup) Lower(u) = LCase(Lookup(u)) Next u Dim out As Variant ReDim out(UBound(Lookup), 0) Dim count As Integer co = 0 mark = 0 Dim m As Variant For m = 0 To UBound(Lower) Dim n As Variant For Each n In Words Dim o As Variant For o = 1 To Len(Lower(m)) If Mid(Lower(m), o,Len(n)) = n Then out(co, 0) = Lookup(m) co = co + 1 mark = mark + 1 Exit For End If Next o If mark> 0 Then Exit For End If Next n mark = 0 Next m Dim output As Variant ReDim output(co - 1, 0) Dim z As Variant For z = 0 To co - 1 output(z, 0) = out(z, 0) Next z FUZZYMATCH = output End Function 

Bu kod, aşağıdaki gibi bir fonksiyon oluşturur FUZZYMATCH .

  • Şimdi, aşağıdaki şekilde kaydedin Bu makaledeki 3. Yöntemin adımları .

Bu FUZZYMATCH fonksiyonu tüm Bulanık Eşleşmeler bir Arama Değeri doğrudan.

Bu Sözdizimi bunun FUZZYMATCH işlevidir:

=FUZZYMATCH(lookup_value,lookup_range)

Öğrenmek için Bulanık Eşleşmeler kitabın "Dünya Savaşı Sırasında Hindistan'ın Tarihi" , bunu girin lookup_value bir hücrede ( D5 bu örnekte) ve bu formülü başka bir hücreye girin:

=FUZZYMATCH(D5,B5:B22)

Bakın, kitaptaki tüm Bulanık Eşleşmeleri bulduk "Dünya Savaşı Sırasında Hindistan'ın Tarihi"

  • İşte D5 'nin hücre referansıdır. lookup_value ("Dünya Savaşı Sırasında Hindistan Tarihi").
  • B5:B22 bu lookup_range .

Hadi öğrenelim Bulanık Eşleşmeler adlı başka bir kitabın "Büyük Şehirlerdeki Suçların Nedenleri Üzerine Bir Not Defteri" .

Bunu girin lookup_value bir hücrede ( D5 bu örnekte) ve bu formülü başka bir hücreye girin:

=FUZZYMATCH(D5,B5:B22)

💡 Formülün Açıklanması

  • Bu FUZZYMATCH fonksiyonunda oluşturduğumuz fonksiyon VBA . adlı bir dize alır lookup_value olarak adlandırılan bir hücre aralığı lookup_range ve döndürdüğü dizi tüm Bulanık Eşleşmeler dizenin.
  • Bu nedenle FUZZYMATCH(D5,B5:B22) 'nin tümünü içeren bir dizi döndürür. Bulanık Eşleşmeler hücredeki dizenin D5 menzilden B5:B22 .

Daha fazlasını okuyun: Excel'de Kısmi Metin Nasıl DÜŞEYARA Yapılır (Alternatiflerle)

Benzer Okumalar

  • DÜŞEYARA Çalışmıyor (8 Neden & Çözümler)
  • INDEX MATCH vs VLOOKUP Fonksiyonu (9 Örnek)
  • Excel'de Birden Çok Ölçütle DÜŞEYARA Kullanma (6 Yöntem + Alternatifler)
  • Birden Fazla Değeri Dikey Olarak Döndürmek için Excel DÜŞEYARA
  • Excel'de DÜŞEYARA ve Tüm Eşleşmeleri Döndürme (7 Yol)

3. Excel'in Bulanık Arama Eklentisini Kullanarak Bulanık Eşleştirme

Microsoft Excel bir Eklenti Fuzzy Lookup olarak adlandırılır. Bunu kullanarak, iki tabloyu eşleştirebilirsiniz Bulanık Arama .

  • İlk olarak, aşağıdaki programı indirip yükleyin Eklenti bundan link .
  • Başarılı bir şekilde indirip kurduktan sonra, Bulanık Arama Eklentisini Excel Araç Çubuğunuzda bulacaksınız.

  • Ardından veri setlerini eşleştirmek istediğiniz iki tablo halinde düzenleyin.

  • Burada iki kitapçıdan iki kitap listesi içeren iki tablom var. Robert Kitabevi ve Martin Kitabevi .
  • Ardından, şu adrese gidin Fuzzy Arama tab> tıklayın Bulanık Arama Excel Araç Çubuğundaki araç.

  • Bu nedenle, bir Bulanık Arama tablosunu çalışma kitabınızın yan panelinde oluşturun.

İçinde Sol Masa ve Sağ Masa seçeneklerinde, iki tablonun adlarını seçin.

Bu örnek için şunları seçin Robert ve Martin .

Sonra da Sütunlar bölümünde, her tablonun sütunlarının adlarını seçin.

İçinde Maç Sütunu bölümünde, iki sütun arasında istediğiniz eşleşme türünü seçin. Fuzzy Match, seçin Varsayılan .

  • Son olarak Git Tabloların eşleşme oranını yeni bir tabloda alacaksınız.

Daha fazlasını okuyun: Excel'de İki Listeyi Karşılaştırmak için DÜŞEYARA (2 veya Daha Fazla Yol)

Sonuç

Bu yöntemleri kullanarak VLOOKUP fonksiyon aramak için Excel'in Fuzzy Match. Bu yöntemler %100 etkili olmasa da yine de çok faydalıdır. Herhangi bir sorunuz var mı? Yorum kutusuna sormaktan çekinmeyin. Daha iyi yöntemleriniz varsa paylaşmayı unutmayın. ile bağlantıda kalın ExcelWIKI .

Hugh West, sektörde 10 yılı aşkın deneyime sahip oldukça deneyimli bir Excel eğitmeni ve analistidir. Muhasebe ve Finans alanında lisans derecesine ve İşletme alanında yüksek lisans derecesine sahiptir. Hugh öğretme tutkusuna sahiptir ve takip etmesi ve anlaması kolay benzersiz bir öğretim yaklaşımı geliştirmiştir. Excel konusundaki uzman bilgisi, dünya çapında binlerce öğrencinin ve profesyonelin becerilerini geliştirmesine ve kariyerlerinde başarılı olmasına yardımcı olmuştur. Hugh, blogu aracılığıyla bilgisini dünyayla paylaşıyor, bireylerin ve işletmelerin tam potansiyellerine ulaşmalarına yardımcı olmak için ücretsiz Excel eğitimleri ve çevrimiçi eğitimler sunuyor.