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

Если вам нужно найти все ячейки, содержащие конкретный фрагмент текста (например, "ООО" в названиях компаний или "2026" в датах), Excel предлагает минимум 5 встроенных способов — от элементарного поиска через Ctrl+F до сложных формул с регулярными выражениями. Проблема в том, что стандартный поиск (Найти и заменить) часто игнорирует регистр, не умеет искать по шаблонам и не выделяет результаты в отдельный список. В 80% случаев пользователи допускают ошибку, используя функцию ПОИСК вместо НАЙТИ, что приводит к некорректным результатам при работе с кириллицей или спецсимволами.

В этой статье разберём не только базовые методы (вроде ПОИСКПОЗ с подстановочными знаками), но и продвинутые — например, как через Power Query извлечь все ячейки с частичным совпадением в отдельную таблицу или как использовать ФИЛЬТР в Excel 365 для динамического поиска. Особое внимание уделим типичным ловушкам: почему формула =ЕСЛИ(ПОИСК("текст";A1);"Да";"Нет") возвращает ошибку #ЗНАЧ!, если искомого фрагмента нет, и как это исправить.

1. Быстрый поиск через Ctrl+F: когда хватает стандартных инструментов

Самый простой способ найти часть слова в Excel — использовать горячие клавиши Ctrl+F (или Cmd+F на Mac). Этот метод подходит, если вам нужно:

  • 🔍 Визуально проверить, есть ли фрагмент текста в таблице.
  • 📍 Перейти к конкретной ячейке с совпадением.
  • 🔄 Заменить найденный фрагмент на другой (через Ctrl+H).

Однако у этого способа есть критические ограничения:

  • ❌ Нельзя сохранить результаты поиска в отдельный список.
  • ❌ Не работает с формулами (ищет только отображаемые значения).
  • ❌ Нет возможности искать с учётом регистра (кроме ручной настройки в Параметры поиска).

Чтобы включить поиск с учётом регистра:

  1. Нажмите Ctrl+F → кликните на Параметры (или Options в английской версии).
  2. Поставьте галочку напротив Учитывать регистр (Match case).
  3. Введите искомый фрагмент и нажмите Найти все (Find All).
⚠️ Внимание: Если вы ищете текст в ячейках с формулами, Ctrl+F проигнорирует формулу и будет искать только итоговое значение. Например, если в ячейке формула =СЦЕПИТЬ("Привет";" мир"), поиск по слову "Привет" не сработает.
📊 Как часто вы используете поиск по части слова в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

2. Функции ПОИСК и НАЙТИ: ключевые различия и примеры

Для автоматического поиска части слова в Excel используют две основные функции: ПОИСК (SEARCH) и НАЙТИ (FIND). Их часто путают, но они работают по-разному:

Функция Учитывает регистр? Поддерживает подстановочные знаки? Возвращает при ошибке Пример использования
ПОИСК ❌ Нет ✅ Да (*, ?) #ЗНАЧ! =ПОИСК("ооо";A1)
НАЙТИ ✅ Да ❌ Нет #ЗНАЧ! =НАЙТИ("ООО";A1)

Пример формулы, которая проверяет, содержит ли ячейка A1 слово "отчёт" (без учёта регистра) и возвращает "Да" или "Нет":

=ЕСЛИ(ЕЧИСЛО(ПОИСК("отчёт";A1));"Да";"Нет")

Если нужно учитывать регистр, замените ПОИСК на НАЙТИ:

=ЕСЛИ(ЕЧИСЛО(НАЙТИ("Отчёт";A1));"Да";"Нет")
⚠️ Внимание: Функция ЕЧИСЛО здесь используется, чтобы избежать ошибки #ЗНАЧ!, которую возвращают ПОИСК/НАЙТИ, если фрагмент не найден. Без неё формула вернёт ошибку вместо "Нет".
=ЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК("ООО";A1)); ЕЧИСЛО(ПОИСК("ИП";A1)));"Да";"Нет")
-->

3. Поиск с подстановочными знаками: * и ?

Если вам нужно найти часть слова по шаблону (например, все слова, начинающиеся на "Арт" или заканчивающиеся на "2026"), используйте подстановочные знаки:

  • * — заменяет любое количество символов (в том числе ноль). Пример: "ООО" найдёт "ООО Вега", "Торговый Дом ООО", "ООО123".
  • ? — заменяет один любой символ. Пример: "А??а" найдёт "Алла", "Анна", "Ариа".

Подстановочные знаки работают только с функциями, которые их поддерживают: ПОИСК, СЧЁТЕСЛИ, СУММЕСЛИ, ФИЛЬТРExcel 365). Примеры:

Задача Формула Пояснение
Найти ячейки, содержащие "ООО" в любом месте =СЧЁТЕСЛИ(A:A;"ООО") Вернёт количество ячеек в столбце A с совпадением.
Найти слова, начинающиеся на "Приказ" и заканчивающиеся на 4 цифры =ФИЛЬТР(A1:A10;"Приказ*????") Работает только в Excel 365 или Excel 2021.
Проверить, есть ли в ячейке ровно 5 символов между "К-" и "-М" =ЕСЛИ(ЕЧИСЛО(ПОИСК("К-?????-М";A1));"Да";"Нет") Пример: найдёт "К-АБВГД-М", но не "К-АБВ-М".

