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

Работа с большими таблицами в Microsoft Excel часто требует поиска сразу нескольких ключевых слов. Стандартный инструмент Ctrl+F ищет только одно слово за раз, а вручную проверять каждую строку на наличие комбинаций "Москва AND отчет" или "красный OR синий" — неэффективно. Эта проблема особенно актуальна для аналитиков, маркетологов и бухгалтеров, которые ежедневно обрабатывают тысячи строк с данными о заказах, клиентах или финансовых транзакциях.

В этой статье мы разберём 5 профессиональных методов поиска нескольких слов в Excel — от базовых функций до продвинутых инструментов вроде Power Query и регулярных выражений. Вы узнаете, как:

- Найти строки, содержащие все указанные слова (логическое И).

- Выделить строки с хотя бы одним из слов (логическое ИЛИ).

- Автоматизировать поиск с помощью формул и макросов.

- Обработать данные из внешних источников (CSV, базы данных) без ручного копирования.

Особое внимание уделим типичным ошибкам, которые приводят к некорректным результатам — например, почему функция ПОИСК может пропустить слова с разным регистром или почему фильтр не работает с ячейками, содержащими пробелы.

📊 Как часто вы ищете несколько слов одновременно в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

1. Базовый поиск через фильтр: логическое "ИЛИ"

Если вам нужно найти строки, содержащие хотя бы одно из нескольких слов (условие ИЛИ), проще всего воспользоваться встроенным фильтром Excel. Этот метод не требует знания формул и подходит для таблиц любого размера.

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

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

⚠️ Важно: Этот метод работает только для условия ИЛИ. Если вам нужно найти строки, содержащие все слова одновременно (условие И), переходите к следующему разделу.

Удалите лишние пробелы в ячейках (функция СЖПРОБЕЛЫ)

Приведите текст к единому регистру (функция ПРОПНАЧ или СТРОЧН)

Проверьте отсутствие скрытых символов (например, неразрывный пробел)

-->

2. Поиск всех слов одновременно (логическое "И") с помощью формул

Для поиска строк, содержащих все указанные слова (например, "отчет" и "2026" и "Москва"), стандартный фильтр не подходит. Здесь поможет комбинация функций ЕСЛИ, ПОИСК и И.

Пример формулы для поиска трёх слов в ячейке A2:

=ЕСЛИ(И(НЕ(ЕОШ(ПОИСК("отчет";A2))); НЕ(ЕОШ(ПОИСК("2026";A2))); НЕ(ЕОШ(ПОИСК("Москва";A2)))); "Есть"; "Нет")

Разберём её по частям:

  • 🔍 ПОИСК("слово";A2) — ищет позицию слова в тексте. Если слово не найдено, возвращает ошибку #ЗНАЧ!.
  • ЕОШ() — проверяет, является ли результат ошибкой. НЕ(ЕОШ()) означает "нет ошибки = слово найдено".
  • 🔗 И() — объединяет условия: все три слова должны быть найдены.

Критическая особенность: Функция ПОИСК чувствительна к регистру! Если в ячейке написано "Отчет", а вы ищете "отчет", формула вернёт ошибку. Чтобы избежать этого, используйте ПОИСКБ (поиск без учёта регистра) или приведите текст к единому регистру:

=ЕСЛИ(И(НЕ(ЕОШ(ПОИСКБ("отчет";СТРОЧН(A2)))); ... ); "Есть"; "Нет")
Почему формула не работает с кириллицей?

Если формула возвращает ошибку при поиске русских слов, проверьте кодировку файла. В некоторых версиях Excel при импорте данных из CSV кириллические символы могут заменяться на знаки вопроса. Решение: сохраните файл в кодировке UTF-8 и импортируйте заново через Данные → Из текста.

3. Продвинутый поиск с функцией ФИЛЬТР (Excel 365 и 2021)

В новых версиях Excel (начиная с 2021 года и Excel 365) появилась мощная функция ФИЛЬТР, которая позволяет динамически отображать строки, соответствующие нескольким критериям. Преимущество этого метода — результат обновляется автоматически при изменении исходных данных.

