Как отфильтровать текст в Excel: от простого к сложному

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

Многие пользователи ограничиваются стандартным автофильтром, но он работает только с точными совпадениями. А что, если нужно найти все ячейки, где текст начинается с определённого слова или содержит цифры? Или отфильтровать данные по нескольким критериям одновременно? Мы покажем, как это сделать с помощью встроенных инструментов, формул и даже Power Query — без макросов и программирования.

Если вы работаете с большими таблицами (от 10 000 строк), обычная фильтрация может тормозить. В таких случаях пригодятся расширенный фильтр или Power Query — они обрабатывают данные в разы быстрее. А для автоматизации процесса подойдут формулы вроде FILTER (в новых версиях Excel 365) или комбинация INDEX + MATCH.

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

1. Автофильтр: базовый инструмент для текста

Стандартный автофильтр — самый простой способ отсеять ненужные строки. Он подходит для поиска точных совпадений, текста «содержащего» или «начинающегося» с определённых символов. Чтобы его включить:

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

Теперь можно выбрать один из вариантов:

  • 🔍 Равно — точное совпадение (например, «Да» или «Нет»).
  • 📌 Начинается с — фильтрация по первым символам (полезно для фамилий или артикулов).
  • 📝 Содержит — поиск по фрагменту текста (например, все ячейки с словом «отчёт»).
  • 🚫 Не содержит — исключение строк с определённым текстом.

Автофильтр поддерживает множественный выбор: можно отметить галочками несколько значений в списке. Но у него есть ограничение — не более 10 000 уникальных значений в столбце. Если их больше, фильтр просто не покажет все варианты.

2. Расширенный фильтр: для сложных условий

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

  • 📊 Фильтровать данные по двум и более условиям (например, «город = Москва» И «статус = Активно»).
  • 🔄 Использовать динамические критерии (например, «даты позже сегодняшней»).
  • 📤 Сохранять результаты в новое место (а не скрывать строки).

Как настроить расширенный фильтр:

  1. Создайте диапазон условий (например, в отдельной области листа). В первой строке укажите заголовки столбцов, во второй — сами условия.
  2. Выделите исходные данные (включая заголовки).
  3. Перейдите в Данные → Сортировка и фильтр → Расширенный.
  4. Укажите Диапазон условий и при необходимости Поместить результат в диапазон.

Пример условия для фильтрации текста:

=ИЛИ(B2="Да"; B2="Подтверждено"; НЕ(ЕПУСТО(B2)))

Эта формула отберёт строки, где в столбце B есть либо «Да», либо «Подтверждено», либо любое непустое значение.

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

В диапазоне условий используйте формулу вида =ЕСЛИ(ЕЧИСЛО(ПОИСК("текст";A2));ИСТИНА), где "текст" — искомый фрагмент. Это найдёт все ячейки, содержащие указанную подстроку, даже если она в середине слова.

3. Фильтрация текста с помощью формул

Если вам нужно не просто скрыть строки, а извлечь отфильтрованные данные в другой диапазон, используйте формулы. В новых версиях Excel 365 есть функция FILTER, которая делает это в одну строку:

=FILTER(A2:B100; (A2:A100="Требуемое значение") + ЕЧИСЛО(ПОИСК("фрагмент"; B2:B100)))

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

Для старых версий Excel подойдёт комбинация INDEX + MATCH с вспомогательным столбцом. Например, чтобы извлечь все строки, где в столбце C есть слово «ургентно»:

  1. Добавьте вспомогательный столбец с формулой:
    =ЕСЛИ(ЕЧИСЛО(ПОИСК("ургентно";C2));"Да";"")
  2. Отфильтруйте таблицу по этому столбцу (оставив только «Да»).

Формула FILTER работает только в динамических массивах (Excel 365 и 2021). В более ранних версиях она вернёт ошибку #ИМЯ?.