Важный нюанс: если вы ищете сами символы * или ? (например, в артикулах товаров), экранируйте их тильдой ~:

=ПОИСК("~*";A1)  
Как искать по шаблону с несколькими условиями?

Если нужно найти ячейки, соответствующие одновременно нескольким шаблонам (например, начинаются на "Договор" и содержат "2026"), используйте формулу массива:

=ЕСЛИ(И(ЕЧИСЛО(ПОИСК("Договор*";A1)); ЕЧИСЛО(ПОИСК("2026";A1)));"Да";"Нет")

В Excel 365 можно упростить через ФИЛЬТР:

=ФИЛЬТР(A1:A10; (НЕОШ(ПОИСК("Договор*";A1:A10)))*(НЕОШ(ПОИСК("2026";A1:A10))))

4. Продвинутый поиск: ПОИСКПОЗ + ДВССЫЛ для динамических диапазонов

Если вам нужно не просто найти часть слова, а получить список всех ячеек с совпадением (например, для дальнейшей обработки), комбинируйте ПОИСКПОЗ с ДВССЫЛ. Этот метод работает во всех версиях Excel и не требует Power Query.

Пример: найдём все ячейки в столбце A, содержащие "ООО", и выведем их адреса в столбец B:

  1. В ячейку B1 введите:
    =ЕСЛИОШИБКА(АДРЕС(ПОИСКПОЗ("ООО";A:A;0);1);"")

    Это вернёт адрес первой ячейки с совпадением (например, $A$5).

  2. В ячейку B2 введите:
    =ЕСЛИОШИБКА(АДРЕС(ПОИСКПОЗ("ООО";A:A;0)+СТРОКА(A1);1);"")

    И протяните формулу вниз. Каждая следующая строка будет возвращать адрес следующего совпадения.

  3. Чтобы извлечь значения найденных ячеек, используйте ДВССЫЛ:
    =ЕСЛИ(B1<>"";ДВССЫЛ(B1);"")

Ограничения метода:

  • ⚠️ Работает медленно на больших таблицах (более 10 000 строк).
  • ⚠️ Не обновляется автоматически при изменении исходных данных (нужно пересчитывать вручную F9).

1. Убедитесь, что в столбце нет пустых ячеек (они сбивают ПОИСКПОЗ).

