Работа с текстовыми данными в Microsoft Excel часто требует не только сортировки, но и точной фильтрации. Вы можете искать ячейки с определёнными словами, фразами или даже регулярными выражениями — но как это сделать быстро и без ошибок? В этой статье разберём 7 проверенных методов, от базовых до продвинутых, которые помогут отсеять ненужную информацию и оставить только релевантные данные.
Многие пользователи ограничиваются стандартным автофильтром, но он работает только с точными совпадениями. А что, если нужно найти все ячейки, где текст начинается с определённого слова или содержит цифры? Или отфильтровать данные по нескольким критериям одновременно? Мы покажем, как это сделать с помощью встроенных инструментов, формул и даже Power Query — без макросов и программирования.
Если вы работаете с большими таблицами (от 10 000 строк), обычная фильтрация может тормозить. В таких случаях пригодятся расширенный фильтр или Power Query — они обрабатывают данные в разы быстрее. А для автоматизации процесса подойдут формулы вроде Важно понимать разницу между фильтрацией (временное скрытие строк) и извлечением (создание новой таблицы с отфильтрованными данными). Первый метод удобен для разового просмотра, второй — для дальнейшей работы с результатами.
Стандартный автофильтр — самый простой способ отсеять ненужные строки. Он подходит для поиска точных совпадений, текста «содержащего» или «начинающегося» с определённых символов. Чтобы его включить:
Теперь можно выбрать один из вариантов:
Автофильтр поддерживает множественный выбор: можно отметить галочками несколько значений в списке. Но у него есть ограничение — не более 10 000 уникальных значений в столбце. Если их больше, фильтр просто не покажет все варианты.
Когда автофильтра недостаточно (например, нужно отфильтровать данные по нескольким столбцам одновременно или использовать формулы в критериях), на помощь приходит расширенный фильтр. Он позволяет:
Как настроить расширенный фильтр:
FILTER (в новых версиях Excel 365) или комбинация INDEX + MATCH.
1. Автофильтр: базовый инструмент для текста
Данные → Фильтр (или нажмите Ctrl+Shift+L).Текстовые фильтры.
2. Расширенный фильтр: для сложных условий
(например, в отдельной области листа). В первой строке укажите заголовки столбцов, во второй — сами условия.
Данные → Сортировка и фильтр → Расширенный.Диапазон условий и при необходимости Поместить результат в диапазон.Пример условия для фильтрации текста:
=ИЛИ(B2="Да"; B2="Подтверждено"; НЕ(ЕПУСТО(B2)))
Эта формула отберёт строки, где в столбце B есть либо «Да», либо «Подтверждено», либо любое непустое значение.
Как фильтровать по частичному совпадению с формулой?
В диапазоне условий используйте формулу вида =ЕСЛИ(ЕЧИСЛО(ПОИСК("текст";A2));ИСТИНА), где "текст" — искомый фрагмент. Это найдёт все ячейки, содержащие указанную подстроку, даже если она в середине слова.
3. Фильтрация текста с помощью формул
Если вам нужно не просто скрыть строки, а извлечь отфильтрованные данные в другой диапазон, используйте формулы. В новых версиях Excel 365 есть функция
Эта формула вернёт все строки, где в столбце Для старых версий ExcelFILTER, которая делает это в одну строку:
=FILTER(A2:B100; (A2:A100="Требуемое значение") + ЕЧИСЛО(ПОИСК("фрагмент"; B2:B100)))A точное совпадение, а в столбце B есть указанный фрагмент текста.INDEX + MATCH с вспомогательным столбцом. Например, чтобы извлечь все строки, где в столбце C есть слово «ургентно»:
- Добавьте вспомогательный столбец с формулой:
=ЕСЛИ(ЕЧИСЛО(ПОИСК("ургентно";C2));"Да";"") - Отфильтруйте таблицу по этому столбцу (оставив только «Да»).
Формула FILTER работает только в динамических массивах (Excel 365 и 2021). В более ранних версиях она вернёт ошибку #ИМЯ?.
4. Power Query: фильтрация больших данных
Для обработки десятков тысяч строк стандартные фильтры Excel работают медленно. В таких случаях лучше использовать Power Query (вкладка
Пошаговая инструкция:
Power Query сохраняет все шаги фильтрации, поэтому при обновлении данных (кнопка Иногда текст в ячейках выделен цветом или имеет особый формат (например, полужирный). Чтобы отфильтровать такие ячейки:
Для фильтрации по формату (например, только ячейки с полужирным текстом):
Ограничение: этот метод работает только с ручным форматированием. Если цвет ячейки задаётся условным форматированием, фильтр по цвету его не увидит.
По умолчанию Excel игнорирует регистр при фильтрации («Текст» и «ТЕКСТ» считаются одинаковыми). Если нужно различать заглавные и строчные буквы, используйте один из этих методов:
Функция Пример: чтобы найти все ячейки, где текст начинается с заглавной буквы «А»:
Здесь ⚠️ Если в данных есть непечатаемые символы (переносы строк, табуляции) или ошибки (например,
Это заменит переносы строк на пробелы. Частые проблемы и решения:
⚠️ Используйте формулу во вспомогательном столбце:
Затем отфильтруйте по значению «Да». Если нужно учитывать регистр, замените Данные → Получить данные). Этот инструмент позволяет:
Данные → Из таблицы/диапазона (или Ctrl+T для создания таблицы).Текстовые фильтры → Содержит).Добавить столбец → Пользовательский с формулой на языке M:
= if Text.Contains([Столбец1], "искомый текст") then "Да" else "Нет"Закрыть и загрузить, чтобы вернуть данные в Excel.Обновить все) результаты пересчитаются автоматически.
☑️ Подготовка данных для Power Query
5. Фильтрация по цвету или формату текста
Фильтр по цвету.
Условное форматирование для выделения нужных ячеек.6. Фильтрация с учётом регистра
=ЕСЛИ(НАЙТИ("Текст";A2)=1;"Совпадение";"")НАЙТИ (в отличие от ПОИСК) учитывает регистр.Text.PositionOf вместо Text.Contains.=ЕСЛИ(КОДСИМВ(ЛЕВСИМВ(A2))=192;"Да";"")192 — код символа «А» в Windows-1251 (для UTF-8 используйте 65).Внимание: Функции
ПОИСК, ПРАВСИМВ и СЖПРОБЕЛЫ не учитывают регистр. Для чувствительной к регистру фильтрации всегда используйте НАЙТИ или СРАВНИТЬ.7. Фильтрация текста с ошибками или спецсимволами
#ЗНАЧ!), стандартные фильтры могут не сработать. В таких случаях:
СЖПРОБЕЛЫ или ПЕЧСИМВ:
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(A2;СИМВОЛ(10);" "))(Пусто) или (Ошибки).= Table.ReplaceValue(Источник, "#(tab)", " ", Replacer.ReplaceText,{"Столбец1"})
Проблема
Причина
Решение
Фильтр не находит текст
Лишние пробелы или непечатаемые символы
=СЖПРОБЕЛЫ(A2)
Не работает "Содержит"
Текст в разных регистрах
Использовать
НАЙТИ или ПОИСК с учетом регистра
Фильтр игнорирует ячейки с формулами
Формулы возвращают пустую строку ("")
Заменить формулы на значения (
CTRL+C → Специальная вставка → Значения)
Медленная фильтрация
Слишком много уникальных значений (>10 000)
Использовать Power Query или сводную таблицу
Внимание: Если после фильтрации в таблице остались пустые строки, проверьте наличие скрытых символов (например,
CHAR(160) — неразрывный пробел). Чтобы их удалить, используйте:
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;СИМВОЛ(160);" ");СИМВОЛ(13);"")FAQ: Частые вопросы по фильтрации текста в Excel
Как отфильтровать ячейки, где текст содержит запятую или точку с запятой?
=ЕСЛИ(ЕЧИСЛО(ПОИСК(",";A2)) + ЕЧИСЛО(ПОИСК(";";A2));"Да";"")ПОИСК на НАЙТИ.
Можно ли фильтровать текст по нескольким словам одновременно (например, "отчёт" ИЛИ "документ")?
Да, для этого подойдёт расширенный фильтр с формулой:
=ИЛИ(ЕЧИСЛО(ПОИСК("отчёт";A2)); ЕЧИСЛО(ПОИСК("документ";A2)))
Или в Power Query:
= Table.SelectRows(Источник, each Text.Contains([Столбец1], "отчёт") or Text.Contains([Столбец1], "документ"))
Почему фильтр не работает с кириллицей?
Проблема может быть в кодировке файла. Если данные импортированы из CSV или ТXT, откройте файл в Блокноте и сохраните в кодировке UTF-8. Затем импортируйте заново через Данные → Из текста/CSV.
Как отфильтровать текст по длине (например, найти все ячейки с текстом длиннее 10 символов)?
Добавьте вспомогательный столбец с формулой:
=ЕСЛИ(ДЛСТР(A2)>10;"Да";"")
Затем отфильтруйте по «Да». В Power Query используйте:
= Table.SelectRows(Источник, each Text.Length([Столбец1]) > 10)
Можно ли сохранить отфильтрованные данные в новый файл?
Да, для этого:
- Примените расширенный фильтр с указанием диапазона для результатов.
- Скопируйте отфильтрованные данные (
Ctrl+C). - Создайте новый файл и вставьте данные (
Ctrl+V).
Или экспортируйте через Power Query: после фильтрации нажмите Закрыть и загрузить в → Новая книга.