VLOOKUP Fuzzy Match v Excelu (3 hitri načini)

  • Deliti To
Hugh West

Danes se bomo naučili uporabljati VLOOKUP za iskanje Fuzzy Match v Excelu.

Pri delu z večjimi podatkovnimi nizi pogosto poskušamo izločiti podobne vrednosti. Ena od teh vrst ujemanja se imenuje Fuzzy Match , kjer vrednosti niso povsem enake, vendar se še vedno ujemajo na podlagi podobnosti.

Pogovorimo se o tem, kako lahko uporabite VBA VLOOKUP funkcija programa Excel za iskanje Fuzzy Match .

Uvod v razpršeno ujemanje

A Fuzzy Match je vrsta delno ujemanje.

Pri teh vrstah ujemanj se eno besedilo ne ujema v celoti z drugim besedilom, vendar se pomembni deli besedila ujemajo z drugim besedilom.

V danem primeru je knjiga "Zgodovina Indije med svetovno vojno" vsebuje tri pomembne dele: Zgodovina , Indija in Svetovna vojna .

Zato se bodo vse knjige, ki vsebujejo enega ali več teh razdelkov, nejasno ujemale s knjigo.

Tako so nejasna ujemanja naslednja:

  • Zgodovina druge svetovne vojne
  • Zgodovina antične Grčije
  • Svetovna vojna: vzroki in posledice
  • Civilizacija Indus: starodavna zgodovina
  • Indija osvaja svobodo
  • Adolf Hitler: pred in po svetovni vojni
  • Odkritje Indije

Prenesi delovni zvezek za prakso

VLOOKUP Fuzzy Matching.xlsm

3 pristopi za VLOOKUP Fuzzy Match v Excelu

Tu imamo nabor podatkov z Imena nekaterih knjig iz knjigarne z imenom.

Naš današnji cilj je uporabiti VLOOKUP funkcijo programa Excel, da ustvarite nekaj Fuzzy Matches . Pogovorimo se o 3 različnih pristopih.

1. VLOOKUP Fuzzy Match Using Wildcards (Celotno ujemanje vrednosti iskanja)

  • Najprej bomo ustvarili nekaj nejasnih ujemanj z uporabo nadomestnega znaka Zvezdica (*) Vendar ne pozabite, da morate ujemati celoten simbol lookup_value v tej metodi in ne posameznih delov lookup_value .

Na primer, najdemo lahko knjigo, ki vsebuje besedilo "Druga svetovna vojna" na ta način.

Samo knjige s celotnim besedilom "Druga svetovna vojna" se ujemajo.

Formula je preprosta. Zvezdica (*) simbol na obeh koncih lookup_value besedilo.

Formula je naslednja:

=VLOOKUP("*Druga svetovna vojna*",B5:B22,1,FALSE)

  • Namesto izvirnega besedila lahko uporabite tudi sklic na celico. Ampersand (&) da jih združite v eno besedilo. Kot na primer:

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

Če želite izvedeti več o VLOOKUP uporabo nadomestnih znakov, obiščite ta članek .

Preberite več: Kako izvesti VLOOKUP z nadomestnim znakom v Excelu (2 metodi)

2. Fuzzy Match z uporabo VBA

Metoda iz prejšnjega poglavja delno izpolnjuje naš namen, vendar ne v celoti.

Zdaj bomo izpeljali formulo z uporabo Koda VBA ki bo skoraj v celoti izpolnil naš namen.

  • Najprej odprite VBA in vstavite naslednje VBA kodo v novem modulu:

Koda :

 Funkcija 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 AsVarianta 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) ="tukaj" Final_Remove(9) = "tam" Final_Remove(10) = "njegov" Final_Remove(11) = "njen" Final_Remove(12) = "on" Final_Remove(13) = "lahko" Final_Remove(14) = "lahko" Final_Remove(15) = "morda" Final_Remove(16) = "morda" Final_Remove(17) = "bo" Final_Remove(18) = "naj" Final_Remove(19) = "bo" Final_Remove(20) = "bi" Final_Remove(21) = "to" Final_Remove(22) = "tisto" Final_Remove(23) = "imajo"Final_Remove(24) = "ima" Final_Remove(25) = "imel" Final_Remove(26) = "med" 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 Potem 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 

