VLOOKUP Fuzzy Match v aplikaci Excel (3 rychlé způsoby)

  • Sdílet Toto
Hugh West

Dnes se naučíme používat VLOOKUP vyhledat Fuzzy Match v aplikaci Excel.

Při práci s většími soubory dat se často snažíme odfiltrovat podobné hodnoty. Jedním z těchto typů párování je tzv. Fuzzy Match , kde hodnoty nejsou přesně stejné, ale přesto jsou porovnávány na základě jejich podobnosti.

Probereme, jak můžete používat VBA VLOOKUP funkce aplikace Excel k vyhledávání Fuzzy Match .

Úvod do Fuzzy Match

A Fuzzy Match je typ částečná shoda.

V těchto typech shod se jeden text neshoduje s druhým textem v plném rozsahu. Důležité části textu se však shodují s druhým textem.

V uvedeném příkladu je kniha "Dějiny Indie za světové války" obsahuje tři důležité části: Historie , Indie a Světová válka .

Proto všechny knihy, které obsahují buď jednu, nebo více než jednu z těchto částí, budou knize rozmazaně odpovídat.

Fuzzy shody jsou tedy tyto:

  • Dějiny druhé světové války
  • Dějiny starověkého Řecka
  • Světová válka: příčiny a důsledky
  • Civilizace Indu: starověké dějiny
  • Indie získává svobodu
  • Adolf Hitler: před světovou válkou a po ní
  • Objevení Indie

Stáhnout cvičebnici

VLOOKUP Fuzzy Matching.xlsm

3 přístupy pro VLOOKUP Fuzzy Match v aplikaci Excel

Zde máme datovou sadu se znakem Jména některých knih z knihkupectví s názvem.

Naším dnešním cílem je využít VLOOKUP funkce aplikace Excel k vygenerování některých Fuzzy shody . Podívejme se na 3 různé přístupy.

1. VLOOKUP Fuzzy Match pomocí zástupných znaků (celá shoda Lookup_Value)

  • Nejprve vytvoříme několik fuzzy shod pomocí zástupného znaku. Hvězdička (*) Ale nezapomeňte, že se musíte shodovat s celým symbolem. lookup_value v této metodě, nikoliv jednotlivé části lookup_value .

Můžeme například najít knihu, která obsahuje text "Druhá světová válka" tímto způsobem.

Pouze knihy s plným textem "Druhá světová válka" bude odpovídat.

Vzorec je jednoduchý. Hvězdička (*) symbol na obou koncích lookup_value text.

Vzorec bude následující:

=VLOOKUP("*Druhá světová válka*",B5:B22,1,FALSE)

  • Místo původního textu můžete také použít odkaz na buňku. Použijte příkaz Ampersand (&) sloučit je do jednoho textu. Například takto:

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

Chcete-li se dozvědět více o VLOOKUP pomocí zástupných znaků navštivte tento článek .

Přečtěte si více: Jak provést VLOOKUP se zástupným znakem v aplikaci Excel (2 metody)

2. Fuzzy match pomocí VBA

Metoda uvedená v předchozí části částečně splňuje náš účel, ale ne zcela.

Nyní odvodíme vzorec pomocí Kód VBA který téměř zcela splní náš účel.

  • Nejprve otevřete VBA a vložte následující VBA kód v novém modulu:

Kód :

 Funkce 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) = "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) ="zde" Final_Remove(9) = "tam" Final_Remove(10) = "jeho" Final_Remove(11) = "její" Final_Remove(12) = "jeho" Final_Remove(13) = "může" Final_Remove(14) = "mohl" Final_Remove(15) = "může" Final_Remove(16) = "může" Final_Remove(17) = "bude" Final_Remove(18) = "měl by" Final_Remove(19) = "bude" Final_Remove(20) = "by" Final_Remove(21) = "tento" Final_Remove(22) = "tento" Final_Remove(23) = "mít"Final_Remove(24) = "má" Final_Remove(25) = "měl" Final_Remove(26) = "během" 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 

Tento kód vytvoří funkci s názvem FUZZYMATCH .

  • Nyní jej uložte takto kroky metody 3 tohoto článku .

