VLOOKUP Fuzzy Match in Excel (3 snelle manieren)

  • Deel Dit
Hugh West

Vandaag gaan we leren hoe we VLOOKUP om te zoeken naar Fuzzy Match in Excel.

Bij het werken met grotere gegevensverzamelingen proberen we vaak gelijkaardige waarden uit te filteren. Een van deze overeenstemmingen heet Fuzzy Match , waarbij de waarden niet precies gelijk zijn, maar toch op basis van hun gelijkenis bij elkaar passen.

Dus. Laten we bespreken hoe je de VBA VLOOKUP functie van Excel om te zoeken naar Fuzzy Match .

Inleiding tot Fuzzy Match

A Fuzzy Match is een type van gedeeltelijke overeenkomst.

Bij dit soort overeenkomsten komt de ene tekst niet volledig overeen met de andere tekst, maar de belangrijke delen van de tekst komen wel overeen met de andere tekst.

In het gegeven voorbeeld is het boek "De geschiedenis van India tijdens de wereldoorlog" bevat drie belangrijke onderdelen: Geschiedenis , India en Wereldoorlog .

Daarom zullen alle boeken die één of meer van deze secties bevatten, vaag overeenkomen met het boek.

Dus, de vage overeenkomsten zijn:

  • De geschiedenis van de Tweede Wereldoorlog
  • Geschiedenis van het oude Griekenland
  • Wereldoorlog: oorzaken en gevolgen
  • De Indus-beschaving: Een oude geschiedenis
  • India wint vrijheid
  • Adolf Hitler: voor en na de wereldoorlog
  • De ontdekking van India

Download Praktijk Werkboek

VLOOKUP Fuzzy Matching.xlsm

3 benaderingen voor VLOOKUP Fuzzy Match in Excel

Hier hebben we een dataset met de Namen van enkele boeken van een boekhandel genaamd.

Ons doel vandaag is om de VLOOKUP functie van Excel om wat Fuzzy Matches Laten we 3 verschillende benaderingen bespreken.

1. VLOOKUP Fuzzy Match met behulp van jokertekens (volledige lookup_value matching)

  • Allereerst zullen we een aantal fuzzy matches genereren met behulp van het jokerteken de Asterisk (*) symbool. Maar vergeet niet, je moet de hele lookup_waarde in deze methode, niet de afzonderlijke delen van de lookup_waarde .

We kunnen bijvoorbeeld een boek vinden met de tekst "Tweede Wereldoorlog" op deze manier.

Alleen de boeken met de volledige tekst "Tweede Wereldoorlog" zal overeenkomen.

De formule is eenvoudig. Plaats een Asterisk (*) symbool aan beide uiteinden van de lookup_waarde tekst.

De formule zal zijn:

=VLOOKUP("*Tweede Wereldoorlog*",B5:B22,1,FALSE)

  • U kunt ook een celverwijzing gebruiken in plaats van de oorspronkelijke tekst. Gebruik de optie Ampersand (&) symbool om ze samen te voegen tot één tekst. Zoals dit:

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

Om meer te weten over VLOOKUP met behulp van jokertekens, ga naar dit artikel .

Lees meer: Hoe VLOOKUP uitvoeren met jokerteken in Excel (2 methoden)

2. Fuzzy Match met VBA

De methode in het vorige hoofdstuk beantwoordt gedeeltelijk aan ons doel, maar niet volledig.

Nu zullen we een formule afleiden met behulp van een VBA-code die ons doel bijna volledig zal vervullen.

  • Open eerst een VBA en voeg het volgende in VBA code in een nieuwe module:

Code :

 Functie FUZZYMATCH(str Als String, rng Als Range) str = LCase(str) Dim Remove_1(5) Als Variant Remove_1(0) = "," Remove_1(1) = "." Remove_1(2) = ":" Remove_1(3) = "-" Remove_1(4) = ";" Remove_1(5) = "?" Dim Rem_Str_1 Als String Rem_Str_1 = str Dim rem_count_1 Als Variant Voor Elke 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 AlsVariant 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) = "after" Final_Remove(8) = "after"."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) = "heeft" Final_Remove(25) = "had" Final_Remove(26) = "tijdens" Dim w Als Variant Dim ww Als 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 Dim Lookup Als Variant Dim x Als Integer x = rng.Rows.count ReDim Lookup(x - 1) Dim j Als Variant j = 0 Dim k Als Variant For Each kIn rng Lookup(j) = k j = j + 1 Volgende k Dim Lower Als Variant ReDim Lower(UBound(Lookup)) Dim u Als Variant Voor u = 0 To UBound(Lookup) Lower(u) = LCase(Lookup(u)) Next u Dim out Als Variant ReDim out(UBound(Lookup), 0) Dim count Als Integer co = 0 mark = 0 Dim m Als Variant Voor m = 0 To UBound(Lower) Dim n Als Variant Voor Elke n In Words Dim o Als Variant Voor o = 1 To Len(Lower(m)) Als Mid(Lower(m), o,Len(n)) = n Dan 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 

