VLOOKUP Fuzzy Match i Excel (3 hurtige måder)

  • Del Dette
Hugh West

I dag skal vi lære at bruge VLOOKUP til at søge efter Fuzzy Match i Excel.

Når vi arbejder med større datasæt, forsøger vi ofte at filtrere lignende værdier fra. En af disse matchingstyper kaldes Fuzzy Match , hvor værdierne ikke er nøjagtigt ens, men de matches stadig på grundlag af deres lighed.

Så lad os diskutere, hvordan du kan bruge VBA VLOOKUP funktion af Excel til at søge efter Fuzzy Match .

Introduktion til Fuzzy Match

A Fuzzy Match er en type af delvist match.

I disse typer matchninger svarer den ene tekst ikke helt til den anden tekst, men de vigtige dele af teksten svarer til den anden tekst.

I det givne eksempel er bogen "Indiens historie under verdenskrigen" indeholder tre vigtige afsnit: Historie , Indien , og Verdenskrig .

Derfor vil alle de bøger, der indeholder enten et eller flere af disse afsnit, passe uskarpt til bogen.

Så de uklare match er:

  • Historien om Anden Verdenskrig
  • Historien om det gamle Grækenland
  • Verdenskrig: Årsager og virkninger
  • Indus-civilisationen: En gammel historie
  • Indien vinder frihed
  • Adolf Hitler: Før og efter verdenskrigen
  • Opdagelsen af Indien

Download arbejdsbog til øvelser

VLOOKUP Fuzzy Matching.xlsm

3 fremgangsmåder til VLOOKUP Fuzzy Match i Excel

Her har vi et datasæt med Navne af nogle bøger fra en boghandel, der hedder.

Vores mål i dag er at bruge den VLOOKUP funktion i Excel til at generere nogle Fuzzy matches Lad os diskutere 3 forskellige tilgange.

1. VLOOKUP Fuzzy Match ved hjælp af jokertegn (hele Lookup_Value Matching)

  • Først og fremmest skal vi generere nogle uskarpe matches ved hjælp af wildcard-tegnet Asterisk (*) symbol. Men husk, at du skal matche hele opslagsværdi i denne metode, ikke de separate dele af den opslagsværdi .

Vi kan f.eks. finde en bog, der indeholder teksten "Anden Verdenskrig" på denne måde.

Kun de bøger, der har den fulde tekst "Anden Verdenskrig" vil matche.

Formlen er enkel: Placer en Asterisk (*) symbolet i begge ender af opslagsværdi tekst.

Formlen vil være:

=VLOOKUP("*Second World War*",B5:B22,1,FALSE)

  • Du kan også bruge en cellehenvisning i stedet for den oprindelige tekst. Brug Ampersand (&) symbolet for at samle dem i en enkelt tekst. Som her:

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

Hvis du vil vide mere om VLOOKUP ved hjælp af jokertegn, gå til denne artikel .

Læs mere: Sådan udføres VLOOKUP med jokertegn i Excel (2 metoder)

2. Fuzzy Match ved hjælp af VBA

Metoden i det foregående afsnit opfylder vores formål delvist, men ikke fuldt ud.

Nu vil vi udlede en formel ved hjælp af en VBA-kode der vil opfylde vores formål næsten fuldstændigt.

  • Først skal du åbne en VBA vindue og indsæt følgende VBA kode i et nyt modul:

Kode :

 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) = "beyond" Final_Remove(8) = "with" Final_Remove(4) = "into" Final_Remove(5) = "before" Final_Remove(6) = "after" Final_Remove(7) = "beyond" Final_Remove(8) ="her" Final_Remove(9) = "der" Final_Remove(10) = "hans" Final_Remove(11) = "hende" Final_Remove(12) = "ham" Final_Remove(13) = "kan" Final_Remove(14) = "kunne" Final_Remove(15) = "kan" Final_Remove(16) = "måske" Final_Remove(17) = "skal" Final_Remove(18) = "bør" Final_Remove(19) = "vil" Final_Remove(20) = "ville" Final_Remove(21) = "dette" Final_Remove(22) = "at" Final_Remove(23) = "have"Final_Remove(24) = "har" Final_Remove(25) = "havde" Final_Remove(26) = "under" 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 Så 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 

