VLOOKUP neaiškus atitikimas programoje "Excel" (3 greiti būdai)

  • Pasidalinti
Hugh West

Šiandien mokysimės, kaip naudoti VLOOKUP ieškoti Neaiškios rungtynės "Excel" programoje.

Dirbdami su didesniais duomenų rinkiniais dažnai bandome išfiltruoti panašias reikšmes. Vienas iš tokių atitikmenų tipų vadinamas Neaiškios rungtynės , kai reikšmės nėra visiškai vienodos, tačiau jos vis tiek yra lyginamos pagal jų panašumą.

Aptarkime, kaip galite naudoti VBA VLOOKUP funkcija "Excel" ieškoti Neaiškios rungtynės .

Įvadas į "Fuzzy Match

A Neaiškios rungtynės yra tam tikro tipo dalinis atitikimas.

Tokio tipo atitikmenų atveju vienas tekstas ne visiškai sutampa su kitu tekstu, tačiau svarbios teksto dalys sutampa su kitu tekstu.

Pateiktame pavyzdyje knyga "Indijos istorija pasaulinio karo metais" yra trys svarbūs skyriai: Istorija , Indija , ir Pasaulinis karas .

Todėl visos knygos, kuriose yra vienas arba daugiau nei vienas iš šių skyrių, neaiškiai atitiks knygą.

Taigi, neaiškūs atitikmenys yra šie:

  • Antrojo pasaulinio karo istorija
  • Senovės Graikijos istorija
  • Pasaulinis karas: priežastys ir padariniai
  • Indo civilizacija: senovės istorija
  • Indija iškovojo laisvę
  • Adolfas Hitleris: prieš ir po pasaulinio karo
  • Indijos atradimas

Atsisiųsti praktikos sąsiuvinį

VLOOKUP Fuzzy Matching.xlsm

3 VLOOKUP "Fuzzy Match" metodai programoje "Excel

Čia turime duomenų rinkinį su Vardai kai kurių knygų iš knygyno, vadinamo.

Šiandien mūsų tikslas - naudoti VLOOKUP "Excel" funkciją, kad sukurtumėte keletą "Fuzzy Matches . Aptarkime 3 skirtingus požiūrius.

1. VLOOKUP neaiškus atitikimas naudojant užuominas (visas Loookkup_Value atitikimas)

  • Pirmiausia sukursime keletą neaiškių atitikmenų, naudodami pakaitinį simbolį Žvaigždutė (*) simbolį. Tačiau nepamirškite, kad turite suderinti visą lookup_value šiuo metodu, o ne atskiros jo dalys. lookup_value .

Pavyzdžiui, galime rasti knygą, kurioje yra tekstas "Antrasis pasaulinis karas" taip.

Tik tos knygos, kuriose pateikiamas visas tekstas "Antrasis pasaulinis karas" atitiks.

Formulė paprasta. Žvaigždutė (*) simbolis abiejuose galuose lookup_value tekstas.

Formulė bus tokia:

=VLOOKUP("*Antrasis pasaulinis karas*",B5:B22,1,FALSE)

  • Vietoje pradinio teksto taip pat galite naudoti ląstelės nuorodą. Ampersandas (&) simbolį, kad juos sujungtumėte į vieną tekstą. Pavyzdžiui, taip:

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

Norėdami sužinoti daugiau apie VLOOKUP naudodami pakaitinius simbolius, apsilankykite šis straipsnis .

Skaityti daugiau: Kaip "Excel" programoje atlikti VLOOKUP su "Wildcard" (2 metodai)

2. Neaiškios atitikmenis naudojant VBA

Ankstesniame skyriuje aprašytas metodas iš dalies atitinka mūsų tikslą, tačiau ne visiškai.

Dabar išvesime formulę, naudodami a VBA kodas kuris beveik visiškai įgyvendins mūsų tikslą.

  • Iš pradžių atidarykite VBA langą ir įterpkite šį įrašą VBA kodą į naują modulį:

