VLOOKUP Fuzzy Match Excelissä (3 nopeaa tapaa)

  • Jaa Tämä
Hugh West

Tänään opettelemme käyttämään VLOOKUP etsimään Sumea ottelu Excelissä.

Työskennellessämme suurempien datajoukkojen kanssa yritämme usein suodattaa samankaltaisia arvoja. Yksi näistä vastaavuustyypeistä on nimeltään Sumea ottelu , jossa arvot eivät ole täsmälleen samat, mutta ne sovitetaan silti yhteen niiden samankaltaisuuden perusteella.

Keskustellaanpa siitä, miten voit hyödyntää VBA VLOOKUP toiminto Excelin hakua varten Sumea ottelu .

Johdanto Fuzzy Matchiin

A Sumea ottelu on eräänlainen osittainen ottelu.

Tämäntyyppisissä vastaavuuksissa yksi teksti ei vastaa täysin toista tekstiä, mutta tekstin tärkeät osat vastaavat toista tekstiä.

Tässä esimerkissä kirja "Intian historia maailmansodan aikana" sisältää kolme tärkeää osaa: Historia , Intia ja Maailmansota .

Näin ollen kaikki kirjat, jotka sisältävät joko yhden tai useamman näistä osioista, vastaavat epäselvästi kirjaa.

Sumeat ottelut ovat siis:

  • Toisen maailmansodan historia
  • Antiikin Kreikan historia
  • Maailmansota: syyt ja vaikutukset
  • Indus-sivilisaatio: muinainen historia
  • Intia voittaa vapauden
  • Adolf Hitler: ennen ja jälkeen maailmansodan
  • Intian löytäminen

Lataa harjoituskirja

VLOOKUP Fuzzy Matching.xlsm

3 lähestymistapaa VLOOKUP Fuzzy Match Exceliin

Tässä meillä on datajoukko, jossa on merkintä Nimet joidenkin kirjojen kirjakaupan nimeltä.

Tavoitteemme tänään on käyttää VLOOKUP Excelin toiminto tuottaa joitakin Sumeat ottelut Keskustellaan 3 eri lähestymistavasta.

1. VLOOKUP Fuzzy Match käyttäen jokerimerkkejä (koko Lookup_Value Matching)

  • Ensin luodaan joitakin epäselviä osumia käyttämällä jokerimerkkiä the Tähti (*) Muista kuitenkin, että sinun on sovitettava yhteen koko lookup_value tässä menetelmässä, ei erillisiä osia. lookup_value .

Voimme esimerkiksi löytää kirjan, joka sisältää tekstin nimeltä "Toinen maailmansota" tällä tavalla.

Ainoastaan kirjat, joissa on koko teksti "Toinen maailmansota" täsmää.

Kaava on yksinkertainen. Tähti (*) symboli molemmissa päissä lookup_value teksti.

Kaava on seuraava:

=VLOOKUP("*Toinen maailmansota*",B5:B22,1,FALSE)

  • Voit myös käyttää soluviittausta alkuperäisen tekstin sijasta. Käytä komentoa Amperand (&) symboli yhdistää ne yhdeksi tekstiksi. Esimerkiksi näin:

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

Lisätietoja VLOOKUP käyttämällä jokerimerkkejä, käy osoitteessa tämä artikkeli .

Lue lisää: Kuinka suorittaa VLOOKUP jokerimerkillä Excelissä (2 menetelmää)

2. Sumea ottelu VBA:n avulla

Edellisessä jaksossa esitetty menetelmä täyttää tarkoituksemme osittain, mutta ei täysin.

Nyt johdetaan kaava, jossa käytetään VBA-koodi joka täyttää tarkoituksemme lähes täydellisesti.

  • Avaa ensin VBA ikkunaan ja lisää seuraava VBA koodi uuteen moduuliin:

Koodi :

 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 Sanat = 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) = ""and" Final_Remove(8) = ""and" Final_Remove(26) As Variant For i = 0 To UBound(Words)"täällä" Lopullinen_nosto(9) = "siellä" Lopullinen_nosto(10) = "hänen" Lopullinen_nosto(11) = "hänen" Lopullinen_nosto(12) = "hänen" Lopullinen_nosto(13) = "voi" Lopullinen_nosto(14) = "voisi" Lopullinen_nosto(15) = "voi" Lopullinen_nosto(16) = "saattaa" Lopullinen_nosto(17) = "tulee" Lopullinen_nosto(18) = "pitäisi" Lopullinen_nosto(19) = "tulee" Lopullinen_nosto(20) = "tulisi" Lopullinen_nosto(21) = "tämä" Lopullinen_nosto(22) = "tuo" Lopullinen_nosto(23) = "on".Final_Remove(24) = "has" Final_Remove(25) = "had" Final_Remove(26) = "during" 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 wim 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 

