Размито съвпадение на VLOOKUP в Excel (3 бързи начина)

  • Споделя Това
Hugh West

Днес ще научим как да използваме VLOOKUP да търсите Размито съвпадение в Excel.

При работа с по-големи масиви от данни често се опитваме да филтрираме подобни стойности. Един от тези типове съвпадения се нарича Размито съвпадение , където стойностите не са напълно еднакви, но все пак се съчетават въз основа на тяхното сходство.

И така. Нека обсъдим как можете да използвате VBA VLOOKUP функция на Excel, за да търсите Размито съвпадение .

Въведение в Fuzzy Match

A Размито съвпадение е вид частично съвпадение.

При тези видове съвпадения единият текст не съвпада напълно с другия текст, но важните части от текста съвпадат с другия текст.

В дадения пример книгата "История на Индия по време на Световната война" съдържа три важни раздела: История , Индия , и Световната война .

Затова всички книги, които съдържат един или повече от тези раздели, ще бъдат размити.

Така че размитите съвпадения са:

  • История на Втората световна война
  • История на Древна Гърция
  • Световната война: причини и последици
  • Цивилизацията на Инд: древна история
  • Индия печели свобода
  • Адолф Хитлер: преди и след Световната война
  • Откриването на Индия

Изтегляне на работна тетрадка за практика

VLOOKUP Fuzzy Matching.xlsm

3 подхода за VLOOKUP Fuzzy Match в Excel

Тук имаме набор от данни с Имена на някои книги от една книжарница, наречена.

Нашата цел днес е да използваме VLOOKUP функция на Excel за генериране на някои Размити съвпадения . Нека обсъдим 3 различни подхода.

1. Размито съвпадение на VLOOKUP с използване на заместващи символи (цялостно съвпадение на Lookup_Value)

  • Най-напред ще генерираме няколко размити съвпадения, като използваме символа за заместване Звездичка (*) Но не забравяйте, че трябва да съответствате на целия lookup_value в този метод, а не отделните части на lookup_value .

Например можем да намерим книга, съдържаща текста "Втората световна война" по този начин.

Само книгите с пълния текст "Втората световна война" ще съвпадне.

Формулата е проста. Звездичка (*) символ в двата края на lookup_value текст.

Формулата ще бъде:

=VLOOKUP("*Втора световна война*",B5:B22,1,FALSE)

  • Можете също така да използвате препратка към клетка вместо оригиналния текст. Амперсанд (&) за да ги обедините в един текст:

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

За да научите повече за VLOOKUP използване на заместващи символи, посетете тази статия .

Прочетете още: Как да извършите VLOOKUP с Wildcard в Excel (2 метода)

2. Размито съвпадение с помощта на VBA

Методът от предишния раздел изпълнява нашата цел отчасти, но не напълно.

Сега ще изведем формула, използвайки a Код VBA което ще изпълни целта ни почти напълно.

  • Първоначално отворете VBA и въведете следното VBA код в нов модул:

Код :

 Функция 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) ="тук" Final_Remove(9) = "там" Final_Remove(10) = "неговия" Final_Remove(11) = "нейния" Final_Remove(12) = "него" Final_Remove(13) = "може" Final_Remove(14) = "би могъл" Final_Remove(15) = "може" Final_Remove(16) = "може би" Final_Remove(17) = "ще" Final_Remove(18) = "трябва" Final_Remove(19) = "ще" Final_Remove(20) = "ще" Final_Remove(21) = "това" Final_Remove(22) = "това" Final_Remove(23) = "има"Final_Remove(24) = "има" Final_Remove(25) = "имал" Final_Remove(26) = "по време на" 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 

Този код изгражда функция, наречена FUZZYMATCH .

  • Сега го запишете по следния начин стъпките на Метод 3 от тази статия .

Този FUZZYMATCH функцията открива всички Размити съвпадения на Стойност за търсене директно.

Сайтът Синтаксис на този FUZZYMATCH функция е:

=FUZZYMATCH(lookup_value,lookup_range)

За да откриете Размити съвпадения на книгата "История на Индия по време на Световната война" , въведете това lookup_value в клетка ( D5 в този пример) и въведете тази формула в друга клетка:

=FUZZYMATCH(D5,B5:B22)

Виждате ли, открихме всички размити съвпадения в книгата "История на Индия по време на Световната война"

  • Тук D5 е референцията на клетката на lookup_value ("История на Индия по време на Световната война").
  • B5:B22 е lookup_range .

Нека разберем Размити съвпадения на друга книга, наречена "Бележник за причините за престъпността в големите градове" .

Въведете този lookup_value в клетка ( D5 в този пример) и въведете тази формула в друга клетка:

=FUZZYMATCH(D5,B5:B22)

💡 Обяснение на формулата

  • Сайтът FUZZYMATCH е функцията, която вградихме в VBA . Той приема низ, наречен lookup_value и набор от клетки, наречен lookup_range и връща масив от всички Размити съвпадения на низа.
  • Следователно FUZZYMATCH(D5,B5:B22) връща масив от всички Размити съвпадения на низа в клетката D5 от диапазона B5:B22 .

Прочетете още: Как да VLOOKUP частичен текст в Excel (с алтернативи)

Сходни четения

  • VLOOKUP не работи (8 причини & решения)
  • Функцията INDEX MATCH срещу VLOOKUP (9 примера)
  • Използване на VLOOKUP с множество критерии в Excel (6 метода + алтернативи)
  • Excel VLOOKUP за връщане на множество стойности вертикално
  • VLOOKUP и връщане на всички съвпадения в Excel (7 начина)

3. Размито съвпадение чрез добавката Fuzzy Lookup на Excel

Microsoft Excel предоставя Добавка наречена Fuzzy Lookup. Чрез нея можете да съпоставите две таблици за Размито търсене .

  • Първо изтеглете и инсталирайте Добавка от този връзка .
  • След успешното му изтегляне и инсталиране ще намерите добавката Fuzzy Lookup в лентата с инструменти на Excel.

  • След това подредете наборите от данни в две таблици, които искате да съпоставите.

  • Тук имам две таблици, съдържащи два списъка с книги от две книжарници, наречени Книжарница Robert и Книжарница Мартин .
  • След това отидете в Fuzzy Преглед на tab> щракнете върху Размито търсене инструмент в лентата с инструменти на Excel.

  • Следователно ще получите Размито търсене таблица, създадена в страничния панел на работната ви книга.

В Лява маса и Дясна маса изберете имената на двете таблици.

За целите на този пример изберете Робърт и Мартин .

След това в Колони изберете имената на колоните на всяка таблица.

В Колона за мачове изберете типа на съвпадение между двете колони. Размито съвпадение, изберете По подразбиране .

  • Накрая щракнете върху Отидете на . Ще получите съотношението на съвпаденията на таблиците в нова таблица.

Прочетете още: VLOOKUP за сравняване на два списъка в Excel (2 или повече начина)

Заключение

Използвайки тези методи, можете да използвате VLOOKUP функция на Excel, за да търсите Размито съвпадение. Въпреки че тези методи не са 100% ефективни, те все пак са много полезни. Имате ли някакви въпроси? Не се колебайте да ги зададете в полето за коментари. Не забравяйте да споделите, ако имате по-добри методи. Останете във връзка с ExcelWIKI .

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.