Пример: отфильтруем таблицу по двум словам в столбце B (условие ИЛИ):

=ФИЛЬТР(A2:D100; (НЕ(ЕОШ(ПОИСКБ("ноутбук";B2:B100)))) + (НЕ(ЕОШ(ПОИСКБ("монитор";B2:B100)))); "Ничего не найдено")

Для условия И (все слова должны присутствовать) используйте умножение (*) вместо сложения (+):

=ФИЛЬТР(A2:D100; (НЕ(ЕОШ(ПОИСКБ("отчет";B2:B100)))) * (НЕ(ЕОШ(ПОИСКБ("2026";B2:B100)))); "Ничего не найдено")

📌 Совет: Если вам нужно искать слова в нескольких столбцах одновременно, объедините их в один виртуальный столбец с помощью функции ТЕКСТСОЕД:

=ФИЛЬТР(A2:D100; НЕ(ЕОШ(ПОИСКБ("ключ"; ТЕКСТСОЕД(" ";ИСТИНА;B2:B100;C2:C100)))); "Нет совпадений")

4. Power Query: поиск по нескольким словам в больших данных

Если вы работаете с таблицами на десятки тысяч строк, обычные формулы Excel могут тормозить или вообще не справиться с задачей. В этом случае на помощь приходит Power Query — инструмент для преобразования и очистки данных, встроенный в Excel 2016+ и Excel 365.

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

  1. Выделите исходную таблицу и перейдите на вкладку Данные → Из таблицы/диапазона (или Получить данные → Из файла, если данные во внешнем источнике).
  2. В открывшемся редакторе Power Query выделите столбец, в котором нужно искать.
  3. На вкладке Добавить столбец выберите Настраиваемый столбец.
  4. Введите формулу для поиска (например, для условия ИЛИ):
    if Text.Contains([Наименование], "ноутбук") or Text.Contains([Наименование], "монитор") then "Есть" else "Нет"

    Для условия И замените or на and.

  5. Нажмите ОК, затем Закрыть и загрузить.

⚠️ Внимание: Power Query чувствителен к регистру по умолчанию. Чтобы игнорировать регистр, используйте функцию Text.Lower:

