VLOOKUP Dopasowanie rozmyte w Excelu (3 szybkie sposoby)

  • Udostępnij To
Hugh West

Dzisiaj nauczymy się jak używać VLOOKUP szukać Fuzzy Match w Excelu.

Podczas pracy z większymi zbiorami danych, często próbujemy odfiltrować podobne wartości. Jeden z takich typów dopasowania nazywa się Fuzzy Match , gdzie wartości nie są dokładnie takie same, ale nadal są dopasowane na podstawie ich podobieństwa.

Omówmy więc, jak można wykorzystać VBA VLOOKUP funkcja programu Excel, aby wyszukać Fuzzy Match .

Wprowadzenie do Fuzzy Match

A Fuzzy Match jest typem częściowe dopasowanie.

W tego typu dopasowaniach jeden tekst nie pasuje w pełni do drugiego tekstu, ale ważne fragmenty tekstu pasują do drugiego tekstu.

W podanym przykładzie książka "Historia Indii w czasie wojny światowej" zawiera trzy ważne sekcje: Historia , Indie oraz Wojna światowa .

Dlatego wszystkie książki, które zawierają albo jedną, albo więcej niż jedną z tych sekcji, będą rozmyte.

Zatem mecze rozmyte to:

  • Historia II wojny światowej
  • Historia starożytnej Grecji
  • Wojna światowa: przyczyny i skutki
  • Cywilizacja Indusu: Starożytna historia
  • Indie wygrywają wolność
  • Adolf Hitler: przed i po wojnie światowej
  • Odkrycie Indii

Pobierz Zeszyt ćwiczeń

VLOOKUP Dopasowanie rozmyte.xlsm

3 podejścia do VLOOKUP Fuzzy Match w Excelu

Mamy tu zestaw danych z. Nazwy niektórych książek księgarni o nazwie.

Naszym dzisiejszym celem jest wykorzystanie VLOOKUP funkcja Excela do generowania niektórych Dopasowania rozmyte Omówmy 3 różne podejścia.

1) VLOOKUP Fuzzy Match Using Wildcards (całe Lookup_Value Matching)

  • Po pierwsze, wygenerujemy kilka rozmytych dopasowań przy użyciu znaku wieloznacznego Gwiazdka (*) Ale pamiętaj, że musisz dopasować cały lookup_value w tej metodzie, a nie oddzielne części lookup_value .

Na przykład, możemy znaleźć książkę zawierającą tekst "II wojna światowa" w ten sposób.

Tylko książki posiadające pełny tekst "II wojna światowa" będzie pasował.

Formuła jest prosta. Umieść Gwiazdka (*) symbol na obu końcach lookup_value tekst.

Wzór będzie brzmiał:

=VLOOKUP("*druga wojna światowa*",B5:B22,1,FALSE)

  • Możesz również użyć odwołania do komórki zamiast oryginalnego tekstu. Użyj Ampersand (&) symbolu, aby połączyć je w jeden tekst. np:

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

Aby dowiedzieć się więcej o VLOOKUP używając symboli wieloznacznych, odwiedź ten artykuł .

Read More: Jak wykonać VLOOKUP z Wildcard w Excelu (2 metody)

2. dopasowanie rozmyte przy użyciu VBA

Metoda z poprzedniego rozdziału spełnia nasz cel częściowo, ale nie w pełni.

Teraz wyprowadzimy wzór wykorzystujący Kod VBA który spełni nasz cel prawie całkowicie.

  • Na początku otwórz VBA i wstawić następujące elementy VBA kod w nowym module:

Kod :

 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 As.Variant 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) =."tutaj" Final_Remove(9) = "tam" Final_Remove(10) = "jego" Final_Remove(11) = "jej" Final_Remove(12) = "go" Final_Remove(13) = "może" Final_Remove(14) = "mógłby" Final_Remove(15) = "może" Final_Remove(16) = "mógłby" Final_Remove(17) = "powinien" Final_Remove(18) = "powinien" Final_Remove(19) = "będzie" Final_Remove(20) = "byłby" Final_Remove(21) = "to" Final_Remove(22) = "że" Final_Remove(23) = "mają"Final_Remove(24) = "ma" Final_Remove(25) = "miał" Final_Remove(26) = "podczas" 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 Dim x As Integer x = rng.Rows.count ReDim Lookup(x - 1) Dim j As Variant j = 0 Dim k As Variant For Each k.In 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. 

Ten kod buduje funkcję o nazwie FUZZYMATCH .

  • Teraz zapisz go w następujący sposób kroki z metody 3 tego artykułu .

Ten FUZZYMATCH funkcja znajduje wszystkie Dopasowania rozmyte z Lookup Value bezpośrednio.

Na stronie Składnia tego FUZZYMATCH funkcja to:

=FUZZYMATCH(lookup_value,lookup_range)

