Работа с большими массивами данных в Microsoft Excel часто превращается в поиск иголки в стоге сена — особенно когда нужно быстро найти строки с определёнными текстовыми фрагментами. Стандартные фильтры по числам или датам здесь не помогут: требуется текстовый фильтр, который умеет анализировать содержимое ячеек по ключевым словам, частичным совпадениям или даже регулярным выражениям.
Многие пользователи ошибочно считают, что текстовые фильтры в Excel ограничены базовыми функциями вроде "содержит" или "равно". На практике инструмент гораздо мощнее: он позволяет комбинировать условия, использовать подстановочные знаки (* и ?), а в новых версиях — даже применять функции FILTER с текстовыми критериями. В этой статье разберём все актуальные методы — от простых до продвинутых, которые экономят часы ручной обработки данных.
Особое внимание уделим типичным ошибкам: например, почему фильтр не находит текст с учётом регистра или как обойти ограничение на 2 условия в стандартном фильтре. А для тех, кто работает с Excel 365 или Excel 2021, подготовлены отдельные лайфхаки с динамическими массивами.
1. Базовый текстовый фильтр: "Содержит", "Равно", "Начинается с"
Начнём с самого простого — встроенного текстового фильтра, который доступен в любой версии Excel начиная с 2007 года. Этот метод подходит для 80% задач, где нужно отобрать строки по частичному или полному совпадению текста.
Чтобы применить его:
- Выделите диапазон данных (включая заголовки столбцов).
- Перейдите на вкладку
Данные→Фильтр(или нажмитеCtrl+Shift+L). - Нажмите на стрелку фильтра в заголовке столбца, где нужно искать текст.
- В выпадающем меню выберите
Текстовые фильтры→ одно из условий:содержит,равно,начинается силизаканчивается на.
Например, если в столбце B перечислены города, и вам нужны только строки с Московской областью, выберите условие содержит и введите фразу Московская обл. Excel автоматически отобразит все строки, где этот фрагмент встречается в ячейке.
- 🔍 Подстановочные знаки: используйте
*(любое количество символов) и?(один символ). Например,с*анайдёт "стакан", "собака", "страна". - 📌 Регистр: по умолчанию фильтр нечувствителен к регистру. Чтобы искать с учётом заглавных букв, потребуется
Пользовательский фильтр(см. следующий раздел). - ⚡ Быстрый доступ: дважды кликните по стрелке фильтра, чтобы открыть меню текстовых условий.
2. Пользовательский фильтр: комбинация условий и учёт регистра
Стандартный текстовый фильтр позволяет задать только одно условие за раз. Но что делать, если нужно отфильтровать строки, где текст содержит слово "урgent" ИЛИ начинается с "VIP", но при этом Исключить ячейки со словом "test"? Здесь поможет пользовательский фильтр (Пользовательский... в меню текстовых фильтров).
Алгоритм настройки:
- Откройте меню фильтра для нужного столбца.
- Выберите
Текстовые фильтры→Пользовательский фильтр. - В первом выпадающем списке укажите условие (например,
содержит). - Во втором списке выберите логический оператор:
И(одновременное выполнение условий) илиИЛИ(хотя бы одно условие). - Добавьте второе условие и нажмите
ОК.
Для учёта регистра используйте формулу в качестве критерия:
- Создайте вспомогательный столбец с формулой:
=ЕСЛИ(НАЙТИ("Текст";A2;1)=1;ИСТИНА;ЛОЖЬ)где
A2— ячейка для проверки, а"Текст"— искомое слово с нужным регистром. - Примените фильтр к вспомогательному столбцу по значению
ИСТИНА.
Почему не работает фильтр с учётом регистра?
В Excel нет встроенной функции для регистрочувствительного поиска в фильтрах. Формула НАЙТИ() возвращает позицию подстроки с учётом регистра, но только если текст найден (иначе ошибка). Поэтому в формуле используется проверка =1 — это означает, что искомый текст начинается с первой позиции (то есть совпадает полностью по регистру).
Пример комбинированного фильтра:
| Условие 1 | Оператор | Условие 2 | Результат |
|---|---|---|---|
| Содержит "VIP" | ИЛИ | Начинается с "A" | Строки с "VIP" или словами на "A" |
| Равно "Да" | И | Не содержит "нет" | Только ячейки с точным текстом "Да" |
| Содержит "2026" | И | Заканчивается на "год" | Фразы вроде "Отчёт за 2026 год" |
⚠️ Внимание: В Excel 2016 и старше пользовательский фильтр ограничен двумя условиями. Для большего количества критериев используйтеРасширенный фильтрили функцииFILTER/QUERY(в Excel 365).
3. Расширенный фильтр: сложные текстовые критерии
Когда стандартных инструментов недостаточно, на помощь приходит расширенный фильтр ( Пошаговая инструкция:
D1: "Наименование" | E1: "Цена" D2: "=ноутбук" | E2: ">1000"Данные → Сортировка и фильтр → Дополнительно). Он позволяет:
D1:E2):
Здесь =ноутбук — маска для поиска любых товаров с словом "ноутбук" в названии.
Данные → Дополнительно.- Исходный диапазон — ваши данные.
- Диапазон условий —
D1:E2. - Отметьте
Скопировать результат в другое местои укажите ячейку для вывода (например,G1).
ОК.Критический нюанс: в диапазоне критериев названия столбцов должны полностью совпадать с заголовками исходных данных (включая регистр и пробелы). Иначе Excel проигнорирует условие.
Скопируйте заголовки столбцов в диапазон критериев|Проверьте совпадение названий|Используйте = перед текстовыми масками|Укажите правильный диапазон условий в настройках фильтра-->
4. Текстовые фильтры с формулами: FILTER, QUERY, СЧЁТЕСЛИ
В Excel 365 и Excel 2021 появились динамические массивы, которые революционизировали работу с текстовыми фильтрами. Теперь можно использовать функции вроде FILTER, QUERY (в Google 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 позволяет фильтровать и по этому признаку, но с оговорками:
- 🎨 Цвет должен быть применён через условное форматирование или вручную.
- 🔍 Фильтр по цвету работает только для ячеек, а не для шрифта внутри них (если текст частично окрашен, это не сработает).
Как настроить:
- Примените фильтр к столбцу (
Данные→Фильтр). - Нажмите на стрелку фильтра и выберите
Фильтр по цвету. - Укажите нужный цвет заливки или шрифта.
Если цвет применён через условное форматирование, используйте пользовательский фильтр с формулой:
=ЦВЕТЯЧЕЙКИ(A2; 3)
где 3 — индекс красного цвета (узнать индекс можно через макрос или вручную тестируя значения от 1 до 56).
6. Текстовые фильтры в сводных таблицах
Сводные таблицы в Excel поддерживают текстовые фильтры, но с особенностями:
- 📊 Фильтр применяется к меткам строк/столбцов, а не к исходным данным.
- 🔄 Для фильтрации по значениям внутри сводной таблицы используйте нарезки (
Вставка→Нарезка). - 🛠️ В Excel 365 можно добавить вычисляемое поле с текстовыми условиями.
Пример настройки:
- Создайте сводную таблицу на основе ваших данных.
- Перетащите текстовое поле (например, "Категория") в область
СтрокиилиСтолбцы. - Нажмите на стрелку фильтра рядом с названием поля.
- Выберите
Метки→Текстовые фильтрыи задайте условие (например, "содержит 'премиум'").
Для продвинутой фильтрации:
- Добавьте нарезку для текстового поля.
- В настройках нарезки (
Параметры нарезки) включитеПоказывать элементы без данных. - Используйте поиск внутри нарезки для быстрого фильтра по ключевым словам.
Если нужно отфильтровать данные до создания сводной таблицы, примените стандартный фильтр к исходному диапазону — это сократит объём данных в сводной.
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"?
Да, для этого используйте пользовательский фильтр с условием ИЛИ:
- Откройте меню фильтра для столбца.
- Выберите
Текстовые фильтры→Пользовательский фильтр. - В первом поле:
содержит→"АБВ". - Во втором поле выберите
ИЛИ, затемсодержит→"XYZ".
Для большего количества слов (более 2) используйте Расширенный фильтр или функцию FILTER в Excel 365.
Почему текстовый фильтр не находит слова с учётом регистра?
Excel по умолчанию игнорирует регистр в текстовых фильтрах. Чтобы обойти это ограничение:
- Создайте вспомогательный столбец с формулой:
=ЕСЛИ(A2=ТОЧНО("Текст");ИСТИНА;ЛОЖЬ)где
"Текст"— искомое слово с нужным регистром. - Примените фильтр к вспомогательному столбцу по значению
ИСТИНА.
В Excel 365 можно использовать функцию FILTER с ТОЧНО().
Как отфильтровать данные по тексту в нескольких столбцах одновременно?
Есть три способа:
- Расширенный фильтр:
- Создайте диапазон критериев с заголовками всех нужных столбцов.
- В строках под заголовками укажите условия (например,
=текст1для первого столбца и=текст2для второго). - Примените
Данные→Дополнительно.
=FILTER(A2:C100; (ИСЧИСЛ(ПОИСК("критерий1"; A2:A100))) * (ИСЧИСЛ(ПОИСК("критерий2"; C2:C100))); "Нет данных")
- Добавьте оба столбца в область
Фильтры. - Настройте текстовые фильтры для каждого из них.
Можно ли сохранить настройки текстового фильтра для повторного использования?
Да, есть несколько вариантов:
- Сохранение вида: примените фильтр, затем перейдите на вкладку
Вид→Сохранить вид. В следующий раз вы сможете восстановить фильтр одной командой. - Шаблон файла: сохраните книгу как шаблон (
.xltx) с настроенным фильтром. - Макрос: запишите действия по применению фильтра с помощью
Запись макроса(вкладкаВид), затем назначьте макрос на кнопку или сочетание клавиш.
Обратите внимание: сохранённый вид включает в себя все настройки листа (включая скрытые строки, ширину столбцов и т.д.), а не только фильтр.
Как убрать пустые строки после применения текстового фильтра?
Пустые строки могут оставаться по двум причинам:
- В исходных данных есть пустые ячейки: перед фильтрацией удалите их с помощью
Данные→Фильтр→ отфильтруйте по пустым значениям и удалите строки. - Фильтр скрыл строки, но не удалил их: чтобы физически удалить ненужные строки:
- Выделите отфильтрованные данные (видимые строки).
- Скопируйте их (
Ctrl+C). - Вставьте на новый лист (
Ctrl+V) — будут вставлены только видимые строки.
В Excel 365 можно использовать функцию FILTER, которая автоматически исключает пустые строки:
=FILTER(A2:B100; A2:A100<>""; "Нет данных")