VLOOKUP Fuzzy Match az Excelben (3 gyors módja)

  • Ossza Meg Ezt
Hugh West

Ma megtanuljuk, hogyan használjuk a VLOOKUP keresni Fuzzy Match Excelben.

Nagyobb adathalmazokkal való munka során gyakran próbáljuk kiszűrni a hasonló értékeket. Az egyik ilyen illesztési típus az ún. Fuzzy Match , ahol az értékek nem teljesen azonosak, de a hasonlóságuk alapján még mindig egyeznek.

Beszéljük meg, hogyan használhatja a VBA VLOOKUP funkció az Excel kereséséhez Fuzzy Match .

Bevezetés a Fuzzy Match-be

A Fuzzy Match a részleges egyezés.

Az ilyen típusú egyezéseknél az egyik szöveg nem teljesen egyezik a másik szöveggel, de a szöveg fontos részei egyeznek a másik szöveggel.

Az adott példában a könyv "India története a világháború alatt" három fontos részt tartalmaz: Történelem , India , és Világháború .

Ezért minden olyan könyv, amely egy vagy több ilyen részt tartalmaz, homályosan egyezik a könyvvel.

Tehát a fuzzy egyezések a következők:

  • A második világháború története
  • Az ókori Görögország története
  • Világháború: okok és hatások
  • Az Indus civilizáció: Egy ősi történelem
  • India szabadságot nyer
  • Adolf Hitler: A világháború előtt és után
  • India felfedezése

Gyakorlati munkafüzet letöltése

VLOOKUP Fuzzy Matching.xlsm

3 megközelítés a VLOOKUP Fuzzy Match számára az Excelben

Itt van egy adathalmazunk, amely a Nevek néhány könyvet egy könyvesboltból.

A mai célunk az, hogy a VLOOKUP Excel funkciója, hogy létrehozzon néhány Fuzzy mérkőzések Beszéljünk 3 különböző megközelítésről.

1. VLOOKUP Fuzzy Match Wildcards használatával (teljes Lookup_Value Matching)

  • Először is, létrehozunk néhány fuzzy egyezést a joker karakterrel a Csillag (*) De ne feledd, hogy a teljes szimbólumot meg kell egyezned. lookup_value ebben a módszerben, nem pedig a különálló részek a lookup_value .

Például találhatunk egy könyvet, amely a következő szöveget tartalmazza "Második világháború" így.

Csak a teljes szöveggel rendelkező könyvek "Második világháború" egyezni fog.

A képlet egyszerű. Csillag (*) szimbólumot a lookup_value szöveg.

A képlet a következő lesz:

=VLOOKUP("*Második világháború*",B5:B22,1,FALSE)

  • Az eredeti szöveg helyett cellahivatkozást is használhat. Használja a Amperjel (&) szimbólummal egyetlen szöveggé egyesítheti őket. Így:

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

Ha többet szeretne megtudni VLOOKUP vadkártyák használatával, látogasson el a ez a cikk .

Bővebben: Hogyan hajtsuk végre a VLOOKUP-ot Wildcarddal az Excelben (2 módszer)

2. Fuzzy Match VBA használatával

Az előző szakaszban ismertetett módszer részben, de nem teljes mértékben teljesíti a célunkat.

Most egy képletet fogunk levezetni egy VBA kód ami majdnem teljes mértékben betölti a célunkat.

  • Először nyisson meg egy VBA ablakban, és illessze be a következőt VBA kód egy új modulban:

Kód: :

 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) = "az" Final_Remove(1) = "és" Final_Remove(2) = "de" Final_Remove(3) = "azzal" Final_Remove(4) = "bele" Final_Remove(5) = "előtte" Final_Remove(6) = "utána" Final_Remove(7) = "túl" Final_Remove(8) ="itt" Final_Remove(9) = "ott" Final_Remove(10) = "az övé" Final_Remove(11) = "a nőé" Final_Remove(12) = "a férfi" Final_Remove(13) = "lehet" Final_Remove(14) = "lehetne" Final_Remove(15) = "lehet" Final_Remove(16) = "lehet" Final_Remove(17) = "lesz" Final_Remove(18) = "kellene" Final_Remove(19) = "lesz" Final_Remove(20) = "lenne" Final_Remove(21) = "ez" Final_Remove(22) = "az" Final_Remove(23) = "van" Final_Remove(23) = "van"Final_Remove(24) = "van" Final_Remove(25) = "volt" Final_Remove(26) = "alatt" 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 

Ez a kód létrehoz egy függvényt, a FUZZYMATCH .

  • Most mentse el a következő módon a cikk 3. módszerének lépései .

Ez a FUZZYMATCH függvény kideríti az összes Fuzzy mérkőzések egy Keresési érték közvetlenül.

