VLOOKUP Fuzzy Match în Excel (3 moduri rapide)

  • Imparte Asta
Hugh West

Astăzi vom învăța cum să folosim VLOOKUP pentru a căuta Fuzzy Match în Excel.

În timp ce lucrăm cu seturi mari de date, încercăm adesea să filtrăm valorile similare. Unul dintre aceste tipuri de potrivire se numește Fuzzy Match , unde valorile nu sunt exact aceleași, dar sunt totuși potrivite pe baza similitudinii lor.

Deci, să discutăm despre cum puteți folosi VBA VLOOKUP funcția din Excel pentru a căuta Fuzzy Match .

Introducere în Fuzzy Match

A Fuzzy Match este un tip de potrivire parțială.

În aceste tipuri de corespondențe, un text nu se potrivește în totalitate cu celălalt text, dar secțiunile importante ale textului se potrivesc cu celălalt text.

În exemplul dat, cartea "Istoria Indiei în timpul războiului mondial" conține trei secțiuni importante: Istorie , India , și Războiul Mondial .

Prin urmare, toate cărțile care conțin una sau mai multe dintre aceste secțiuni se vor potrivi în mod neclar cu cartea.

Așadar, meciurile neclare sunt:

  • Istoria celui de-al doilea război mondial
  • Istoria Greciei Antice
  • Războiul mondial: cauze și efecte
  • Civilizația Indus: o istorie antică
  • India câștigă libertatea
  • Adolf Hitler: înainte și după războiul mondial
  • Descoperirea Indiei

Descărcați caietul de practică

VLOOKUP Fuzzy Matching.xlsm

3 abordări pentru VLOOKUP Fuzzy Match în Excel

Aici avem un set de date cu Nume a unor cărți dintr-o librărie numită.

Obiectivul nostru de astăzi este de a utiliza VLOOKUP funcție de Excel pentru a genera niște Potriviri fuzzy Să discutăm despre 3 abordări diferite.

1. VLOOKUP Fuzzy Match folosind wildcards (potrivire întregi Lookup_Value Matching)

  • Mai întâi de toate, vom genera câteva potriviri neclare folosind caracterul wildcard the Asterisc (*) Dar nu uitați că trebuie să potriviți întregul simbol lookup_value în această metodă, și nu părțile separate ale lookup_value .

De exemplu, putem găsi o carte care să conțină textul "Al doilea război mondial" în acest fel.

Numai cărțile care au textul integral "Al doilea război mondial" se va potrivi.

Formula este simplă: plasați un Asterisc (*) la ambele capete ale lookup_value text.

Formula va fi:

=VLOOKUP("*Secundul Război Mondial*",B5:B22,1,FALSE)

  • De asemenea, puteți utiliza o referință de celulă în locul textului original. Utilizați Ampersandă (&) pentru a le unifica într-un singur text, astfel:

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

Pentru a afla mai multe despre VLOOKUP utilizând caractere wildcard, vizitați acest articol .

Citește mai mult: Cum să efectuați VLOOKUP cu Wildcard în Excel (2 metode)

2. Fuzzy Match folosind VBA

Metoda din secțiunea anterioară îndeplinește parțial scopul nostru, dar nu în totalitate.

Acum vom deriva o formulă folosind o Cod VBA care ne va îndeplini scopul aproape în totalitate.

  • La început, deschideți o fereastră VBA și introduceți următoarele VBA într-un nou modul:

Cod :

 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) ="here" Final_Remove(9) = "there" Final_Remove(10) = "his" Final_Remove(11) = "her" Final_Remove(12) = "him" 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 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 

Acest cod construiește o funcție numită FUZZYMATCH .

  • Acum, salvați-l după cum urmează pașii din metoda 3 din prezentul articol .

Acest FUZZYMATCH găsește toate Potriviri fuzzy a unui Valoarea de căutare direct.

