Как найти похожее значение в Excel: от простых фильтров до сложных формул

Работа с большими массивами данных в Microsoft Excel часто требует не только точного поиска, но и нахождения похожих значений — частично совпадающих строк, близких по смыслу данных или записей с опечатками. Например, вам может понадобиться найти все варианты написания названия компании ("ООО Ромашка" vs "ООО Ромашка-Плюс"), выявить дубликаты с незначительными различиями или отфильтровать данные по ключевому слову в середине текста.

В отличие от стандартного поиска по точному совпадению (CTRL+F), поиск похожих значений требует более гибких инструментов: от простых фильтров и функций ПОИСК/НАЙТИ до сложных формул с регулярными выражениями или Power Query. В этой статье разберём 7 практических методов — от базовых до продвинутых, — которые помогут находить схожие данные в таблицах любого размера.

Особое внимание уделим трём ключевым сценариям:

  • 🔍 Поиск частичных совпадений (например, слово в середине текста)
  • 📊 Фильтрация данных по шаблону (с использованием подстановочных знаков)
  • 🤖 Автоматическое выявление похожих строк (с учётом опечаток или синонимов)

Все методы протестированы в Excel 2019–2026 и Microsoft 365, а также совместимы с Google Sheets (с учётом синтаксических особенностей).

1. Базовый поиск частичных совпадений с помощью фильтра

Если вам нужно быстро найти все ячейки, содержащие определённое слово или фразу, начните с текстового фильтра. Этот метод не требует знания формул и работает даже в больших таблицах.

Как применить:

  1. Выделите столбец с данными (например, столбец A с названиями товаров).
  2. Перейдите на вкладку Данные → Фильтр (или нажмите CTRL+Shift+L).
  3. Нажмите на стрелочку фильтра в заголовке столбца и выберите Текстовые фильтры → Содержит....
  4. Введите искомую подстроку (например, "ноутбук") и нажмите ОК.

Excel отобразит только строки, где в ячейке есть введённое слово — независимо от регистра и позиции в тексте. Этот способ удобен для первичного анализа данных, но имеет ограничения:

  • 🚫 Не учитывает опечатки (например, "ноутбук" ≠ "ноутбюк").
  • 🚫 Не ищет синонимы или близкие по смыслу слова.
  • 🚫 Не работает с числовыми данными (например, поиск чисел "около 1000").

2. Функции ПОИСК и НАЙТИ: точный контроль над поиском

Для более гибкого поиска частичных совпадений используйте функции ПОИСК (регистронезависимая) и НАЙТИ (регистрозависимая). Они возвращают позицию искомой подстроки в тексте или ошибку #ЗНАЧ!, если совпадение не найдено.

Синтаксис:

=ПОИСК("искомая_подстрока"; "где_искать"; [начальная_позиция])

=НАЙТИ("искомая_подстрока"; "где_искать"; [начальная_позиция])

Примеры применения:

  • 📌 =ПОИСК("apple"; A2) — вернёт 3, если в ячейке A2 текст "Red apple" (подстрока начинается с 3-го символа).
  • 📌 =ЕСЛИ(ЕЧИСЛО(ПОИСК("ноут"; A2)); "Есть"; "Нет") — проверит наличие слова "ноут" в ячейке.
  • 📌 =НАЙТИ("А"; A2) — найдёт только заглавную букву "А" (в отличие от ПОИСК).

Важно: Эти функции чувствительны к пробелам и знакам препинания. Например, ПОИСК("книга"; "книга,") вернёт ошибку, так как запятая считается частью текста.

Как искать с конца строки?

Чтобы найти позицию подстроки с конца текста, используйте комбинацию функций:

=ДЛСТР(A2) - ПОИСК(" "; A2; ПОИСК(" "; A2; 1) + 1) + 2

Эта формула найдёт позицию последнего пробела в ячейке A2 (полезно для извлечения последнего слова).

3. Подстановочные знаки: * и ? для гибкого поиска

Excel поддерживает два подстановочных знака для поиска по шаблону:

  • — заменяет любое количество символов (включая ноль). Например, "ноут" найдёт "ноутбук", "ноутбюк", "ноут".
  • ? — заменяет один любой символ. Например, "ноутб?к" найдёт "ноутбук" и "ноутбюк", но не "ноутбк".

