VLOOKUP Нечітка відповідність в Excel (3 швидких способи)

  • Поділитися Цим
Hugh West

Сьогодні ми навчимося користуватися ПЕРЕГЛЯД для пошуку Нечіткий матч в Excel.

Працюючи з великими масивами даних, ми часто намагаємося відфільтрувати схожі значення. Один з таких типів збігів називається Нечіткий матч де значення не зовсім однакові, але вони все одно зіставляються на основі їх схожості.

Отже, давайте обговоримо, як ви можете використати VBA VLOOKUP функція Excel для пошуку Нечіткий матч .

Вступ до Fuzzy Match

A Нечіткий матч є різновидом частковий збіг.

У цих типах збігів один текст не збігається повністю з іншим текстом, але важливі частини тексту збігаються з іншим текстом.

У наведеному прикладі книга "Історія Індії в роки Другої світової війни" містить три важливі розділи: Історія , Індія і Світова війна .

Тому всі книги, які містять або один, або більше одного з цих розділів, будуть нечітко відповідати книзі.

Отже, нечіткі збіги:

  • Історія Другої світової війни
  • Історія Стародавньої Греції
  • Світова війна: причини та наслідки
  • Цивілізація Інду: давня історія
  • Індія здобуває свободу
  • Адольф Гітлер: до і після світової війни
  • Відкриття Індії

Завантажити Практичний посібник

VLOOKUP Fuzzy Matching.xlsm

3 Підходи до нечіткої відповідності VLOOKUP в Excel

Тут ми маємо набір даних з Імена деяких книжок книгарні під назвою.

Наше завдання сьогодні - використати ПЕРЕГЛЯД функція Excel для формування деяких Нечіткі збіги Поговоримо про 3 різні підходи.

1. нечітка відповідність VLOOKUP з використанням підстановочних знаків (Entire Lookup_Value Matching)

  • Перш за все, згенеруємо кілька нечітких збігів, використовуючи символ підстановки the Зірочка (*) Але пам'ятайте, що ви повинні збігатися з усім lookup_value у цьому методі, а не окремі частини lookup_value .

Наприклад, ми можемо знайти книгу, яка містить текст "Друга світова війна" таким чином.

Тільки книги з повним текстом "Друга світова війна" збігаються.

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

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

=VLOOKUP("*Друга світова війна*",B5:B22,1,FALSE)

  • Ви також можете використовувати посилання на комірку замість оригінального тексту. Амперсанд (&) щоб об'єднати їх в єдиний текст. Ось так:

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

Дізнатися більше про ПЕРЕГЛЯД використовуючи підстановочні знаки, відвідайте ця стаття .

Читати далі: Як виконати 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) = "to" Final_Remove(6) = "before" Final_Remove(7) = "after" Final_Remove(8) = "beyond"тут" 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) = "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 в камері ( 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 .

Читати далі: Як виділити частину тексту в Excel (з альтернативами)

Схожі читання

  • VLOOKUP не працює (8 причин та шляхи вирішення)
  • Функція INDEX MATCH vs VLOOKUP (9 прикладів)
  • Використання СЦЕПИ з декількома критеріями в Excel (6 способів + альтернативи)
  • ВЛОКЗАП Excel для повернення декількох значень по вертикалі
  • Пошук і повернення всіх збігів в Excel (7 способів)

3. нечіткий пошук за допомогою надбудови Fuzzy Lookup в Excel

Microsoft Excel надає можливість Надбудова Він називається Fuzzy Lookup. З його допомогою можна зіставити дві таблиці для Нечіткий пошук .

  • Спочатку завантажте та встановіть Надбудова від цього посилання .
  • Після успішного завантаження та встановлення ви знайдете надбудову Нечіткий пошук на панелі інструментів Excel.

  • Потім упорядкуйте набори даних у дві таблиці, які ви хочете зіставити.

  • Ось у мене є дві таблиці з двома списками книг з двох книгарень, які називаються Книгарня "Роберт і Книгарня "Мартін .
  • Далі перейдіть на сторінку Нечіткий Пошук вкладка> натисніть Нечіткий пошук на панелі інструментів Excel.

  • Таким чином, ви отримаєте Нечіткий пошук таблиця, створена на бічній панелі робочої книги.

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

Для цього прикладу оберіть Роберт і Мартін .

Потім у Колонки виберіть назви колонок кожної таблиці.

В рамках проекту Стовпчик відповідності виберіть тип відповідності між двома стовпчиками, який ви хочете отримати. Нечіткий матч, вибрати За замовчуванням .

  • Нарешті, натисніть на Іди. Ви отримаєте співвідношення відповідності таблиць у новій таблиці.

Читати далі: ВЛОКЗАП Для порівняння двох списків в Excel (2 і більше способів)

Висновок

За допомогою цих методів можна використовувати ПЕРЕГЛЯД функція Excel для пошуку Нечіткий матч. Хоча ці методи не на 100% ефективні, але вони дуже корисні. Якщо у вас залишилися питання, задавайте їх у коментарях. Не забувайте ділитися, якщо у вас є кращі методи. Залишайтеся на зв'язку з нами за адресою ExcelWIKI .

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.