Как сделать текстовый фильтр в Excel: 7 работающих способов с примерами

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

Многие пользователи ошибочно считают, что текстовые фильтры в Excel ограничены базовыми функциями вроде "содержит" или "равно". На практике инструмент гораздо мощнее: он позволяет комбинировать условия, использовать подстановочные знаки (* и ?), а в новых версиях — даже применять функции FILTER с текстовыми критериями. В этой статье разберём все актуальные методы — от простых до продвинутых, которые экономят часы ручной обработки данных.

Особое внимание уделим типичным ошибкам: например, почему фильтр не находит текст с учётом регистра или как обойти ограничение на 2 условия в стандартном фильтре. А для тех, кто работает с Excel 365 или Excel 2021, подготовлены отдельные лайфхаки с динамическими массивами.

📊 Какой версии Excel вы пользуетесь?
Excel 2016 или старше
Excel 2019
Excel 2021
Excel 365 (онлайн/десктоп)
Другая

1. Базовый текстовый фильтр: "Содержит", "Равно", "Начинается с"

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

Чтобы применить его:

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

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

  • 🔍 Подстановочные знаки: используйте * (любое количество символов) и ? (один символ). Например, с*а найдёт "стакан", "собака", "страна".
  • 📌 Регистр: по умолчанию фильтр нечувствителен к регистру. Чтобы искать с учётом заглавных букв, потребуется Пользовательский фильтр (см. следующий раздел).
  • Быстрый доступ: дважды кликните по стрелке фильтра, чтобы открыть меню текстовых условий.

2. Пользовательский фильтр: комбинация условий и учёт регистра

Стандартный текстовый фильтр позволяет задать только одно условие за раз. Но что делать, если нужно отфильтровать строки, где текст содержит слово "урgent" ИЛИ начинается с "VIP", но при этом Исключить ячейки со словом "test"? Здесь поможет пользовательский фильтр (Пользовательский... в меню текстовых фильтров).

Алгоритм настройки:

  1. Откройте меню фильтра для нужного столбца.
  2. Выберите Текстовые фильтрыПользовательский фильтр.
  3. В первом выпадающем списке укажите условие (например, содержит).
  4. Во втором списке выберите логический оператор: И (одновременное выполнение условий) или ИЛИ (хотя бы одно условие).
  5. Добавьте второе условие и нажмите ОК.

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

  1. Создайте вспомогательный столбец с формулой:
    =ЕСЛИ(НАЙТИ("Текст";A2;1)=1;ИСТИНА;ЛОЖЬ)

    где A2 — ячейка для проверки, а "Текст" — искомое слово с нужным регистром.

  2. Примените фильтр к вспомогательному столбцу по значению ИСТИНА.
Почему не работает фильтр с учётом регистра?

В Excel нет встроенной функции для регистрочувствительного поиска в фильтрах. Формула НАЙТИ() возвращает позицию подстроки с учётом регистра, но только если текст найден (иначе ошибка). Поэтому в формуле используется проверка =1 — это означает, что искомый текст начинается с первой позиции (то есть совпадает полностью по регистру).

Пример комбинированного фильтра:

Условие 1ОператорУсловие 2Результат
Содержит "VIP"ИЛИНачинается с "A"Строки с "VIP" или словами на "A"
Равно "Да"ИНе содержит "нет"Только ячейки с точным текстом "Да"
Содержит "2026"ИЗаканчивается на "год"Фразы вроде "Отчёт за 2026 год"
⚠️ Внимание: В Excel 2016 и старше пользовательский фильтр ограничен двумя условиями. Для большего количества критериев используйте Расширенный фильтр или функции FILTER/QUERYExcel 365).

3. Расширенный фильтр: сложные текстовые критерии