Где их использовать:

  1. В фильтрах: В меню текстового фильтра выберите Содержит и введите шаблон (например, "ноут").
  2. В функциях: Комбинируйте с ПОИСК или СЧЁТЕСЛИ:
    =СЧЁТЕСЛИ(A:A; "ноут")

    Эта формула посчитает все ячейки в столбце A, содержащие слово "ноут" в любом месте.

  3. В условном форматировании: Выделите ячейки, содержащие шаблон, с помощью правила Формула.

Критическая особенность: Подстановочные знаки * и ? работают только с текстовыми данными. Для поиска чисел используйте функции ОКРУГЛ или АБС (см. раздел 5).

📊 Какой метод поиска похожих значений вы используете чаще?
Фильтры
Функции ПОИСК/НАЙТИ
Подстановочные знаки
Формулы массива
Power Query

4. Поиск похожих чисел: ОКРУГЛ, АБС и ПРИБЛИЗ

Числовые данные требуют иного подхода. Например, вам может понадобиться найти все значения "около 1000" с допуском ±5% или выявить дубликаты с плавающей запятой (например, 3,14 и 3,1415).

Методы для работы с числами:

Задача Формула Пример
Поиск чисел в диапазоне =АБС(A2-1000)<=50 Найдёт все числа от 950 до 1050
Поиск с процентным допуском =АБС(A2-1000)<=1000*0,05 Допуск ±5% от 1000 (950–1050)
Округление до ближайшего значения =ОКРУГЛ(A2; -2) Округлит 1234 до 1200
Поиск ближайшего числа в списке =ПРИБЛИЗ(A2; $B$2:$B$100) Найдёт в массиве B2:B100 значение, ближайшее к A2

Для поиска дубликатов с плавающей запятой используйте комбинацию ОКРУГЛ и СЧЁТЕСЛИ:

=СЧЁТЕСЛИ($A$2:$A$100; ОКРУГЛ(A2; 2)) > 1

Эта формула отметит все числа в диапазоне A2:A100, которые после округления до 2 знаков совпадают с текущей ячейкой.

5. Продвинутый поиск: регулярные выражения в Power Query

Если вам нужно найти похожие значения по сложному шаблону (например, email-адреса, номера телефонов или текст с опечатками), используйте Power Query — инструмент для преобразования данных, встроенный в Excel. Он поддерживает регулярные выражения (RegEx), которые позволяют гибко искать текст по шаблону.

Пример: найдём все ячейки, содержащие email-адреса, даже с опечатками (например, "user@example,com" вместо "user@example.com").

Алгоритм действий:

  1. Выделите таблицу и перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  2. В редакторе Power Query выберите столбец с текстом → Преобразовать → Формат → Заменить значения.
  3. В поле Найти введите регулярное выражение:
    [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

    Это шаблон для поиска email-адресов (учитывает большинство опечаток).

  4. Нажмите ОК и загрузите данные обратно в Excel.

Другие полезные шаблоны RegEx для поиска похожих значений:

  • 📞 Номера телефонов: \+?\d{1,3}[-.\s]?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{2}[-.\s]?\d{2}
  • 💰 Суммы денег: \d{1,3}(?:[\s,]\d{3})*(?:\.\d{2})? (найдёт "1 000", "1,000.50", "1000.5")
  • 📅 Даты в любом формате: \d{1,2}[/-]\d{1,2}[/-]\d{2,4}

Удалить пустые строки|Проверить кодировку текста (UTF-8)|Заменить непечатаемые символы|Разделить объединённые данные по столбцам|Сохранить оригинальную таблицу-->

6. Функции массива: поиск самых похожих строк

Для поиска наиболее похожих строк (например, выявления дубликатов с опечатками) используйте функции массива в сочетании с ЛЕВСИМВ (Levenshtein distance) — алгоритмом, который оценивает "расстояние" между двумя строками по количеству изменений (замен, удалений, вставок), необходимых для преобразования одной строки в другую.

Так как в Excel нет встроенной функции ЛЕВСИМВ, её можно реализовать через VBA или использовать приближённую формулу на основе ПОДСТАВИТЬ и ДЛСТР:

=СУММ(

--(ПОДСТР(A2; СТРОКА(ДВССЫЛ("1:" & ДЛСТР(A2))); 1) <> ПОДСТР(B2; СТРОКА(ДВССЫЛ("1:" & ДЛСТР(B2))); 1))

) + АБС(ДЛСТР(A2) - ДЛСТР(B2))

Эта формула посчитает количество несовпадающих символов между ячейками A2 и B2. Чем меньше результат, тем похоже строки. Например:

  • "Excel" vs "Exel" → расстояние = 1 (опущена буква "c").
  • "Microsoft" vs "Microsof" → расстояние = 2 (опущены "t" и "t").

Для автоматизации поиска похожих строк:

  1. Создайте столбец с формулой сравнения каждой строки со всеми остальными.
  2. Отсортируйте результаты по возрастанию расстояния.
  3. Используйте УСЛОВНОЕ ФОРМАТИРОВАНИЕ, чтобы выделить строки с расстоянием < 3 (вероятные опечатки).

7. Дополнительные инструменты: надстройки и макросы

Если встроенных функций Excel недостаточно, рассмотрите специализированные надстройки:

  • 🔧 Fuzzy Lookup Add-In (от Microsoft Research) — бесплатная надстройка для поиска похожих строк с учётом опечаток, синонимов и разных форматов. Скачать можно на официальном сайте Microsoft.
  • 📊 Kutools for Excel — платный пакет инструментов с функцией Select Duplicate & Unique Cells, которая находит неточные дубликаты.
  • 🤖 Анализ данных с Python: если вы работаете с Excel + Python, используйте библиотеку fuzzywuzzy для сравнения строк:
    from fuzzywuzzy import fuzz
    

    similarity = fuzz.ratio("Microsoft Excel", "Microsof Exel") # Вернёт 85 (процент схожести)

Для автоматизации рутинных задач напишите макрос на VBA. Например, этот код найдёт все ячейки в столбце A, похожие на значение в B1 с допуском в 2 символа:

Sub FindSimilar()

Dim rng As Range, cell As Range

Set rng = Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)