📊 Какой метод фильтрации вы используете чаще?
Автофильтр
Расширенный фильтр
Формулы (FILTER, INDEX+MATCH)
Power Query
Другой

4. Power Query: фильтрация больших данных

Для обработки десятков тысяч строк стандартные фильтры Excel работают медленно. В таких случаях лучше использовать Power Query (вкладка Данные → Получить данные). Этот инструмент позволяет:

  • 🔍 Фильтровать текст по регулярным выражениям (например, найти все email-адреса).
  • 📂 Объединять данные из нескольких файлов перед фильтрацией.
  • 🔄 Автоматически обновлять результаты при изменении исходных данных.

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

  1. Выделите таблицу и нажмите Данные → Из таблицы/диапазона (или Ctrl+T для создания таблицы).
  2. В редакторе Power Query выберите столбец, нажмите на стрелочку в заголовке и укажите условие (например, Текстовые фильтры → Содержит).
  3. Для сложных условий используйте Добавить столбец → Пользовательский с формулой на языке M:
    = if Text.Contains([Столбец1], "искомый текст") then "Да" else "Нет"
  4. Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.

Power Query сохраняет все шаги фильтрации, поэтому при обновлении данных (кнопка Обновить все) результаты пересчитаются автоматически.

☑️ Подготовка данных для Power Query

Выполнено: 0 / 4

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

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

  1. Примените автофильтр к столбцу.
  2. Нажмите на стрелочку в заголовке → Фильтр по цвету.
  3. Выберите нужный цвет текста или заливки.

Для фильтрации по формату (например, только ячейки с полужирным текстом):

  • 🎨 Используйте Условное форматирование для выделения нужных ячеек.
  • 🔍 Затем примените фильтр по цвету заливки или шрифта.

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

6. Фильтрация с учётом регистра

По умолчанию Excel игнорирует регистр при фильтрации («Текст» и «ТЕКСТ» считаются одинаковыми). Если нужно различать заглавные и строчные буквы, используйте один из этих методов:

  • 🔠 Формула в вспомогательном столбце:
    =ЕСЛИ(НАЙТИ("Текст";A2)=1;"Совпадение";"")

    Функция НАЙТИ (в отличие от ПОИСК) учитывает регистр.

  • 📝 Power Query: в редакторе используйте Text.PositionOf вместо Text.Contains.

Пример: чтобы найти все ячейки, где текст начинается с заглавной буквы «А»:

=ЕСЛИ(КОДСИМВ(ЛЕВСИМВ(A2))=192;"Да";"")

Здесь 192 — код символа «А» в Windows-1251 (для UTF-8 используйте 65).

⚠️

Внимание: Функции ПОИСК, ПРАВСИМВ и СЖПРОБЕЛЫ не учитывают регистр. Для чувствительной к регистру фильтрации всегда используйте НАЙТИ или СРАВНИТЬ.

7. Фильтрация текста с ошибками или спецсимволами

Если в данных есть непечатаемые символы (переносы строк, табуляции) или ошибки (например, #ЗНАЧ!), стандартные фильтры могут не сработать. В таких случаях:

  • 🧹 Очистите данные с помощью СЖПРОБЕЛЫ или ПЕЧСИМВ:
    =СЖПРОБЕЛЫ(ПОДСТАВИТЬ(A2;СИМВОЛ(10);" "))

    Это заменит переносы строк на пробелы.

  • 🔍 Фильтруйте по ошибкам: в автофильтре выберите (Пусто) или (Ошибки).
  • 📋 Используйте Power Query для замены спецсимволов:
    = 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)

Можно ли сохранить отфильтрованные данные в новый файл?

Да, для этого:

  1. Примените расширенный фильтр с указанием диапазона для результатов.
  2. Скопируйте отфильтрованные данные (Ctrl+C).
  3. Создайте новый файл и вставьте данные (Ctrl+V).

Или экспортируйте через Power Query: после фильтрации нажмите Закрыть и загрузить в → Новая книга.