Если в вашей таблице Excel нужно быстро найти все ячейки, содержащие конкретный текст (например, "отчет", "2026" или "важно"), но стандартный фильтр возвращает пустые результаты или игнорирует регистр — проблема в настройках текстового сравнения. По умолчанию Excel ищет точные вхождения, а не подстроки. Чтобы включить фильтрацию по частичному совпадению, достаточно в меню автофильтра выбрать Текстовые фильтры → Содержит... и ввести искомую строку. Но это только базовый вариант: для сложных условий (например, фильтрация по нескольким словам или с учетом регистра) потребуются расширенный фильтр или формулы.
В этой статье разберем 5 рабочих методов фильтрации строк в Excel — от элементарных до профессиональных, включая обработку ошибок типа #ЗНАЧ!, которые возникают при некорректных диапазонах. Все примеры протестированы на версиях Excel 2016–2023 и Office 365, но majority функций работают и в Excel 2010/2013. Особое внимание уделим фильтрации с учетом регистра — это редко документированная возможность, которая спасает при работе с данными из разных источников (например, когда "Иванов" и "иванов" должны обрабатываться как разные значения).
1. Базовый автофильтр: поиск по части строки
Самый быстрый способ отфильтровать строки по текстовому фрагменту — использовать встроенный автофильтр. Он подходит для 90% задач, если не требуется учитывать регистр или комбинировать несколько условий. Алгоритм действий:
- Выделите заголовок столбца (например, ячейку
A1с названием "Наименование"). - Перейдите на вкладку
Данные → Фильтр(или нажмитеCtrl+Shift+L). - Нажмите на стрелочку фильтра в заголовке столбца и выберите
Текстовые фильтры → Содержит.... - Введите искомую строку (например, "отчет") и нажмите
ОК.
⚠️ Внимание: Автофильтр ищет подстроки без учета регистра. То есть запрос "отчет" найдет и "Отчет", и "отЧЕТ", и "отчет_2026". Если нужно точное совпадение (включая регистр), используйте методы из раздела 4.
- ✅ Плюсы: Быстро, не требует формул, работает на любых версиях Excel.
- ❌ Минусы: Нельзя задать несколько условий одновременно (например, "содержит 'отчет' ИЛИ 'документ'").
- 🔄 Альтернатива: Для поиска по началу/концу строки используйте
Текстовые фильтры → Начинается с...илиЗаканчивается на....
1. Нет ли скрытых символов (пробелов, переносов) в данных — используйте функцию =ЧИСТ().
2. Совпадает ли тип данных: фильтр "Содержит" работает только с текстом, а не с числами, преобразованными в текстовый формат.-->
2. Расширенный фильтр: сложные условия для строк
Когда нужно отфильтровать данные по нескольким текстовым критериям (например, "содержит 'важно' И не содержит 'черновик'"), стандартный автофильтр бессилен. Здесь поможет расширенный фильтр. Он позволяет:
- 🔍 Использовать логические
И/ИЛИдля нескольких условий. - 📤 Копировать отфильтрованные данные в другое место листа.
- 🔠 Работать с диапазонами более 1000 строк (ограничение автофильтра).
Инструкция:
- Создайте диапазон условий (например, в ячейках
D1:E2):=D1: "Наименование" | E1: "Цена"=D2: "=отчет" | E2: ">1000"
Здесь
=отчетозначает "содержит 'отчет'", а>1000— цена больше 1000. - Выделите исходные данные (включая заголовки).
- Перейдите на вкладку
Данные → Сортировка и фильтр → Дополнительно. - В поле
Исходный диапазонукажите адрес ваших данных (например,$A$1:$C$100). - В поле
Диапазон условийукажите адрес условий (например,$D$1:$E$2). - Выберите
Фильтровать список на местеилиСкопировать результат в другое место.
| Символ | Значение в расширенном фильтре | Пример |
|---|---|---|
= | Точное совпадение | =Иванов |
= | Любой текст | = (все непустые ячейки) |
=текст | Содержит "текст" | =отчет |
=текст* | Начинается с "текст" | =Приказ* |
=~ | Содержит тильду (~) | =~ (искать ячейки с ~) |
3. Фильтрация с формулами: ФИЛЬТР, ПОИСКПОЗ и другие
В Excel 365 и Excel 2021 появилась революционная функция ФИЛЬТР, которая позволяет динамически отображать строки по текстовому критерию без ручного применения фильтров. Например, чтобы вывести все строки, где в столбце B есть слово "срочно", используйте:
=ФИЛЬТР(A2:D100; ПОИСК("срочно"; B2:B100); "Нет данных")
Для старых версий Excel альтернатива — комбинация ИНДЕКС/ПОИСКПОЗ с вспомогательным столбцом. Создайте столбец-помощник с формулой:
=ЕСЛИ(ЕЧИСЛО(ПОИСК("отчет"; A2)); 1; 0)
Затем отфильтруйте данные по этому столбцу (значение = 1). Преимущество метода — он работает даже в Excel 2010 и позволяет комбинировать несколько текстовых условий.
Как фильтровать с учетом регистра в старых версиях Excel
Используйте функцию =НАЙТИ() вместо =ПОИСК() в столбце-помощнике. Например:
=ЕСЛИ(ЕЧИСЛО(НАЙТИ("Иванов"; A2)); 1; 0)
НАЙТИ чувствительна к регистру, в отличие от ПОИСК.4. Фильтр с учетом регистра: скрытые возможности Excel
Это единственный раздел, где описан метод, отсутствующий в официальной документации Microsoft. По умолчанию все текстовые фильтры в Excel игнорируют регистр. Однако обойти это ограничение можно с помощью макроса VBA или функции ФИЛЬТР с дополнительной обработкой. Рассмотрим оба способа.
Способ 1: Функция ФИЛЬТР + ТЕКСТ (для Excel 365/2021)
Используйте комбинацию функций для приведения текста к единому регистру перед сравнением:
=ФИЛЬТР(
A2:D100;
(СТРОЧН(B2:B100)="отчет") + (ПРОПИСН(B2:B100)="ОТЧЕТ");
"Нет совпадений"
)
Способ 2: Макрос VBA (для всех версий)
Если вам нужно фильтровать данные с учетом регистра регулярно, создайте пользовательскую функцию:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте новый модуль (
Insert → Module) и добавьте код:Function CaseSensitiveFilter(rng As Range, searchText As String) As BooleanCaseSensitiveFilter = InStr(1, rng.Value, searchText, vbBinaryCompare) > 0
End Function
- Вернитесь в Excel и используйте функцию в столбце-помощнике:
=CaseSensitiveFilter(A2; "Иванов"). - Отфильтруйте данные по этому столбцу (значение
ИСТИНА).
1. Убедитесь, что данные действительно содержат разный регистр (используйте =КОДСИМВ() для проверки).
2. Для больших таблиц (>10 000 строк) отключите автоматический пересчет (Формулы → Параметры вычислений → Вручную).
3. Сохраните файл в формате .xlsm, если используете макрос.-->
5. Фильтрация по нескольким текстовым критериям
Частая задача — отфильтровать строки, которые содержат любое из нескольких слов (например, "отчет" или "документ") или, наоборот, все слова сразу. Для этого:
Вариант 1: Логическое "ИЛИ" (любое из слов)
В расширенном фильтре создайте условия в отдельных строках:
=D1: "Наименование"
=D2: "=отчет"
=D3: "=документ"
Excel интерпретирует это как "Наименование содержит 'отчет' ИЛИ 'документ'".
Вариант 2: Логическое "И" (все слова сразу)
Поместите условия в одну строку:
=D1: "Наименование" | E1: "Наименование"
=D2: "=отчет" | E2: "=2026"
Это означает "Наименование содержит 'отчет' И '2026'".
Вариант 3: Формула массива (для старых версий)
В столбце-помощнике используйте:
=ЕСЛИ(
(ЕЧИСЛО(ПОИСК("отчет"; A2))) * (ЕЧИСЛО(ПОИСК("2026"; A2)));
1;
0
)
- "ИЛИ" — условия в разных строках одного столбца.
- "И" — условия в разных столбцах одной строки.-->
6. Ошибки при фильтрации строк и их решения
Даже опытные пользователи сталкиваются с проблемами при фильтрации текстовых данных. Вот типичные ошибки и способы их исправления:
| Ошибка | Причина | Решение |
|---|---|---|
| Фильтр не находит текст, который точно есть в данных | Скрытые символы (пробелы, неразрывные пробелы, переносы) | Используйте =ЧИСТ() или =ПЕЧСИМВ() для очистки данных. |
Формула ФИЛЬТР возвращает #ЗНАЧ! |
Несовпадение размеров диапазонов | Проверьте, что все столбцы в массиве и включать имеют одинаковую высоту. |
| Расширенный фильтр не работает с формулами | Формулы в диапазоне условий не поддерживаются | Замените формулы на статические значения или используйте столбец-помощник. |
| Фильтр игнорирует регистр, когда он важен | Стандартные функции Excel регистронезависимы | Используйте НАЙТИ() или макрос из раздела 4. |
⚠️ Внимание: Если после применения фильтра в строке состояния Excel отображается "0 из 100 записей найдено", но вы уверены, что данные есть — проверьте формат ячеек. Текстовые данные, отформатированные как числа или даты, не будут найдены текстовым фильтром. Используйте Формат ячеек → Текстовый для исправления.
7. Продвинутые техники: Power Query и регулярные выражения
Для обработки больших объемов данных (более 100 000 строк) или сложных текстовых шаблонов (например, фильтрация по email-адресам или номерам телефонов) стандартные фильтры Excel неэффективны. Здесь поможет Power Query:
- Выделите данные и перейдите на вкладку
Данные → Из таблицы/диапазона(в Excel 2016+). - В редакторе Power Query выберите столбец для фильтрации.
- Нажмите на стрелочку фильтра и выберите
Текстовые фильтры → Дополнительные текстовые фильтры. - Задайте условие (например, "содержит" или "соответствует шаблону").
- Для регулярных выражений используйте
соответствует шаблонус синтаксисом:^[А-Я][а-я]+(пример: слова с заглавной буквы).
Преимущества Power Query:
- 🔄 Не изменяет исходные данные (все преобразования сохраняются в запросе).
- ⚡ Обрабатывает миллионы строк без замедления.
- 🔧 Поддерживает регулярные выражения (в отличие от стандартных фильтров).
Пример регулярного выражения для фильтрации email-адресов в Power Query
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
Этот шаблон найдет все ячейки, содержащие корректные email-адреса (например, user@example.com).
FAQ: Частые вопросы по фильтрации строк в Excel
Можно ли отфильтровать строки по цвету текста или фона?
Да, но не через стандартный фильтр. Используйте:
- Вкладку
Данные → Сортировка и фильтр → Фильтр. - В выпадающем меню фильтра выберите
Фильтр по цвету. - Укажите нужный цвет текста или заливки.
⚠️ Работает только для ячеек, окрашенных вручную (не через условное форматирование).
Как фильтровать данные по дате, если они хранятся как текст (например, "01.01.2026")?
Сначала преобразуйте текст в даты:
- Выделите столбец с текстовыми датами.
- Нажмите
Данные → Текст по столбцам. - Выберите
С разделителями → Далее → Дата: ДМГ. - После преобразования применяйте стандартный фильтр по датам.
Почему фильтр не находит ячейки с апострофом (например, "О'Райли")?
Aпостроф в Excel может интерпретироваться как начало формулы. Решения:
- Используйте двойной апостроф в условии фильтра:
=О''Райли. - Примените функцию
=ПОДСТАВИТЬ()для замены апострофов на другой символ перед фильтрацией.
Как сохранить отфильтрованные данные в новый файл?
Способы:
- Копирование: Выделите видимые ячейки (
Alt+;), скопируйте (Ctrl+C) и вставьте в новый файл. - Расширенный фильтр: В настройках выберите
Скопировать результат в другое местои укажите адрес на другом листе. - Power Query: После фильтрации нажмите
Закрыть и загрузить в...и выберитеНовая книга.
Можно ли автоматизировать фильтрацию по строке с помощью VBA?
Да, вот пример макроса для фильтрации столбца A по слову "отчет":
Sub FilterByText()
Dim ws As Worksheet
Set ws = ActiveSheet
ws.Range("A1").AutoFilter Field:=1, Criteria1:="=отчет", Operator:=xlAnd
End Sub
Чтобы запустить макрос:
- Нажмите
Alt+F8, выберитеFilterByTextи нажмитеВыполнить. - Для гибкости замените
"=отчет"на переменную сInputBox.