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

Работа с большими таблицами в Microsoft Excel часто превращается в поиск иголки в стоге сена — особенно когда нужно найти строки с конкретными словами или фразами. Вы тратите часы на ручной просмотр тысяч записей, а могли бы справиться за минуты с правильными инструментами. Фильтрация по словам в Excel — это не просто удобство, а необходимость для аналитиков, маркетологов и бухгалтеров, которые ежедневно обрабатывают массивы данных с повторяющимися терминами: названиями продуктов, фамилиями клиентов или кодами заказов.

Многие пользователи ограничиваются базовым автофильтром, даже не подозревая, что Excel предлагает 5+ способов точной фильтрации — от простых текстовых условий до сложных формул с подстановочными знаками и регулярными выражениями. Например, вы можете отобрать все строки, где в ячейке содержится слово "срочно", но не "несрочно", или найти записи с определенным сочетанием букв в середине текста. В этой статье разберём каждый метод с практическими примерами, которые сэкономят вам часы работы.

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

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

1. Базовый автофильтр: как найти строки с конкретным словом

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

Чтобы активировать фильтр:

  1. Выделите заголовки столбцов (или любую ячейку в таблице).
  2. Перейдите на вкладку ДанныеФильтр (или нажмите Ctrl+Shift+L).
  3. Нажмите на стрелочку в заголовке столбца, где хотите искать слово.
  4. В поле поиска введите искомый термин (например, "отчёт") и нажмите OK.

Excel отобразит только те строки, где в выбранном столбце есть точное совпадение с введённым словом. Но здесь есть важный нюанс: по умолчанию поиск учитывает любую часть текста. То есть, если вы ищете "дом", то найдутся и "домой", и "домен", и "надомник". Чтобы искать только целое слово, используйте символы подстановки с пробелами: введите `" дом "` (с пробелами до и после).

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

2. Текстовые фильтры: расширенные условия для точного поиска

Когда базового поиска недостаточно, на помощь приходят текстовые фильтры с расширенными условиями. Они позволяют задавать несколько критериев одновременно, например, искать строки, где слово начинается или заканчивается на определённые символы.

Как это работает:

  • 🔹 "Начинается с" — найдёт все ячейки, где текст начинается с указанной последовательности. Пример: ввод "Александ" вернёт "Александр", "Александра", но не "Саша Александров".
  • 🔹 "Заканчивается на" — полезно для поиска доменов (@gmail.com) или суффиксов (-2023).
  • 🔹 "Содержит" — ищет вхождение слова в любом месте текста (аналог базового поиска).
  • 🔹 "Не содержит" — исключает строки с указанным словом.

Для доступа к этим опциям:

  1. Активируйте фильтр (как в предыдущем разделе).
  2. Нажмите на стрелочку в заголовке столбца → "Текстовые фильтры" → выберите нужное условие.
  3. Введите слово или фразу в поле и нажмите OK.

Пример практического применения: вам нужно найти все заказы с пометкой "VIP", но только те, где эта пометка стоит в начале строки (например, "VIP-Клиент Иванов"). Используйте условие "Начинается с" и введите "VIP".

⚠️ Внимание: Текстовые фильтры не различают регистр букв. Если вам нужно найти именно "Excel" (с большой буквы), а не "excel", используйте формулы или Power Query.

3. Фильтрация по нескольким словам: операторы "И"/"ИЛИ"

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

Способ 1: Через стандартный фильтр (оператор "ИЛИ")

  • Активируйте фильтр в столбце.
  • В поле поиска введите первое слово, затем второе, третье и т.д. (разделять ничего не нужно).
  • Excel автоматически применит условие "ИЛИ", то есть покажет строки, где есть хотя бы одно из слов.

Способ 2: Через расширенный фильтр (оператор "И")

  1. Перейдите на вкладку ДанныеРасширенный фильтр.
  2. В поле "Исходный диапазон" укажите всю таблицу (включая заголовки).
  3. В поле "Диапазон условий" создайте отдельную область с критериями. Например:
    =ИЛИ(B2="срочно"; B2="важно")
    

    =И(B2="срочно"; C2="оплачено")

  4. Нажмите OK.

Пример таблицы с критериями для расширенного фильтра:

Столбец A (Заголовок)Столбец B (Критерии)
Статус=ИЛИ("срочно"; "важно")
Категория=И("VIP"; "премиум")
Дата>=01.01.2023

Скопируйте заголовки столбцов в отдельную область

Убедитесь, что диапазон условий не пересекается с исходными данными

Используйте абсолютные ссылки (с $) для фиксированных критериев

Проверьте, нет ли скрытых символов в ячейках-->