if Text.Contains(Text.Lower([Наименование]), "ноутбук") then ...
= Table.AddColumn(#"Предыдущий шаг", "Объединенный текст", each Text.Combine({[Столбец1], [Столбец2]}, " "))

-->

5. Регулярные выражения (Regex) для сложного поиска

Для самых сложных задач — например, поиска слов с учётом морфологии ("отчет/отчёты/отчетность") или шаблонов ("артикул Т-123/Т-124") — подойдут регулярные выражения. В Excel нет встроенной поддержки regex, но их можно использовать через:

  • 📊 Power Query (функция Text.Select с regex).
  • 🤖 VBA-макросы (объект RegExp).
  • 🔗 Надстройки (например, ABLEbits или Kutools).

Пример кода на VBA для поиска строк, содержащих хотя бы одно из слов:

Sub SearchWithRegex()

Dim rng As Range, cell As Range

Dim regex As Object

Set regex = CreateObject("VBScript.RegExp")

Set rng = Selection

regex.Pattern = "ноутбук|монитор|клавиатура" ' слова через |

regex.IgnoreCase = True ' игнорировать регистр

For Each cell In rng

If regex.Test(cell.Value) Then

cell.Interior.Color = RGB(255, 230, 153) ' выделить найденные ячейки

End If

Next cell

End Sub

Ключевое преимущество regex: Вы можете искать не только конкретные слова, но и шаблоны. Например, регулярное выражение \bТ-\d{3}\b найдёт все артикулы вида "Т-123", "Т-456" и т.д.

6. Типичные ошибки и как их избежать

Даже опытные пользователи Excel сталкиваются с проблемами при поиске нескольких слов. Вот самые распространённые ошибки и их решения:

Ошибка Причина Решение
Формула не находит слово, которое точно есть в ячейке Разный регистр ("Отчет" vs "отчет") или скрытые символы (неразрывный пробел) Используйте ПОИСКБ или СТРОЧН, очистите данные от скрытых символов функцией ПЕЧСИМВ
Фильтр не работает с числами в текстовом формате Числа хранятся как текст (например, "123" вместо 123) Преобразуйте данные в числовой формат или используйте ЗНАЧЕН
Power Query не находит кириллические слова Неправильная кодировка при импорте данных Импортируйте файл в кодировке UTF-8 или используйте Text.Encoding
Формула возвращает #ЗНАЧ! без видимой причины В ячейке есть ошибка (#Н/Д, #ДЕЛ/0!) или пустое значение Оберните формулу в ЕСЛИОШИБКА или проверьте данные на пустые ячейки

⚠️ Внимание: Если вы используете Google Таблицы вместо Excel, учтите, что функция ФИЛЬТР там работает иначе! В Google Sheets для условия И нужно использовать REGEXMATCH с логическим умножением:

=FILTER(A2:D100; REGEXMATCH(B2:B100; "отчет") * REGEXMATCH(B2:B100; "2026"))

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

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

В стандартном Excel нет встроенных инструментов для морфологического поиска. Решения:

  • Используйте регулярные выражения в Power Query или VBA (например, отч[её]т найдёт оба варианта).
  • Создайте отдельный столбец с лемматизированными формами слов (например, с помощью Python + pymorphy2).
  • Используйте надстройки вроде ABLEbits, которые поддерживают нечёткий поиск.
Как искать слова в нескольких листах одновременно?

Для поиска по нескольким листам:

  1. Используйте 3D-ссылки в формулах (например, =ЕСЛИ(И(НЕ(ЕОШ(ПОИСК("слово";Лист1:Лист3!A2)))); ... )).
  2. Объедините данные всех листов в одну таблицу с помощью Power Query (Данные → Получить данные → Объединить запросы).
  3. Напишите VBA-макрос, который будет последовательно проверять каждый лист.

⚠️ Ограничение: 3D-ссылки не работают с динамическими массивами (например, с функцией ФИЛЬТР).

Почему функция ПОИСК находит слово "том", когда я ищу "томат"?

Функция ПОИСК ищет подстроку, а не целое слово. Чтобы найти именно "томат" (а не "том" или "атом"), используйте:

  • Функцию НАЙТИ с проверкой границ слов (через пробелы или знаки препинания).
  • Регулярные выражения с границами слов (\btomat\b).
  • Дополнительную проверку длины найденного фрагмента.

Пример формулы для точного поиска слова "томат":

=ЕСЛИ(И(НЕ(ЕОШ(НАЙТИ(" томат "; " "&A2&" ")))); "Есть"; "Нет")
Как автоматизировать поиск нескольких слов в новых данных?

Чтобы поиск обновлялся автоматически при добавлении новых строк:

  • Используйте динамические именованные диапазоны (например, =СМЕЩ(Лист1!$A$2;0;0;СЧЁТЗ(Лист1!$A:$A)-1;1)).
  • Преобразуйте данные в умную таблицу (Ctrl+T), тогда формулы будут автоматически расширяться.
  • Настройте Power Query на автоматическое обновление при открытии файла (Данные → Обновить все).
Можно ли искать слова с учётом синонимов (например, "авто" = "машина")?

Для поиска по синонимам:

  1. Создайте отдельную таблицу с парами синонимов (столбцы "Синоним 1" и "Синоним 2").
  2. Используйте ВПР или XLOOKUP, чтобы заменять слова в исходных данных на канонические формы.
  3. Применяйте поиск уже к нормализованным данным.

Пример: если в ячейке A2 написано "машина", а в таблице синонимов "машина" = "авто", формула =ЕСЛИ(НЕ(ЕОШ(ПОИСК(ВПР(A2; Синонимы!A:B; 2; ЛОЖЬ); B2))); "Есть"; "Нет") найдёт обе формы.