Aby dowiedzieć się Dopasowania rozmyte książki "Historia Indii w czasie wojny światowej" , wpisz to lookup_value w komórce ( D5 w tym przykładzie) i wprowadzić tę formułę do innej komórki:

=FUZZYMATCH(D5,B5:B22)

Widzimy, że znaleźliśmy wszystkie rozmyte dopasowania z książki "Historia Indii w czasie wojny światowej"

  • Tutaj D5 jest odnośnikiem do komórki lookup_value ("Historia Indii podczas wojny światowej").
  • B5:B22 to lookup_range .

Dowiedzmy się Dopasowania rozmyte innej książki o nazwie "Notatnik przyczyn przestępczości wielkich miast" .

Wpisz to lookup_value w komórce ( D5 w tym przykładzie) i wprowadzić tę formułę do innej komórki:

=FUZZYMATCH(D5,B5:B22)

💡 Objaśnienie wzoru

  • Na stronie FUZZYMATCH funkcja jest funkcją, którą zbudowaliśmy w VBA Pobiera ciąg znaków o nazwie lookup_value oraz zakres komórek o nazwie lookup_range i zwraca tablicę wszystkich Dopasowania rozmyte ciągu.
  • Dlatego FUZZYMATCH(D5,B5:B22) zwraca tablicę wszystkich Dopasowania rozmyte ciągu w komórce D5 z zakresu B5:B22 .

Read More: Jak VLOOKUP częściowy tekst w Excelu (z alternatywami)

Podobne lektury

  • VLOOKUP nie działa (8 powodów & rozwiązania)
  • INDEX MATCH vs VLOOKUP Funkcja (9 przykładów)
  • Użyj VLOOKUP z wieloma kryteriami w programie Excel (6 metod + alternatywy)
  • Excel VLOOKUP, aby zwrócić wiele wartości pionowo
  • VLOOKUP i zwróć wszystkie dopasowania w Excelu (7 sposobów)

3. dopasowanie rozmyte przy użyciu dodatku Fuzzy Lookup w programie Excel

Microsoft Excel zapewnia Add-in Używając go, możesz dopasować dwie tabele dla Fuzzy Lookup .

  • Na początku należy pobrać i zainstalować Add-in od tego link .
  • Po pomyślnym pobraniu i zainstalowaniu go, znajdziesz Fuzzy Lookup Add-in twój pasek narzędzi Excela.

  • Następnie ułóż zestawy danych w dwie tabele, które chcesz dopasować.

  • Mam tu dwie tablice zawierające dwie listy książek z dwóch księgarni o nazwie Księgarnia Roberta oraz Księgarnia "Martin .
  • Następnie należy przejść do Fuzzy Lookup tab> kliknij Fuzzy Lookup narzędzie w pasku narzędziowym programu Excel.

  • W związku z tym, otrzymasz Fuzzy Lookup tabela utworzona w panelu bocznym skoroszytu.

W Lewy stół oraz Prawy stół opcji, wybierz nazwy dwóch tabel.

Na potrzeby tego przykładu wybierz Robert oraz Martin .

Następnie w Kolumny sekcji, wybierz nazwy kolumn każdej z tabel.

W Kolumna meczowa W sekcji wybierz typ dopasowania, który chcesz zastosować pomiędzy dwoma kolumnami. Dla Fuzzy Match, wybierz Domyślnie .

  • Na koniec kliknij na Wejdź na stronę Otrzymasz dopasowane proporcje tabel w nowej tabeli.

Read More: VLOOKUP Aby porównać dwie listy w Excelu (2 lub więcej sposobów)

Wniosek

Korzystając z tych metod, można użyć VLOOKUP funkcja programu Excel, aby wyszukać Fuzzy Match. Chociaż te metody nie są w 100% skuteczne, to jednak są bardzo przydatne. Masz jakieś pytania? Możesz je zadać w polu komentarza. Nie zapomnij się podzielić, jeśli masz lepsze metody. Pozostań w kontakcie z ExcelWIKI .

Hugh West jest bardzo doświadczonym trenerem i analitykiem Excela z ponad 10-letnim doświadczeniem w branży. Posiada tytuł licencjata w dziedzinie rachunkowości i finansów oraz tytuł magistra administracji biznesowej. Hugh ma pasję do nauczania i opracował unikalne podejście do nauczania, które jest łatwe do naśladowania i zrozumienia. Jego specjalistyczna wiedza na temat programu Excel pomogła tysiącom studentów i profesjonalistów na całym świecie doskonalić swoje umiejętności i osiągać doskonałe wyniki w karierze. Za pośrednictwem swojego bloga Hugh dzieli się swoją wiedzą ze światem, oferując bezpłatne samouczki programu Excel i szkolenia online, aby pomóc osobom indywidualnym i firmom w pełni wykorzystać swój potencjał.