2. Проверьте, что искомый фрагмент точно есть в данных (иначе формула вернёт #Н/Д).

3. Если нужно искать с учётом регистра, замените ПОИСКПОЗ на комбинацию с НАЙТИ и ИНДЕКС.

4. Для динамического обновления используйте Таблицы Excel (Ctrl+T) вместо обычных диапазонов.

-->

5. Power Query: извлечение ячеек с частичным совпадением в отдельную таблицу

Если вам нужно экспортировать все ячейки с частичным совпадением в отдельный файл или таблицу, Power Query — самый мощный инструмент. Он позволяет:

  • 🔍 Фильтровать строки по фрагменту текста.
  • 📤 Сохранять результаты в новую книгу.
  • 🔄 Автоматически обновлять данные при изменении исходника.

Пошаговая инструкция:

  1. Выделите исходную таблицу → перейдите на вкладку ДанныеИз таблицы/диапазона (Power Query откроется в отдельном окне).
  2. В Power Query выберите столбец, по которому будете искать → ДомашняяФильтр по текстуСодержит....
  3. Введите искомый фрагмент (например, "ООО") → ОК.
  4. Нажмите Закрыть и загрузить → выберите Новый лист. Готово: в новой таблице останутся только строки с совпадением.

Преимущества Power Query перед формулами:

  • ✅ Работает с миллионами строк без тормозов.
  • ✅ Можно комбинировать несколько условий (например, "содержит 'ООО' И не содержит 'ЗАО'").
  • ✅ Сохраняет связь с исходными данными (обновляется по кнопке Обновить).
⚠️ Внимание: В Excel 2016 и старше Power Query называется Get & Transform. Если у вас нет этой вкладки, установите надстройку Power Query через Файл → Параметры → Надстройки → Управление: Надстройки COM.

6. Функция ФИЛЬТР в Excel 365: динамический поиск без VBA

В Excel 365 и Excel 2021 появилась функция ФИЛЬТР, которая упрощает поиск части слова. Она возвращает динамический массив — т.е. автоматически обновляемый список ячеек с совпадением.

Пример: найдём все ячейки в диапазоне A1:A100, содержащие "отчёт":

=ФИЛЬТР(A1:A100; ЕЧИСЛО(ПОИСК("отчёт";A1:A100)))

Чтобы сделать поиск регистрозависимым, замените ПОИСК на НАЙТИ:

=ФИЛЬТР(A1:A100; ЕЧИСЛО(НАЙТИ("Отчёт";A1:A100)))

Продвинутый пример: поиск по нескольким фрагментам (например, "отчёт" или "акт") с выводом в отдельные столбцы:

=ФИЛЬТР(A1:C100; (ЕЧИСЛО(ПОИСК("отчёт";A1:A100))) + (ЕЧИСЛО(ПОИСК("акт";B1:B100))))

Ограничения ФИЛЬТР:

  • ❌ Работает только в Excel 365/2021 (в старых версиях вернёт ошибку #ИМЯ?).
  • ❌ Не поддерживает подстановочные знаки напрямую (нужно комбинировать с ПОИСК).

7. Поиск с учётом ошибок: ЕСЛИОШИБКА + ПОИСК

Одна из самых распространённых ошибок при поиске части слова — игнорирование случаев, когда искомый фрагмент отсутствует. Если просто использовать =ПОИСК("текст";A1), при отсутствии совпадения формула вернёт #ЗНАЧ!, что может сломать дальнейшие вычисления.

Решения:

  1. Вернуть 0 или пустую строку:
    =ЕСЛИОШИБКА(ПОИСК("текст";A1);0)
  2. Вернуть "Да"/"Нет":
    =ЕСЛИ(ЕЧИСЛО(ПОИСК("текст";A1));"Да";"Нет")
  3. Игнорировать ошибки в сложных формулах:
    =ЕСЛИОШИБКА(ДВССЫЛ(АДРЕС(ПОИСКПОЗ("текст";A:A;0);1));"")

Пример для поиска с несколькими условиями (без ошибок):

=ЕСЛИ(

И(

ЕЧИСЛО(ПОИСК("ООО";A1)),

ЕЧИСЛО(ПОИСК("2026";A1))

);

"Подходит";

"Не подходит"

)

8. Автоматизация: макросы для поиска части слова

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

Sub FindAndHighlight()

Dim searchText As String

Dim cell As Range

searchText = "ООО" ' Искомый фрагмент

For Each cell In ActiveSheet.UsedRange

If InStr(1, cell.Value, searchText, vbTextCompare) > 0 Then

cell.Interior.Color = RGB(255, 255, 0) ' Жёлтый цвет

End If

Next cell

End Sub

Чтобы адаптировать макрос под свои нужды:

  • 🔹 Замените "ООО" на свой фрагмент.
  • 🔹 Чтобы искать с учётом регистра, замените vbTextCompare на vbBinaryCompare.
  • 🔹 Чтобы скопировать найденные ячейки в новый лист, добавьте строку:
    cell.Copy Destination:=Sheets("Результаты").Range("A" & Rows.Count).End(xlUp).Offset(1)
⚠️ Внимание: Макросы работают только если включена поддержка VBA (проверьте в Файл → Параметры → Настройка ленты → Разработчик). В Excel Online макросы не поддерживаются.
Как запустить макрос в Excel?

Если вы никогда не работали с макросами:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в модуль (Insert → Module).
  3. Закройте редактор и вернитесь в Excel.
  4. Нажмите Alt+F8, выберите макрос FindAndHighlightВыполнить.

FAQ: Ответы на частые вопросы

Как найти часть слова в Excel и скопировать только эти ячейки?

Используйте Power Query (инструкция в разделе 5) или макрос из раздела 8. Альтернатива для небольших таблиц:

  1. Добавьте вспомогательный столбец с формулой =ЕСЛИ(ЕЧИСЛО(ПОИСК("фрагмент";A1));A1;"").
  2. Скопируйте видимые ячейки (выделите столбец → F5Выделить видимыеCtrl+C).
Почему ПОИСК не находит кириллицу?

Проблема возникает, если:

  • В ячейке не текст, а число (например, "123" хранится как число, а не как текст). Решение: преобразуйте в текст через =ТЕКСТ(A1;"@").
  • Используется неправильная кодировка (редко в современных версиях). Попробуйте сохранить файл в формате .xlsx (не .csv).
  • В формуле опечатка (например, английские кавычки " " вместо русских " ").
Как найти ячейки, которые НЕ содержат определенный фрагмент?

Используйте ПОИСК с отрицанием:

=ЕСЛИ(НЕ(ЕЧИСЛО(ПОИСК("фрагмент";A1)));"Нет совпадения";"")

Или в Power Query примените фильтр "Не содержит...".

Можно ли искать часть слова с учётом транслита (например, найти "moscow" в "Москва")?

Стандартными функциями — нет. Решения:

  • Используйте VBA-функцию для транслитерации (пример кода есть на Stack Overflow).
  • Создайте вспомогательный столбец с транслитом через Power Query (надстройка Transliterate).
  • Для одноразовой задачи воспользуйтесь онлайн-конвертерами транслита и вставьте результат в Excel.
Как найти часть слова в защищённой ячейке?

Если ячейка защищена от изменений, но не от просмотра:

  • Используйте ПОИСК/НАЙТИ — они работают и с защищёнными ячейками.
  • Для копирования данных временно снимите защист листа (Рецензирование → Снять защиту листа).

Если ячейка скрыта и защищена, обратитесь к администратору файла.