The Sintaxa din acest FUZZYMATCH funcția este:

=FUZZYMATCH(lookup_value,lookup_range)

Pentru a afla Potriviri fuzzy a cărții "Istoria Indiei în timpul războiului mondial" , introduceți acest lucru lookup_value într-o celulă ( D5 în acest exemplu) și introduceți această formulă într-o altă celulă:

=FUZZYMATCH(D5,B5:B22)

Vezi, am aflat toate potrivirile neclare ale cărții. "Istoria Indiei în timpul războiului mondial"

  • Aici D5 este referința celulei din lookup_value ("Istoria Indiei în timpul războiului mondial").
  • B5:B22 este gamă_de_cercetare .

Să aflăm Potriviri fuzzy de o altă carte numită "Un caiet al cauzelor care stau la baza criminalității din marile orașe" .

Introduceți acest lookup_value într-o celulă ( D5 în acest exemplu) și introduceți această formulă într-o altă celulă:

=FUZZYMATCH(D5,B5:B22)

💡 Explicația formulei

  • The FUZZYMATCH este funcția pe care am construit-o în VBA Acesta ia un șir de caractere numit lookup_value și un interval de celule numit gamă_de_cercetare și returnează o matrice cu toate Potriviri fuzzy a șirului.
  • Prin urmare, FUZZYMATCH(D5,B5:B22) returnează un tablou cu toate Potriviri fuzzy a șirului din celula D5 din gama B5:B22 .

Citește mai mult: Cum să VLOOKUP Text parțial în Excel (cu alternative)

Lecturi similare

  • VLOOKUP nu funcționează (8 Motive & Soluții)
  • Funcția INDEX MATCH vs VLOOKUP (9 exemple)
  • Utilizați VLOOKUP cu criterii multiple în Excel (6 metode + alternative)
  • Excel VLOOKUP pentru a returna mai multe valori pe verticală
  • VLOOKUP și returnarea tuturor corespondențelor în Excel (7 moduri)

3. Fuzzy Match folosind Fuzzy Lookup Add-in din Excel

Microsoft Excel oferă un Add-in numit Fuzzy Lookup. Cu ajutorul acestuia, puteți să comparați două tabele pentru Fuzzy Lookup .

  • La început, descărcați și instalați programul Add-in din acest link .
  • După ce ați descărcat și instalat cu succes, veți găsi Fuzzy Lookup Add-in în bara de instrumente Excel.

  • Apoi aranjați seturile de date în două tabele pe care doriți să le potriviți.

  • Aici am două tabele care conțin două liste de cărți de la două librării numite Librăria Robert și Librăria Martin .
  • În continuare, mergeți la Fuzzy Căutare tab> click Fuzzy Lookup din bara de instrumente Excel.

  • Prin urmare, veți obține un Fuzzy Lookup tabel creat în panoul lateral al registrului de lucru.

În Masa din stânga și Tabelul din dreapta opțiunile, alegeți numele celor două tabele.

De dragul acestui exemplu, alegeți Robert și Martin .

Apoi, în Coloane alegeți numele coloanelor din fiecare tabel.

În Coloana de meciuri selectați tipul de corespondență pe care doriți să o stabiliți între cele două coloane. Pentru Fuzzy Match, selectați Implicit .

  • În cele din urmă, faceți clic pe Du-te Veți obține raportul de potrivire a tabelelor într-un tabel nou.

Citește mai mult: VLOOKUP pentru a compara două liste în Excel (2 sau mai multe moduri)

Concluzie

Cu ajutorul acestor metode, puteți utiliza VLOOKUP funcția din Excel pentru a căuta Fuzzy Match. Deși aceste metode nu sunt 100% eficiente, totuși sunt foarte utile. Aveți întrebări? Nu ezitați să le puneți în căsuța de comentarii. Nu uitați să dați share dacă aveți metode mai bune. Rămâneți conectați cu ExcelWIKI .

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.