Skip to content

Fuzzy VLOOKUP VBA user defined functions for Excel using Levenshtein distance.

Notifications You must be signed in to change notification settings

amchercashin/excel_vba_levenshtein

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

VLOOKUPfuzzy

Upd. actually for most purposes this repo is better: https://github.com/amchercashin/excel-vba-ngram Levenshtein maybe suitable for 1-word string. But it usually worse than NGRAM for other cases.

It's an Excel add-in with User Defined Function: =VLOOKUPfuzzy

This function is like regular VLOOKUP, but if it finds no exact match, it uses Levenshtein distance metric to find the closest (most similar) string.

VLOOKUPfuzzy could be userfull for normalising lists.

Use =VLOOKUPfuzzy_help() for help on parameters.

ВПРнечеткий

Upd. вообще, для большинства случаев этот репо: https://github.com/amchercashin/excel-vba-ngram будет лучше. Ливенштейн хорошо работате со строками в 1 слово. Но во всех остальных случаях NGRAM будет лучше.

Это надстройка Excel с пользовательской функцией: =ВПРнечеткий

Это функция работает как стандартная ВПР, но, если она не находит точное совпадение, то возващает наиболее "похожее" значение используя "Расстояние Левенштейна" как метрику сходства.

ВПРнечеткий может быть полезен при нормализации данных по справочникам.

Введите =ВПРнечеткий() для помощи по параметрам.

Пример работы

ВНИМАНИЕ! Формула всегда выдает "какой-то" ответ, даже если с человеческой точки зрения он совсем не к месту.

Например, если:

Если искать текст "кошак" в столбце с такими значениями: "кит", "тигр", "кошка", "крошка", то ВПРнечеткий выдаст "кошка".

Если искать аналогичный текст в столбце с: "кит", "тигр", "крошка", то ВПРнечеткий выдаст "крошка".

Если искать среди: "кит", "тигр", то ВПРнечеткий выдаст "кит".

Т.е. формула требует внимания человека, тем не менее, она способна сильно облегчить труд при приведении списков к стандартному виду.

А так же

Доступна используемая внутри формула =Levenshtein

Она возвращает Расстояние Левенштейна (минимальное количество необходимых перестановок символов) одной строки от другой. Т.е. некую меру сходства (чем меньше - тем сходство выше).

About

Fuzzy VLOOKUP VBA user defined functions for Excel using Levenshtein distance.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published