A Szintaxis ennek FUZZYMATCH funkció:

=FUZZYMATCH(lookup_value,lookup_range)

Megtudni a Fuzzy mérkőzések a könyvről "India története a világháború alatt" , írja be ezt lookup_value egy cellában ( D5 ebben a példában), és írja be ezt a képletet egy másik cellába:

=FUZZYMATCH(D5,B5:B22)

Látod, megtaláltuk az összes Fuzzy Matches a könyvből. "India története a világháború alatt"

  • Itt D5 a cellahivatkozás a lookup_value ("India története a világháború alatt").
  • B5:B22 a lookup_range .

Derítsük ki a Fuzzy mérkőzések egy másik könyv, a "Füzet a nagyvárosok bűnözésének okairól" .

Adja meg ezt lookup_value egy cellában ( D5 ebben a példában), és írja be ezt a képletet egy másik cellába:

=FUZZYMATCH(D5,B5:B22)

💡 A képlet magyarázata

  • A FUZZYMATCH függvény az a függvény, amit a VBA Egy stringet vesz fel, amelynek neve lookup_value és a cellák egy tartománya, az úgynevezett lookup_range és visszaad egy tömböt az összes Fuzzy mérkőzések a karakterláncnak.
  • Ezért FUZZYMATCH(D5,B5:B22) visszaad egy tömböt az összes Fuzzy mérkőzések a cellában lévő karakterlánc D5 a tartományból B5:B22 .

Bővebben: Hogyan kell VLOOKUP részleges szöveget Excelben (alternatívákkal)

Hasonló olvasmányok

  • VLOOKUP nem működik (8 ok & megoldások)
  • INDEX MATCH vs VLOOKUP funkció (9 példa)
  • VLOOKUP használata több kritériummal az Excelben (6 módszer + alternatívák)
  • Excel VLOOKUP több érték függőlegesen történő visszaadásához
  • VLOOKUP és az összes egyezés visszaadása Excelben (7 mód)

3. Fuzzy Match az Excel Fuzzy Lookup Add-in segítségével

A Microsoft Excel egy Add-in Fuzzy Lookup. Segítségével két táblázatot lehet összevetni a Fuzzy keresés .

  • Először töltse le és telepítse a Add-in ebből link .
  • A sikeres letöltés és telepítés után a Fuzzy Lookup Add-in az Excel eszköztárában található.

  • Ezután rendezze az adatkészleteket két táblázatba, amelyeket össze szeretne egyeztetni.

  • Itt van két táblázatom, amelyek két listát tartalmaznak két könyvesbolt két könyvéről. Robert könyvesbolt és Martin könyvesbolt .
  • Ezután menjen a Fuzzy Keresés tab> kattintson Fuzzy keresés eszköz az Excel eszköztárában.

  • Ezért kap egy Fuzzy keresés táblázatot, amelyet a munkafüzet oldalsó paneljén hoztunk létre.

A Bal oldali asztal és Jobb oldali asztal beállítások között válassza ki a két táblázat nevét.

A példa kedvéért válasszuk a Robert és Martin .

Aztán a Oszlopok szakaszban válassza ki az egyes táblázatok oszlopainak nevét.

A Gyufa oszlop szakaszban válassza ki a két oszlop között kívánt egyezés típusát. Fuzzy Match, válassza ki a címet. Alapértelmezett .

  • Végül kattintson a Go Egy új táblázatban megkapja a táblázatok megfelelő arányát.

Bővebben: VLOOKUP két lista összehasonlításához az Excelben (2 vagy több módon)

Következtetés

Ezekkel a módszerekkel használhatja a VLOOKUP funkció az Excel kereséséhez Fuzzy Match. Bár ezek a módszerek nem 100%-os hatékonyságúak, mégis nagyon hasznosak. Van bármilyen kérdésed? Kérdezz bátran a megjegyzés rovatban. Ne felejtsd el megosztani, ha jobb módszereket találtál. Maradj kapcsolatban a következőkkel ExcelWIKI .

Hugh West nagy tapasztalattal rendelkező Excel-oktató és elemző, több mint 10 éves tapasztalattal az iparágban. Számvitel és pénzügy szakos alapdiplomát, valamint üzleti adminisztrációból mesterképzést szerzett. Hugh szenvedélye a tanítás, és egyedülálló tanítási megközelítést dolgozott ki, amely könnyen követhető és érthető. Az Excelben szerzett szakértői tudása világszerte több ezer diáknak és szakembernek segített abban, hogy készségeiket és karrierjüket kiválóan teljesítsék. Hugh blogján keresztül megosztja tudását a világgal, ingyenes Excel-oktatóanyagokat és online képzéseket kínálva, hogy segítse az egyéneket és a vállalkozásokat teljes potenciáljuk kibontakoztatásában.