Denne kode opbygger en funktion kaldet FUZZYMATCH .

  • Gem den nu på følgende måde trinene i metode 3 i denne artikel .

Denne FUZZYMATCH funktionen finder alle de Fuzzy matches af en Opslagsværdi direkte.

Syntaks af denne FUZZYMATCH funktion er:

=FUZZYMATCH(lookup_value,lookup_range)

For at finde ud af den Fuzzy matches af bogen "Indiens historie under verdenskrigen" , indtast dette opslagsværdi i en celle ( D5 i dette eksempel) og indtast denne formel i en anden celle:

=FUZZYMATCH(D5,B5:B22)

Se, vi har fundet ud af alle bogens uklare matchninger "Indiens historie under verdenskrigen"

  • Her D5 er cellereferencen for den lookup_value ("Historien om Indien under verdenskrigen").
  • B5:B22 er den lookup_range .

Lad os finde ud af det Fuzzy matches af en anden bog kaldet "En notesbog om årsagerne til kriminalitet i storbyerne" .

Indtast dette opslagsværdi i en celle ( D5 i dette eksempel) og indtast denne formel i en anden celle:

=FUZZYMATCH(D5,B5:B22)

💡 Forklaring af formlen

  • FUZZYMATCH funktion er den funktion, vi har bygget i VBA Den tager en streng kaldet opslagsværdi og et område af celler kaldet lookup_range og returnerer et array med alle de Fuzzy matches af strengen.
  • Derfor FUZZYMATCH(D5,B5:B22) returnerer et array af alle de Fuzzy matches af strengen i celle D5 fra området B5:B22 .

Læs mere: Sådan VLOOKUP Partial Text i Excel (med alternativer)

S imilære læsninger

  • VLOOKUP virker ikke (8 grunde & løsninger)
  • INDEX MATCH vs. VLOOKUP-funktion (9 eksempler)
  • Brug VLOOKUP med flere kriterier i Excel (6 metoder + alternativer)
  • Excel VLOOKUP til at returnere flere værdier lodret
  • VLOOKUP og returnering af alle match i Excel (7 måder)

3. Fuzzy Match ved hjælp af Fuzzy Lookup Add-in i Excel

Microsoft Excel giver en Tilføjelsesprogram kaldet Fuzzy Lookup. Ved hjælp af den kan du matche to tabeller for Fuzzy opslag .

  • I første omgang skal du downloade og installere Tilføjelsesprogram fra denne link .
  • Når du har downloadet og installeret det, finder du Fuzzy Lookup Add-in i din Excel-værktøjslinje.

  • Derefter arrangerer du datasættene i to tabeller, som du ønsker at matche.

  • Her har jeg to tabeller med to lister over bøger fra to boghandlere, der hedder Robert Boghandel og Martin Bookshop .
  • Derefter skal du gå til Fuzzy Søg på fanen> klik Fuzzy opslag værktøjet i Excel-værktøjslinjen.

  • Derfor får du en Fuzzy opslag tabel, der er oprettet i sidepanelet i din projektmappe.

I den Venstre bord og Højre bord Vælg navnene på de to tabeller.

I dette eksempel skal du vælge Robert og Martin .

Så i den Kolonner skal du vælge navnene på kolonnerne i hver tabel.

I den Match kolonne skal du vælge den type match, som du ønsker mellem de to kolonner. For Fuzzy Match, Vælg Standard .

  • Endelig skal du klikke på Du vil få det tilsvarende forhold mellem tabellerne i en ny tabel.

Læs mere: VLOOKUP til at sammenligne to lister i Excel (2 eller flere måder)

Konklusion

Ved hjælp af disse metoder kan du bruge VLOOKUP funktion af Excel til at søge efter Fuzzy Match. Selv om disse metoder ikke er 100% effektive, er de stadig meget nyttige. Har du spørgsmål? Du er velkommen til at stille dem i kommentarfeltet. Glem ikke at dele, hvis du har bedre metoder. Hold dig i kontakt med ExcelWIKI .

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.