Ta koda zgradi funkcijo z imenom FUZZYMATCH .

  • Zdaj ga shranite na naslednji način korake iz metode 3 tega članka. .

Na spletni strani . FUZZYMATCH funkcija ugotovi vse Fuzzy Matches o Vrednost iskanja neposredno.

Spletna stran Sintaksa tega FUZZYMATCH je funkcija:

=FUZZYMATCH(lookup_value,lookup_range)

Če želite ugotoviti Fuzzy Matches knjige "Zgodovina Indije med svetovno vojno" , vnesite to lookup_value v celici ( D5 v tem primeru) in to formulo vnesite v drugo celico:

=FUZZYMATCH(D5,B5:B22)

Vidite, odkrili smo vsa nejasna ujemanja v knjigi. "Zgodovina Indije med svetovno vojno"

  • Tukaj D5 je referenca celice lookup_value ("Zgodovina Indije med svetovno vojno").
  • B5:B22 je lookup_range .

Ugotovimo Fuzzy Matches druge knjige, imenovane "Zapisnik o vzrokih za kriminal v velikih mestih" .

Vnesite to lookup_value v celici ( D5 v tem primeru) in to formulo vnesite v drugo celico:

=FUZZYMATCH(D5,B5:B22)

💡 Razlaga formule

  • Spletna stran FUZZYMATCH je funkcija, ki smo jo vgradili v VBA . Za to je potreben niz, imenovan lookup_value in območje celic, imenovano lookup_range in vrne polje vseh Fuzzy Matches niza.
  • Zato FUZZYMATCH(D5,B5:B22) vrne polje vseh Fuzzy Matches niza v celici D5 iz območja B5:B22 .

Preberite več: Kako VLOOKUP Delno besedilo v Excelu (z alternativami)

Podobna branja

  • VLOOKUP ne deluje (8 razlogov in rešitev)
  • Funkcija INDEX MATCH proti funkciji VLOOKUP (9 primerov)
  • Uporaba VLOOKUP z več merili v Excelu (6 metod + alternative)
  • Excel VLOOKUP za navpično vračanje več vrednosti
  • VLOOKUP in vrnitev vseh ujemanj v Excelu (7 načinov)

3. Fuzzy Match z uporabo dodatka Fuzzy Lookup v programu Excel

Microsoft Excel zagotavlja Dodatek ki se imenuje Fuzzy Lookup. Z njo lahko primerjate dve tabeli za Fuzzy Lookup .

  • Najprej prenesite in namestite Dodatek iz tega povezava .
  • Po uspešnem prenosu in namestitvi boste našli dodatek Fuzzy Lookup v orodni vrstici Excel.

  • Podatkovna niza nato razvrstite v dve tabeli, ki ju želite uskladiti.

  • Tu imam dve tabeli s seznamoma knjig iz dveh knjigarn, ki se imenujeta Knjigarna Robert in . Knjigarna Martin .
  • Nato pojdite v Fuzzy Iskanje zavihek> kliknite Fuzzy Lookup v orodni vrstici Excel.

  • Zato boste dobili Fuzzy Lookup tabelo, ustvarjeno v stranski plošči delovnega zvezka.

V Leva miza in . Desna miza izberite imena obeh tabel.

V tem primeru izberite Robert in . Martin .

Nato v Stolpci izberite imena stolpcev vsake tabele.

V Stolpec za tekme izberite vrsto ujemanja med stolpcema. Fuzzy Match, izberite Privzeto .

  • Na koncu kliknite na Go . V novi tabeli boste dobili ujemajoče se razmerje tabel.

Preberite več: VLOOKUP za primerjavo dveh seznamov v Excelu (2 ali več načinov)

Zaključek

S temi metodami lahko uporabite VLOOKUP funkcija programa Excel za iskanje Fuzzy Match. Čeprav te metode niso 100-odstotno učinkovite, so vseeno zelo uporabne. Imate kakšna vprašanja? Zastavite jih v polju za komentarje. Ne pozabite deliti, če imate boljše metode. Ostanite povezani z ExcelWIKI .

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.