Deze code bouwt een functie genaamd FUZZYMATCH .

  • Sla het nu op als volgt de stappen van methode 3 van dit artikel .

Deze FUZZYMATCH functie vindt alle Fuzzy Matches van een Lookup Waarde direct.

De Syntax van deze FUZZYMATCH functie is:

=FUZZYMATCH(lookup_value,lookup_range)

Om de Fuzzy Matches van het boek "De geschiedenis van India tijdens de wereldoorlog" voer dit in lookup_waarde in een cel ( D5 in dit voorbeeld) en voer deze formule in een andere cel in:

=FUZZYMATCH(D5,B5:B22)

Kijk, we hebben alle Fuzzy Matches van het boek gevonden... "De geschiedenis van India tijdens de wereldoorlog"

  • Hier D5 is de celverwijzing van de lookup_value ("The History of India during the World War").
  • B5:B22 is de lookup_range .

Laten we de Fuzzy Matches van een ander boek genaamd "Een notitie van de oorzaken achter de misdaad van grote steden" .

Voer dit in lookup_waarde in een cel ( D5 in dit voorbeeld) en voer deze formule in een andere cel in:

=FUZZYMATCH(D5,B5:B22)

Verklaring van de formule

  • De FUZZYMATCH functie is de functie die we in VBA Het neemt een string genaamd lookup_waarde en een reeks cellen genaamd lookup_range en geeft een array terug van alle Fuzzy Matches van de string.
  • Daarom FUZZYMATCH(D5,B5:B22) geeft een array van alle Fuzzy Matches van de string in cel D5 uit het assortiment B5:B22 .

Lees meer: Hoe VLOOKUP Gedeeltelijke tekst in Excel te maken (met alternatieven)

Gelijkaardige lezingen

  • VLOOKUP werkt niet (8 redenen & oplossingen)
  • INDEX MATCH vs VLOOKUP-functie (9 voorbeelden)
  • VLOOKUP gebruiken met meerdere criteria in Excel (6 methoden + alternatieven)
  • Excel VLOOKUP om meerdere waarden verticaal terug te geven
  • VLOOKUP en retourneer alle overeenkomsten in Excel (7 manieren)

3. Fuzzy Match met behulp van Fuzzy Lookup Add-in van Excel

Microsoft Excel biedt een Invoegtoepassing genaamd Fuzzy Lookup. Hiermee kun je twee tabellen matchen voor Fuzzy Lookup .

  • Download en installeer eerst de Invoegtoepassing van deze link .
  • Na het succesvol downloaden en installeren vindt u de Fuzzy Lookup Add-in uw Excel Toolbar.

  • Rangschik vervolgens de gegevenssets in twee tabellen die u wilt matchen.

  • Hier heb ik twee tabellen met twee lijsten van boeken van twee boekhandels genaamd Robert Boekhandel en Martin Boekhandel .
  • Ga vervolgens naar de Fuzzy Kijk op tab> klik Fuzzy Lookup in de Excel Werkbalk.

  • U krijgt dus een Fuzzy Lookup tabel gemaakt in het zijpaneel van uw werkmap.

In de Linker Tafel en Tabel rechts opties, kies de namen van de twee tabellen.

Voor dit voorbeeld kiest u Robert en Martin .

Dan in de Kolommen kies de namen van de kolommen van elke tabel.

In de Wedstrijd Kolom selecteer het type overeenkomst dat u wilt tussen de twee kolommen. Voor Fuzzy Match, selecteer Standaard .

  • Klik tenslotte op Ga naar U krijgt de overeenkomstige verhouding van de tabellen in een nieuwe tabel.

Lees meer: VLOOKUP Twee lijsten vergelijken in Excel (op 2 of meer manieren)

Conclusie

Met deze methoden kunt u de VLOOKUP functie van Excel om te zoeken naar Fuzzy Match. Hoewel deze methoden niet 100% efficiënt zijn, zijn ze toch zeer nuttig. Heb je vragen? Stel ze gerust in het commentaarveld. Vergeet niet te delen als je betere methoden hebt. Blijf in contact met ExcelWIKI .

Hugh West is een zeer ervaren Excel-trainer en -analist met meer dan 10 jaar ervaring in de branche. Hij heeft een bachelor in Accounting en Finance en een master in Business Administration. Hugh heeft een passie voor lesgeven en heeft een unieke lesaanpak ontwikkeld die gemakkelijk te volgen en te begrijpen is. Zijn deskundige kennis van Excel heeft duizenden studenten en professionals over de hele wereld geholpen hun vaardigheden te verbeteren en uit te blinken in hun carrière. Via zijn blog deelt Hugh zijn kennis met de wereld en biedt hij gratis Excel-tutorials en online trainingen aan om individuen en bedrijven te helpen hun volledige potentieel te bereiken.