For Each cell In rng

If LevenshteinDistance(cell.Value, Range("B1").Value) <= 2 Then

cell.Interior.Color = RGB(255, 200, 200) ' Выделит похожие ячейки

End If

Next cell

End Sub

Function LevenshteinDistance(s1 As String, s2 As String) As Integer

' Реализация алгоритма Левенштейна

' ... (полный код функции можно найти в документации VBA)

End Function

FAQ: Частые вопросы по поиску похожих значений

❓ Как найти ячейки, где текст начинается или заканчивается определённым словом?

Используйте подстановочные знаки в фильтрах или функциях:

  • Начинается с "Привет": =ПОИСК("Привет"; A2) = 1 или фильтр "Привет*".
  • Заканчивается на "world": =ПОИСК("world"; A2) = ДЛСТР(A2) - 4 или фильтр "*world".
❓ Можно ли искать похожие значения в Google Sheets?

Да, все описанные методы работают в Google Sheets, за исключением:

  • Power Query заменяется на Google Apps Script.
  • Функция ПРИБЛИЗ называется APPROXIMATE (только в английской версии).
  • Для ЛЕВСИМВ используйте пользовательскую функцию:
    =LEVEN("текст1"; "текст2")

    (требует установки скрипта).

❓ Как найти числа, которые отличаются не более чем на 10%?

Используйте формулу с АБС и процентным допуском:

=АБС(A2 - B2) <= B2 * 0.1

Для поиска в диапазоне:

=СЧЁТЕСЛИ($A$2:$A$100; ">=" & B2*0.9) - СЧЁТЕСЛИ($A$2:$A$100; ">" & B2*1.1)
❓ Почему функция ПОИСК не находит слово, которое точно есть в ячейке?

Вероятные причины:

  • 🔹 В ячейке есть непечатаемые символы (пробелы, переносы строк). Используйте =ЧИСТ(A2).
  • 🔹 Текст в разных регистрах (например, "Excel" vs "EXCEL"). Используйте НАЙТИ вместо ПОИСК.
  • 🔹 Ячейка содержит формулу, а не текст. Проверьте формат (CTRL+1).
❓ Как автоматически исправить опечатки в больших таблицах?

Способы автоматизации:

  1. Используйте Fuzzy Lookup Add-In для поиска и замены похожих строк.
  2. Напишите макрос на VBA с алгоритмом Левенштейна для замены опечаток на ближайшие правильные варианты.
  3. Экспортируйте данные в Python и используйте библиотеку textdistance:
    from textdistance import levenshtein
    

    corrections = {word: min(vocabulary, key=lambda x: levenshtein(word, x)) for word in data}

⚠️ Внимание: При работе с большими таблицами (более 50 000 строк) функции массива и ПОИСК могут значительно замедлить Excel. В таких случаях используйте Power Query или разбивайте данные на части.
⚠️ Внимание: Функции ПОИСК и НАЙТИ не работают с ячейками, содержащими ошибки (например, #ЗНАЧ!). Предварительно обработайте данные функцией =ЕОШИБКА(A2).