4. Использование подстановочных знаков: * и ?

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

  • 🔹 (звёздочка) — заменяет любое количество символов. Пример: поиск по шаблону "отчёт" найдёт "отчёт", "отчётность", "отчёт-2023".
  • 🔹 ? (вопросительный знак) — заменяет один любой символ. Пример: "с?от" найдёт "счёт", "слот", но не "счетчик".
  • 🔹 ~ (тильда) — используется для поиска самих символов * или ?. Например, чтобы найти текст "50%", введите "50~%".

Как применять подстановочные знаки:

  1. Активируйте фильтр в столбце.
  2. Выберите "Текстовые фильтры" → "Содержит" (или другое условие).
  3. В поле ввода используйте шаблон с * или ?. Например:
    • "срочно" — найдёт все ячейки, где есть слово "срочно" в любом месте.
    • "???-2023" — найдёт коды типа "АБВ-2023", "XYZ-2023".
    • "отчёт_*" — найдёт "отчёт_январь", "отчёт_финал".

Пример из практики: вам нужно найти все email-адреса с доменом @company.ru, но в данных есть опечатки типа @compny.ru или @compani.ru. Используйте шаблон:

*@comp*n*.ru
⚠️ Внимание: Подстановочные знаки не работают с функциями НАЙТИ() или ПОИСК() в формулах — для них нужны регулярные выражения или Power Query.

5. Фильтрация с учётом регистра: когда "Excel" ≠ "excel"

По умолчанию Excel игнорирует регистр букв при фильтрации. Но что делать, если вам нужно найти именно "Иванов" (с большой буквы), исключив "иванов"? Стандартный фильтр с этой задачей не справится — потребуются обходные пути.

Способ 1: Дополнительный столбец с функцией

  1. Создайте новый столбец рядом с данными.
  2. Введите формулу для проверки регистра. Например, чтобы найти ячейки, начинающиеся с большой буквы:
    =И(КОДСИМВ(ЛЕВСИМВ(A2))>=65; КОДСИМВ(ЛЕВСИМВ(A2))<=90)

    (где A2 — первая ячейка с данными).

  3. Отфильтруйте новый столбец по значению ИСТИНА.
  4. Способ 2: Power Query (Excel 2016 и новее)

    • Выделите таблицу → ДанныеИз таблицы/диапазонаPower Query).
    • Выберите столбец → Добавить столбецНастраиваемый столбец.
    • Введите формулу для проверки регистра, например:
      = Text.StartsWith([Столбец1], "Иванов")
    • Фильтруйте по новому столбцу.

    Способ 3: VBA-макрос (для продвинутых)

    Если вам часто приходится фильтровать с учётом регистра, создайте простой макрос:

    Sub FilterCaseSensitive()
    

    Dim rng As Range

    Set rng = Selection

    rng.AutoFilter Field:=1, Criteria1:="=Иванов", Operator:=xlFilterValues

    End Sub

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

    Почему Excel игнорирует регистр?

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

    6. Продвинутые методы: формулы и Power Query

    Когда стандартные инструменты не справляются, на сцену выходят формулы и Power Query. Эти методы требуют немного больше усилий, но дают невероятную гибкость.

    Метод 1: Фильтрация через формулы

    Создайте дополнительный столбец с формулой, которая проверяет наличие слова, а затем отфильтруйте по значениям ИСТИНА/ЛОЖЬ. Примеры формул:

    • Поиск слова в любом месте текста:
      =ЕСЛИ(ЕЧИСЛО(ПОИСК("срочно"; A2)); "Да"; "Нет")
    • Поиск целого слова (без вхождений):
      =ЕСЛИ(И(ЕЧИСЛО(ПОИСК(" дом "; " "&A2&" "))); "Да"; "Нет")

      (добавляем пробелы до и после, чтобы исключить вхождения типа "домой").

    • Поиск нескольких слов (хотя бы одного):
      =ЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК("договор"; A2)); ЕЧИСЛО(ПОИСК("контракт"; A2))); "Да"; "Нет")

Метод 2: Power Query для сложных фильтров

