Tartalomjegyzék
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.xlsm3 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 .