Kodas :

 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 AsVariantas For i = 0 To UBound(Žodžiai) If Len(Žodžiai(i)) = 1 Or Len(Žodžiai(i)) = 2 Then Žodžiai(i) = Replace(Žodžiai(i), Žodžiai(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) ="čia" Final_Remove(9) = "ten" Final_Remove(10) = "jo" Final_Remove(11) = "jos" Final_Remove(12) = "jo" Final_Remove(13) = "gali" Final_Remove(14) = "galėtų" Final_Remove(15) = "gali" Final_Remove(16) = "gali" Final_Remove(17) = "turi" Final_Remove(18) = "turėtų" Final_Remove(19) = "bus" Final_Remove(20) = "būtų" Final_Remove(21) = "tai" Final_Remove(22) = "tai" Final_Remove(23) = "turi"Final_Remove(24) = "turi" Final_Remove(25) = "turėjo" Final_Remove(26) = "per" 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 Tada 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 

Šis kodas sukuria funkciją, vadinamą FUZZYMATCH .

  • Dabar išsaugokite jį taip šio straipsnio 3 metodo veiksmus. .

Šis FUZZYMATCH funkcija nustato visus "Fuzzy Matches Paieškos reikšmė tiesiogiai.

Svetainė Sintaksė šio FUZZYMATCH funkcija yra:

=FUZZYMATCH(lookup_value,lookup_range)

Norėdami sužinoti "Fuzzy Matches knygos "Indijos istorija pasaulinio karo metais" , įveskite šį lookup_value ląstelėje ( D5 šiame pavyzdyje) ir įveskite šią formulę į kitą langelį:

=FUZZYMATCH(D5,B5:B22)

Matote, mes sužinojome visas knygos neaiškias atitikmenis. "Indijos istorija pasaulinio karo metais"

  • Čia D5 yra ląstelės nuoroda į lookup_value ("Indijos istorija pasaulinio karo metais").
  • B5:B22 yra lookup_range .

Išsiaiškinkime "Fuzzy Matches kitos knygos, vadinamos "Užrašų knygelė apie didmiesčių nusikalstamumo priežastis" .

Įveskite šį lookup_value ląstelėje ( D5 šiame pavyzdyje) ir įveskite šią formulę į kitą langelį:

=FUZZYMATCH(D5,B5:B22)

💡 Formulės paaiškinimas

  • Svetainė FUZZYMATCH funkcija yra funkcija, kurią sukūrėme VBA . Jis priima eilutę, vadinamą lookup_value ir ląstelių, vadinamų lookup_range ir grąžina visų "Fuzzy Matches eilutėje.
  • Todėl FUZZYMATCH(D5,B5:B22) grąžina visų "Fuzzy Matches eilutės, esančios ląstelėje D5 iš diapazono B5:B22 .

Skaityti daugiau: Kaip "Excel" programoje VLOOKUP atlikti dalinį tekstą (su alternatyvomis)

Panašūs skaitiniai

  • VLOOKUP neveikia (8 priežastys ir sprendimai)
  • INDEX MATCH vs VLOOKUP funkcija (9 pavyzdžiai)
  • Naudokite VLOOKUP su keliais kriterijais "Excel" programoje (6 metodai + alternatyvos)
  • "Excel" VLOOKUP kelioms vertėms vertikaliai grąžinti
  • VLOOKUP ir visų atitikmenų grąžinimas programoje "Excel" (7 būdai)

3. Neaiški atitiktis naudojant "Excel" priedą "Fuzzy Lookup Add-in

"Microsoft Excel" pateikia Papildinys vadinama "Fuzzy Lookup". Naudodami ją galite suderinti dvi lenteles "Fuzzy Lookup .

  • Iš pradžių atsisiųskite ir įdiekite Papildinys iš šio nuoroda .
  • Sėkmingai atsisiuntę ir įdiegę jį, rasite "Excel" įrankių juostos priedą "Fuzzy Lookup".

  • Tada sudėkite duomenų rinkinius į dvi lenteles, kurias norite sulyginti.

  • Čia turiu dvi lenteles su dviem knygų sąrašais iš dviejų knygynų, pavadintų Roberto knygynas ir Martino knygynas .
  • Tada eikite į Fuzzy Ieškoti tab> spustelėkite "Fuzzy Lookup įrankis "Excel" įrankių juostoje.

  • Taigi, gausite "Fuzzy Lookup lentelę, sukurtą šoniniame sąsiuvinio skydelyje.

Į Kairysis stalas ir Dešinysis stalas parinktis, pasirinkite dviejų lentelių pavadinimus.

Šiame pavyzdyje pasirinkite Robertas ir Martin .

Tada į Stulpeliai skyriuje pasirinkite kiekvienos lentelės stulpelių pavadinimus.

Į Rungtynių stulpelis skyriuje pasirinkite norimą dviejų stulpelių atitikimo tipą. "Fuzzy Match", pasirinkite Numatytoji .

  • Galiausiai spustelėkite Eikite į . Naujoje lentelėje gausite atitinkamus lentelių santykius.

Skaityti daugiau: VLOOKUP dviem sąrašams palyginti "Excel" programoje (2 ar daugiau būdų)

Išvada

Naudodami šiuos metodus galite naudoti VLOOKUP funkcija "Excel" ieškoti "Fuzzy Match". Nors šie metodai nėra 100 % veiksmingi, vis dėlto jie labai naudingi. Ar turite klausimų? Drąsiai užduokite juos komentarų laukelyje. Nepamirškite pasidalyti, jei turite geresnių metodų. Palaikykite ryšį su ExcelWIKI .

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.