Power Query (доступен в Excel 2016+ и Office 365) позволяет создавать многоступенчатые фильтры с преобразованием данных. Пример:

  1. Выделите таблицу → ДанныеИз таблицы/диапазона.
  2. В редакторе Power Query выберите столбец → ФильтрыТекстовые фильтрыСодержит.
  3. Введите слово для поиска. Для нескольких слов используйте Расширенный редактор с кодом:
    = Table.SelectRows(#"Предыдущий шаг", each Text.Contains([Столбец1], "срочно") or Text.Contains([Столбец1], "важно"))
  4. Нажмите Закрыть и загрузить.

Метод 3: Функция ФИЛЬТР (Excel 365 и 2021)

В новых версиях Excel появилась динамическая функция ФИЛЬТР(), которая возвращает отфильтрованный диапазон без изменения исходных данных:

=ФИЛЬТР(A2:B100; ЕЧИСЛО(ПОИСК("срочно"; A2:A100)))

Эта формула вернёт все строки из диапазона A2:B100, где в первом столбце есть слово "срочно".

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

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

  • 🔸 Фильтр не находит слово, которое точно есть в данных

    Причина: лишние пробелы или непечатаемые символы. Решение: используйте функцию =СЖПРОБЕЛЫ() или =ЧИСТ() для очистки данных.

  • 🔸 Фильтр игнорирует регистр, когда это важно

    Причина: стандартные инструменты нечувствительны к регистру. Решение: используйте Power Query или дополнительный столбец с формулами (см. раздел 5).

  • 🔸 Фильтр работает слишком медленно на больших данных

    Причина: сложные условия или большое количество строк. Решение: преобразуйте данные в Таблицу Excel (Ctrl+T) или используйте Power Pivot.

  • 🔸 После фильтрации пропали данные

    Причина: возможно, включён фильтр по другому столбцу. Решение: проверьте все стрелочки фильтров в заголовках или сбросьте фильтры (Данные → Очистить).

  • 🔸 Фильтр не работает с формулами

    Причина: фильтр применяется к значениям, а не к формулам. Решение: скопируйте данные со значениями (Специальная вставка → Значения) и фильтруйте копию.

⚠️ Внимание: Если вы используете Google Таблицы, учтите, что синтаксис функций может отличаться. Например, вместо ЕЧИСЛО() там используется ISNUMBER(), а функция ФИЛЬТР() называется FILTER().

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

Если вам регулярно приходится фильтровать данные по одним и тем же словам, имеет смысл автоматизировать процесс с помощью макросов. Вот два полезных примера:

Макрос 1: Быстрая фильтрация по ключевому слову

Этот макрос запрашивает у пользователя слово и фильтрует активный столбец:

Sub FilterByKeyword()

Dim keyword As String

Dim rng As Range

keyword = InputBox("Введите слово для фильтрации:", "Фильтр по слову")

If keyword = "" Then Exit Sub

Set rng = Selection

rng.AutoFilter Field:=1, Criteria1:="=" & keyword & "", Operator:=xlFilterValues

End Sub

Макрос 2: Фильтрация по нескольким словам из списка

Этот макрос фильтрует данные по словам, перечисленным в отдельном диапазоне (например, D1:D5):

Sub FilterByWordList()

Dim ws As Worksheet

Dim filterRange As Range, wordList As Range

Dim cell As Range

Dim criteria As String

Set ws = ActiveSheet

Set filterRange = ws.Range("A1:B100") ' Диапазон для фильтрации

Set wordList = ws.Range("D1:D5") ' Диапазон со словами

criteria = ""

For Each cell In wordList

If cell.Value <> "" Then

criteria = criteria & "" & cell.Value & "" & ","

End If

Next cell

criteria = Left(criteria, Len(criteria) - 1) ' Удаляем последнюю запятую

filterRange.AutoFilter Field:=1, Criteria1:=Split(criteria, ","), Operator:=xlFilterValues

End Sub

Чтобы использовать макросы:

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

Для удобства назначьте макросы на кнопки на панели быстрого доступа или горячие клавиши.

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

Можно ли фильтровать по слову, которое содержится в формуле, а не в значении ячейки?

Нет, стандартный фильтр работает только с отображаемыми значениями. Чтобы фильтровать по формулам, сначала скопируйте данные со значениями (Специальная вставка → Значения), затем применяйте фильтр.

Как найти строки, где слово встречается ровно 2 раза?

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

=(ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2; "слово"; "")))/ДЛСТР("слово")

Затем отфильтруйте по значению 2.

Почему при фильтрации по слову "привет" находятся ячейки с "Привет"?

Excel по умолчанию игнорирует регистр. Чтобы найти только строчные или прописные варианты, используйте Power Query или дополнительный столбец с проверкой через КОДСИМВ() (см. раздел 5).

Как отфильтровать данные по слову в комментарии к ячейке?

Стандартный фильтр не работает с комментариями. Вам потребуется VBA-макрос, который извлекает текст комментариев в отдельный столбец, а затем фильтрует по нему. Пример кода:

Sub ExtractComments()

Dim cell As Range

For Each cell In Selection

If Not cell.Comment Is Nothing Then

cell.Offset(0, 1).Value = cell.Comment.Text

End If

Next cell

End Sub

Можно ли сохранить фильтр, чтобы не настраивать его каждый раз?

Да, есть несколько способов:

  • Сохраните файл как шаблон (.xltx) с уже применённым фильтром.
  • Используйте Таблицы Excel (Ctrl+T) — они запоминают настройки фильтра.
  • Создайте срезы (Вставка → Срез) для интерактивной фильтрации.