Когда стандартных инструментов недостаточно, на помощь приходит расширенный фильтр (ДанныеСортировка и фильтрДополнительно). Он позволяет:

  • 📊 Фильтровать данные по нескольким столбцам одновременно.
  • 🔄 Использовать внешние диапазоны критериев (даже на другом листе).
  • 📝 Сохранять результаты фильтрации в новое место (не скрывая оригинальные данные).

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

  1. Создайте диапазон критериев (например, в ячейках D1:E2):

    D1: "Наименование" | E1: "Цена"

    D2: "=ноутбук" | E2: ">1000"

    Здесь =ноутбук — маска для поиска любых товаров с словом "ноутбук" в названии.

  2. Выделите исходные данные (включая заголовки).
  3. Перейдите в ДанныеДополнительно.
  4. Укажите:
    • Исходный диапазон — ваши данные.
    • Диапазон условий — D1:E2.
    • Отметьте Скопировать результат в другое место и укажите ячейку для вывода (например, G1).
  • Нажмите ОК.
  • Критический нюанс: в диапазоне критериев названия столбцов должны полностью совпадать с заголовками исходных данных (включая регистр и пробелы). Иначе Excel проигнорирует условие.

    Скопируйте заголовки столбцов в диапазон критериев|Проверьте совпадение названий|Используйте = перед текстовыми масками|Укажите правильный диапазон условий в настройках фильтра-->

    4. Текстовые фильтры с формулами: FILTER, QUERY, СЧЁТЕСЛИ

    В Excel 365 и Excel 2021 появились динамические массивы, которые революционизировали работу с текстовыми фильтрами. Теперь можно использовать функции вроде FILTER, QUERYGoogle Sheets и Excel для Mac) или классические СЧЁТЕСЛИ/ИНДЕКС+ПОИСКПОЗ для гибкой фильтрации.

    Пример с функцией FILTER:

    =FILTER(A2:B100; (ИСЧИСЛ(ПОИСК("VIP"; A2:A100)) + ИСЧИСЛ(ПОИСК("Premium"; A2:A100))) * (B2:B100 > 500); "Нет данных")

    Эта формула вернёт строки, где:

    • В столбце A есть слова "VIP" или "Premium".
    • В столбце B значение больше 500.

    Для Excel 2016 и старше подойдёт комбинация ИНДЕКС+ПОИСКПОЗ:

    =ЕСЛИОШИБКА(ИНДЕКС($A$2:$B$100; НАИМЕНЬШИЙ(ЕСЛИ((ИСЧИСЛ(ПОИСК("текст"; $A$2:$A$100))) * ($B$2:$B$100 > 100); СТРОКА($A$2:$A$100)-1); СТРОКА(A1)); 1); ""); "")
    ⚠️ Внимание: Формулы массива в старых версиях Excel требуют подтверждения клавишами Ctrl+Shift+Enter. В Excel 365 это не нужно — формулы динамически расширяются.

    Для поиска по регулярным выражениям (например, найти все email-адреса) в Excel для Windows придётся использовать VBA или надстройки. В Google Sheets это решается функцией REGEXMATCH:

    =FILTER(A2:B100; REGEXMATCH(A2:A100; "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}"))

    5. Фильтрация по цвету текста или фона

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

    • 🎨 Цвет должен быть применён через условное форматирование или вручную.
    • 🔍 Фильтр по цвету работает только для ячеек, а не для шрифта внутри них (если текст частично окрашен, это не сработает).

    Как настроить:

    1. Примените фильтр к столбцу (ДанныеФильтр).
    2. Нажмите на стрелку фильтра и выберите Фильтр по цвету.
    3. Укажите нужный цвет заливки или шрифта.

    Если цвет применён через условное форматирование, используйте пользовательский фильтр с формулой:

    =ЦВЕТЯЧЕЙКИ(A2; 3)

    где 3 — индекс красного цвета (узнать индекс можно через макрос или вручную тестируя значения от 1 до 56).

    6. Текстовые фильтры в сводных таблицах

    Сводные таблицы в Excel поддерживают текстовые фильтры, но с особенностями:

    • 📊 Фильтр применяется к меткам строк/столбцов, а не к исходным данным.
    • 🔄 Для фильтрации по значениям внутри сводной таблицы используйте нарезки (ВставкаНарезка).
    • 🛠️ В Excel 365 можно добавить вычисляемое поле с текстовыми условиями.

    Пример настройки:

    1. Создайте сводную таблицу на основе ваших данных.
    2. Перетащите текстовое поле (например, "Категория") в область Строки или Столбцы.
    3. Нажмите на стрелку фильтра рядом с названием поля.
    4. Выберите МеткиТекстовые фильтры и задайте условие (например, "содержит 'премиум'").

    Для продвинутой фильтрации:

    1. Добавьте нарезку для текстового поля.
    2. В настройках нарезки (Параметры нарезки) включите Показывать элементы без данных.
    3. Используйте поиск внутри нарезки для быстрого фильтра по ключевым словам.

    Если нужно отфильтровать данные до создания сводной таблицы, примените стандартный фильтр к исходному диапазону — это сократит объём данных в сводной.

    7. Автоматизация текстовых фильтров с помощью VBA

    Для повторяющихся задач или сложных критериев (например, фильтрация по нескольким ключевым словам с учётом регистра) удобно использовать VBA. Ниже пример макроса, который фильтрует столбец A по списку слов из столбца D:

    Sub TextFilter()
    

    Dim ws As Worksheet

    Dim rng As Range, cell As Range

    Dim filterWords As Range, word As Range

    Dim visibleRows As Long

    Set ws = ActiveSheet

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

    Set filterWords = ws.Range("D1:D" & ws.Cells(ws.Rows.Count, "D").End(xlUp).Row)

    ' Снимаем все фильтры

    If ws.AutoFilterMode Then ws.AutoFilterMode = False

    ' Применяем фильтр по каждому слову из списка

    For Each word In filterWords

    If word.Row > 1 Then ' Пропускаем заголовок

    rng.AutoFilter Field:=1, Criteria1:="=" & word.Value & "", Operator:=xlOr

    End If

    Next word

    End Sub

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

    • 📝 Измените диапазоны A1:A... (данные) и D1:D... (список слов для фильтра).
    • 🔄 Для фильтра с учётом регистра замените Criteria1:="=" & word.Value & "" на проверку через InStr(1, cell.Value, word.Value, vbTextCompare).
    • ⚡ Чтобы фильтр работал по нескольким столбцам, добавьте дополнительные условия в цикл.
    ⚠️ Внимание: Макросы не работают в веб-версии Excel 365 и на устройствах с Excel для iPad/Android без подписки Microsoft 365. Перед использованием сохраните файл с расширением .xlsm (с поддержкой макросов).

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

    Можно ли в Excel сделать фильтр по части словам, например, найти все ячейки, где есть "АБВ" или "XYZ"?

    Да, для этого используйте пользовательский фильтр с условием ИЛИ:

    1. Откройте меню фильтра для столбца.
    2. Выберите Текстовые фильтрыПользовательский фильтр.
    3. В первом поле: содержит"АБВ".
    4. Во втором поле выберите ИЛИ, затем содержит"XYZ".

    Для большего количества слов (более 2) используйте Расширенный фильтр или функцию FILTER в Excel 365.

    Почему текстовый фильтр не находит слова с учётом регистра?

    Excel по умолчанию игнорирует регистр в текстовых фильтрах. Чтобы обойти это ограничение:

    • Создайте вспомогательный столбец с формулой:
      =ЕСЛИ(A2=ТОЧНО("Текст");ИСТИНА;ЛОЖЬ)

      где "Текст" — искомое слово с нужным регистром.

    • Примените фильтр к вспомогательному столбцу по значению ИСТИНА.

    В Excel 365 можно использовать функцию FILTER с ТОЧНО().

    Как отфильтровать данные по тексту в нескольких столбцах одновременно?

    Есть три способа:

    1. Расширенный фильтр:
      • Создайте диапазон критериев с заголовками всех нужных столбцов.
      • В строках под заголовками укажите условия (например, =текст1 для первого столбца и =текст2 для второго).
      • Примените ДанныеДополнительно.
  • Функция FILTER (Excel 365):
    =FILTER(A2:C100; (ИСЧИСЛ(ПОИСК("критерий1"; A2:A100))) * (ИСЧИСЛ(ПОИСК("критерий2"; C2:C100))); "Нет данных")
  • Сводная таблица:
    • Добавьте оба столбца в область Фильтры.
    • Настройте текстовые фильтры для каждого из них.
  • Можно ли сохранить настройки текстового фильтра для повторного использования?

    Да, есть несколько вариантов:

    • Сохранение вида: примените фильтр, затем перейдите на вкладку ВидСохранить вид. В следующий раз вы сможете восстановить фильтр одной командой.
    • Шаблон файла: сохраните книгу как шаблон (.xltx) с настроенным фильтром.
    • Макрос: запишите действия по применению фильтра с помощью Запись макроса (вкладка Вид), затем назначьте макрос на кнопку или сочетание клавиш.

    Обратите внимание: сохранённый вид включает в себя все настройки листа (включая скрытые строки, ширину столбцов и т.д.), а не только фильтр.

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

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

    1. В исходных данных есть пустые ячейки: перед фильтрацией удалите их с помощью ДанныеФильтр → отфильтруйте по пустым значениям и удалите строки.
    2. Фильтр скрыл строки, но не удалил их: чтобы физически удалить ненужные строки:
      • Выделите отфильтрованные данные (видимые строки).
      • Скопируйте их (Ctrl+C).
      • Вставьте на новый лист (Ctrl+V) — будут вставлены только видимые строки.

    В Excel 365 можно использовать функцию FILTER, которая автоматически исключает пустые строки:

    =FILTER(A2:B100; A2:A100<>""; "Нет данных")