Нечеткое соответствие VLOOKUP в Excel (3 быстрых способа)

  • Поделись Этим
Hugh West

Сегодня мы узнаем, как использовать VLOOKUP искать Нечеткое соответствие в Excel.

При работе с большими наборами данных мы часто пытаемся отфильтровать похожие значения. Один из таких типов соответствия называется Нечеткое соответствие , где значения не совсем совпадают, но они все равно сопоставляются на основе их сходства.

Итак. Давайте обсудим, как вы можете использовать VBA VLOOKUP функция Excel для поиска Нечеткое соответствие .

Введение в нечеткое соответствие

A Нечеткое соответствие является разновидностью частичное совпадение.

В этих типах совпадений один текст не полностью совпадает с другим текстом, но важные части текста совпадают с другим текстом.

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

Поэтому все книги, содержащие либо один, либо более одного из этих разделов, будут нечетко соответствовать книге.

Итак, нечеткие соответствия:

  • История Второй мировой войны
  • История Древней Греции
  • Мировая война: причины и последствия
  • Цивилизация Инда: древняя история
  • Индия завоевывает свободу
  • Адольф Гитлер: до и после мировой войны
  • Открытие Индии

Скачать Рабочую тетрадь для практических занятий

VLOOKUP Нечеткое сопоставление.xlsm

3 подхода к нечеткому сопоставлению VLOOKUP в Excel

Здесь у нас есть набор данных с параметрами Имена некоторых книг из книжного магазина под названием.

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

1. VLOOKUP Нечеткое сопоставление с использованием подстановочных знаков (полное сопоставление поиск_значение)

  • Прежде всего, мы создадим несколько нечетких совпадений, используя символ подстановки Звездочка (*) символ. Но помните, что вы должны соответствовать всему lookup_value в этом методе, а не отдельные части lookup_value .

Например, мы можем найти книгу, содержащую текст "Вторая мировая война" таким образом.

Только книги с полным текстом "Вторая мировая война" будет соответствовать.

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

Формула будет такой:

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

  • Вы также можете использовать ссылку на ячейку вместо исходного текста. Для этого используйте кнопку Амперсанд (&) символ, чтобы объединить их в один текст. Например, так:

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

Чтобы узнать больше о VLOOKUP используя символы подстановки, посетите эта статья .

Читать далее: Как выполнить VLOOKUP с диким знаком в Excel (2 метода)

2. Нечеткое сопоставление с помощью VBA

Метод, описанный в предыдущем разделе, частично, но не в полной мере отвечает нашей цели.

Теперь мы выведем формулу, используя код VBA который почти полностью выполнит нашу задачу.

  • Сначала откройте VBA окно и вставьте следующее VBA код в новом модуле:

Код :

 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 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) = "beyond"."здесь" Заключительный_Ремове(9) = "там" Заключительный_Ремове(10) = "его" Заключительный_Ремове(11) = "ее" Заключительный_Ремове(12) = "его" Заключительный_Ремове(13) = "может" Заключительный_Ремове(14) = "мог" Заключительный_Ремове(15) = "может" Заключительный_Ремове(16) = "может" Заключительный_Ремове(17) = "должен" Заключительный_Ремове(18) = "должен" Заключительный_Ремове(19) = "будет" Заключительный_Ремове(20) = "бы" Заключительный_Ремове(21) = "это" Заключительный_Ремове(22) = "то" Заключительный_Ремове(23) = "есть"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 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_value в ячейке ( D5 в данном примере) и введите эту формулу в другую ячейку:

=FUZZYMATCH(D5,B5:B22)

💡 Объяснение формулы

  • Сайт FUZZYMATCH функция - это функция, которую мы построили в VBA Он принимает строку под названием lookup_value и диапазон ячеек под названием диапазон поиска и возвращает массив всех Нечеткие совпадения строки.
  • Поэтому 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 Add-in на панели инструментов Excel.

  • Затем разложите наборы данных в две таблицы, которые вы хотите сопоставить.

  • Здесь у меня есть две таблицы, содержащие два списка книг из двух книжных магазинов под названием Книжный магазин "Роберт и Книжный магазин "Мартин .
  • Затем перейдите к Fuzzy Поиск вкладка> нажмите Нечеткий поиск инструмент на панели инструментов Excel.

  • Следовательно, вы получите Нечеткий поиск таблицу, созданную в боковой панели рабочей книги.

В Левый стол и Правый стол опции, выберите имена двух таблиц.

Для данного примера выберите Роберт и Мартин .

Затем в Колонки разделе выберите имена столбцов каждой таблицы.

В Спичечная колонка В разделе выберите тип соответствия, который вы хотите установить между двумя колонками. Для Нечеткий матч, выберите По умолчанию .

  • Наконец, нажмите на Перейти Вы получите соотношение таблиц в новой таблице.

Читать далее: VLOOKUP для сравнения двух списков в Excel (2 или более способов)

Заключение

Используя эти методы, вы можете использовать VLOOKUP функция Excel для поиска Нечеткий матч. Хотя эти методы не являются на 100% эффективными, они все же очень полезны. У вас есть вопросы? Не стесняйтесь задавать их в поле для комментариев. Не забудьте поделиться, если у вас есть более эффективные методы. Оставайтесь на связи с ExcelWIKI .

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.