Tento FUZZYMATCH funkce zjistí všechny Fuzzy shody o Hodnota vyhledávání přímo.

Na stránkách Syntaxe tohoto FUZZYMATCH funkce je:

=FUZZYMATCH(lookup_value,lookup_range)

Chcete-li zjistit Fuzzy shody knihy "Dějiny Indie za světové války" , zadejte toto lookup_value v buňce ( D5 v tomto příkladu) a zadejte tento vzorec do jiné buňky:

=FUZZYMATCH(D5,B5:B22)

Podívejte se, zjistili jsme všechny nejasné shody v knize. "Dějiny Indie za světové války"

  • Zde D5 je odkaz na buňku lookup_value ("Dějiny Indie za světové války").
  • B5:B22 je lookup_range .

Zjistěme Fuzzy shody jiné knihy s názvem "Zápisník příčin kriminality velkých měst" .

Zadejte tento lookup_value v buňce ( D5 v tomto příkladu) a zadejte tento vzorec do jiné buňky:

=FUZZYMATCH(D5,B5:B22)

💡 Vysvětlení vzorce

  • Na stránkách FUZZYMATCH je funkce, kterou jsme zabudovali do VBA . Přebírá řetězec s názvem lookup_value a rozsah buněk nazvaný lookup_range a vrací pole všech Fuzzy shody řetězce.
  • Proto FUZZYMATCH(D5,B5:B22) vrací pole všech Fuzzy shody řetězce v buňce D5 ze sortimentu B5:B22 .

Přečtěte si více: Jak provést VLOOKUP částečného textu v aplikaci Excel (s alternativami)

Podobná čtení

  • Nefunkční VLOOKUP (8 důvodů a řešení)
  • Funkce INDEX MATCH vs. VLOOKUP (9 příkladů)
  • Použití VLOOKUP s více kritérii v aplikaci Excel (6 metod + alternativy)
  • VLOOKUP aplikace Excel pro vertikální vrácení více hodnot
  • VLOOKUP a vrácení všech shod v aplikaci Excel (7 způsobů)

3. Fuzzy shoda pomocí doplňku Fuzzy Lookup aplikace Excel

Microsoft Excel poskytuje Doplněk s názvem Fuzzy Lookup. Pomocí něj můžete porovnat dvě tabulky pro Fuzzy vyhledávání .

  • Nejprve si stáhněte a nainstalujte Doplněk z tohoto odkaz .
  • Po úspěšném stažení a instalaci najdete doplněk Fuzzy Lookup na panelu nástrojů aplikace Excel.

  • Poté uspořádejte soubory dat do dvou tabulek, které chcete porovnat.

  • Mám zde dvě tabulky obsahující dva seznamy knih ze dvou knihkupectví s názvem Knihkupectví Robert a Knihkupectví Martin .
  • Poté přejděte do Fuzzy Vyhledávání tab> klikněte na Fuzzy vyhledávání na panelu nástrojů aplikace Excel.

  • Proto získáte Fuzzy vyhledávání tabulku vytvořenou v postranním panelu sešitu.

V Levý stůl a Pravý stůl vyberte názvy obou tabulek.

Pro účely tohoto příkladu zvolte Robert a Martin .

Pak v Sloupce vyberte názvy sloupců jednotlivých tabulek.

V Sloupec zápasu vyberte typ shody, kterou chcete mezi oběma sloupci. Fuzzy Match, vybrat Výchozí .

  • Nakonec klikněte na Přejít na . Získáte odpovídající poměr tabulek v nové tabulce.

Přečtěte si více: VLOOKUP pro porovnání dvou seznamů v aplikaci Excel (2 nebo více způsoby)

Závěr

Pomocí těchto metod můžete použít VLOOKUP funkce aplikace Excel k vyhledávání Fuzzy Match. I když tyto metody nejsou stoprocentně účinné, přesto jsou velmi užitečné. Máte nějaké otázky? Neváhejte se na ně zeptat v poli pro komentáře. Nezapomeňte se podělit, pokud máte lepší metody. Zůstaňte ve spojení s ExcelWIKI .

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.