Tämä koodi luo funktion nimeltä FUZZYMATCH .

  • Tallenna se nyt seuraavasti tämän artikkelin menetelmän 3 vaiheet .

Tämä FUZZYMATCH funktio selvittää kaikki Sumeat ottelut a Etsi arvo suoraan.

The Syntaksi tästä FUZZYMATCH toiminto on:

=FUZZYMATCH(lookup_value,lookup_range)

Selvittääksesi Sumeat ottelut kirjasta "Intian historia maailmansodan aikana" , kirjoita tämä lookup_value solussa ( D5 tässä esimerkissä) ja kirjoita tämä kaava toiseen soluun:

=FUZZYMATCH(D5,B5:B22)

Olemme saaneet selville kaikki kirjan Fuzzy Matchit. "Intian historia maailmansodan aikana"

  • Tässä D5 on soluviittaus soluun lookup_value ("Intian historia maailmansodan aikana").
  • B5:B22 on lookup_range .

Selvitetään Sumeat ottelut toisen kirjan nimeltä "Muistiinpanovihko suurkaupunkien rikollisuuden syistä" .

Kirjoita tämä lookup_value solussa ( D5 tässä esimerkissä) ja kirjoita tämä kaava toiseen soluun:

=FUZZYMATCH(D5,B5:B22)

💡 Kaavan selitys

  • The FUZZYMATCH funktio on funktio, jonka rakensimme VBA Se ottaa merkkijonon nimeltä lookup_value ja solujen alue nimeltä lookup_range ja palauttaa kaikkien Sumeat ottelut merkkijonosta.
  • Siksi FUZZYMATCH(D5,B5:B22) palauttaa kaikkien Sumeat ottelut solussa olevan merkkijonon D5 alueelta B5:B22 .

Lue lisää: Miten VLOOKUP-osittainen teksti Excelissä (vaihtoehdoilla)

S imilar Readings

  • VLOOKUP ei toimi (8 syytä & ratkaisut)
  • INDEX MATCH vs. VLOOKUP-funktio (9 esimerkkiä)
  • Käytä VLOOKUPia useilla kriteereillä Excelissä (6 menetelmää + vaihtoehdot)
  • Excel VLOOKUP palauttaa useita arvoja pystysuoraan
  • VLOOKUP ja palauttaa kaikki ottelut Excelissä (7 tapaa)

3. Fuzzy Match Excelin Fuzzy Lookup -lisäosan avulla

Microsoft Excel tarjoaa Add-in nimeltään Fuzzy Lookup. Sen avulla voit sovittaa kaksi taulukkoa toisiinsa Sumea haku .

  • Lataa ja asenna ensin Add-in tästä linkki .
  • Kun olet onnistuneesti ladannut ja asentanut sen, löydät Fuzzy Lookup -lisäosan Excel-työkaluriviltäsi.

  • Järjestä sitten tietokokonaisuudet kahteen taulukkoon, jotka haluat sovittaa yhteen.

  • Tässä minulla on kaksi taulukkoa, jotka sisältävät kaksi kirjaluetteloa kahdesta kirjakaupasta nimeltä Robert Kirjakauppa ja Martin Kirjakauppa .
  • Siirry seuraavaksi Fuzzy Katso tab> klikkaa Sumea haku työkalu Excelin työkalupalkissa.

  • Näin ollen saat Sumea haku taulukko, joka on luotu työkirjasi sivupaneeliin.

Vuonna Vasen pöytä ja Oikea pöytä vaihtoehdoista valitse kahden taulukon nimet.

Valitse tässä esimerkissä Robert ja Martin .

Sitten Sarakkeet osiossa valitse kunkin taulukon sarakkeiden nimet.

Vuonna Ottelu sarake Valitse kahden sarakkeen välille haluamasi vastaavuustyyppi. Esimerkiksi Fuzzy Match, valitse Oletusarvo .

  • Klikkaa lopuksi Mene Saat taulukoiden vastaavuussuhteet uuteen taulukkoon.

Lue lisää: VLOOKUP kahden luettelon vertaamiseksi Excelissä (2 tai useampi tapa)

Päätelmä

Näiden menetelmien avulla voit käyttää VLOOKUP toiminto Excelin hakua varten Fuzzy Match. Vaikka nämä menetelmät eivät ole 100% tehokkaita, ne ovat silti erittäin hyödyllisiä. Onko sinulla kysyttävää? Kysy niitä kommenttikentässä. Älä unohda jakaa, jos sinulla on parempia menetelmiä. Pysy yhteydessä osoitteeseen ExcelWIKI .

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.