Фильтрация по тексту в Excel: 7 способов от простого к сложному

Почему фильтрация текста в Excel — ключевой навык для работы с данными

Возьмём реальную ситуацию: у вас таблица с 5000 строк клиентских заказов, где нужно быстро найти все записи с пометкой «Срочно» или адресами из Москвы. Вручную пролистывать сотни строк? Это как искать иголку в стоге сена. Фильтрация по тексту в Microsoft Excel или Google Sheets решает эту задачу за секунды — но только если знать, как правильно её настроить.

Многие пользователи ограничиваются базовым автофильтром, даже не подозревая, что Excel умеет искать по частичному совпадению (моск), исключать слова (<>отмена), комбинировать условия через И/ИЛИ, а также применять фильтры к данным с ошибками или нестандартными разделителями. В этой статье разберём все методы — от элементарных до профессиональных, которые экономят часы работы аналитикам, бухгалтерам и менеджерам.

Важно: фильтрация текста отличается от числовой или фильтрации по датам. Здесь нет «больше/меньше» — только точные или нечёткие совпадения, учёт регистра, пробелов и даже скрытых символов. И если вы когда-нибудь сталкивались с тем, что фильтр «не находит» очевидные данные, скорее всего, проблема кроется именно в этих нюансах.

Метод 1: Базовый автофильтр — как включить и использовать

Автофильтр — это «первая помощь» для быстрого поиска текста. Он работает во всех версиях Excel (начиная с Excel 2003) и не требует знания формул. Чтобы его активировать:

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

Теперь кликните по стрелке в столбце с текстом. Откроется меню с двумя ключевыми опциями:

  • 🔍 Текстовые фильтры — для точного поиска (равно, содержит, начинается с...).
  • 📋 Выделение по цвету — если текст подсвечен условным форматированием.
  • 🖥️ Поиск — поле для ввода части слова (например, «ов» найдёт «Иванов», «Петров»).

Пример: чтобы найти все записи с фамилией «Кузнецов», выберите Текстовые фильтры → равно → Кузнецов. Но что если фамилия может быть написана с опечаткой («Кузнецов») или в разных регистрах? Здесь автофильтр бессилен — понадобятся методы из следующих разделов.

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

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

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

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

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

  1. Создайте диапазон условий (например, в ячейках F1:G2):
    F1: Город | G1: Статус
    

    F2: Москва | G2: Оплачено

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

Критическая деталь: заголовки в диапазоне условий ДОЛЖНЫ полностью совпадать с заголовками исходной таблицы. Если в таблице столбец называется «Город», а в условии вы напишете «Населённый пункт», фильтр не сработает.

Создать отдельный диапазон для условий|Проверить совпадение заголовков|Указать правильные ссылки на диапазоны|Выбрать действие (фильтровать/копировать)-->

Метод 3: Фильтрация по частичному совпадению (подстановочные знаки)

Что делать, если нужно найти все ячейки, где текст содержит определённое слово, но не обязательно начинается с него? Например, отфильтровать все email-адреса с доменом @gmail.com или номера телефонов с кодом +7.

Для этого используйте подстановочные знаки:

  • 🌟 * (звёздочка) — заменяет любое количество символов (включая ноль). Пример: *ов найдёт «Иванов», «Петров», «овца».
  • 🔠 ? (вопросительный знак) — заменяет один символ. Пример: с?т найдёт «кот», «кит», но не «скот».
  • 🚫 ~ (тильда) — экранирует подстановочные знаки. Пример: ~* найдёт ячейки, где есть сама звёздочка.

Как применить:

  1. Активируйте автофильтр (см. Метод 1).
  2. Выберите Текстовые фильтры → Содержит.
  3. Введите шаблон, например: моск (найдёт «Москва», «Московская область», «Москвич»).
⚠️ Внимание: Подстановочные знаки чувствительны к пробелам! Шаблон ова не найдёт «Иванова», если после фамилии стоит пробел или неразрывный пробел (ALT+0160). Чтобы найти такие случаи, используйте ова + включите отображение непечатаемых символов (Главная → Абзац (¶)).
ШаблонПример данныхРезультат фильтрации
с*срок, договор, счет, акциясрок, счет
адом, дача, квартира, гараждача, квартира, гараж
???кот, собака, попугай, мышькот, мышь
2022020, 2021, 2023, 19992020, 2021, 2023

Метод 4: Фильтрация с учётом регистра (включая VBA)

По умолчанию Excel игнорирует регистр при фильтрации: поиск по «москва» найдёт и «Москва», и «МОСКВА». Но что если нужно найти только строки с точным регистром? Например, отделить «ООО» от «ооо» в юридических документах.

Стандартными средствами это невозможно — потребуется одна из хитростей:

  • 📝 Дополнительный столбец с формулой:
    =ЕСЛИ(А1=ВЕРХНИЙ(А1); "Верхний"; "Другой")

    Затем фильтруйте по этому столбцу.

  • 🤖 Макрос VBA (для продвинутых пользователей):
    Sub FilterCaseSensitive()
    

    Dim rng As Range, cell As Range

    Set rng = Selection

    For Each cell In rng

    If cell.Value Like "Москва" Then cell.EntireRow.Hidden = False Else cell.EntireRow.Hidden = True

    Next cell

    End Sub

Уникальный лайфхак: если вам нужно часто фильтровать с учётом регистра, создайте пользовательскую функцию в VBA и используйте её как условие в расширенном фильтре. Это сэкономит время на ручной обработке.

Метод 5: Фильтрация по нескольким критериям (логические операторы)

Допустим, вам нужно отфильтровать записи, где:

  • 📍 Город = «Москва» ИЛИ «Санкт-Петербург»,
  • 💰 Сумма > 1000 И Статус = «Оплачено».

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

  1. Расширенный фильтр (см. Метод 2), где условия И пишутся в одной строке, а ИЛИ — в разных:
    F1: Город | G1: Город
    

    F2: Москва | G2: Санкт-Петербург

  2. Формулы массива (для Excel 365 или 2019+):
    =ФИЛЬТР(А2:С100; (B2:B100="Москва") + (B2:B100="Санкт-Петербург"); "")

Пример реальной задачи: в таблице с заказами нужно найти клиентов из Москвы или Питера, которые заказали товар на сумму больше 5000 рублей. Решение через расширенный фильтр:

Диапазон условий:

A1: Город | B1: Сумма

A2: Москва | B2: >5000

A3: Санкт-Петербург | B3: >5000

⚠️ Внимание: Если в расширенном фильтре указать пустую ячейку в условии (например, A4: оставить пустой), Excel воспримет это как «любое значение». Это полезно, когда нужно применить фильтр только к части критериев.

Метод 6: Фильтрация текста с ошибками или нестандартными символами

Одна из самых распространённых проблем: фильтр не находит данные, которые визуально совпадают с условием. Причины:

  • 👻 Неразрывные пробелы (ALT+0160) вместо обычных.
  • 📏 Скрытые символы (табуляция, перевод строки).
  • 🔤 Разный регистр или невидимые символы (например, BOM в UTF-8).

Как очистить данные перед фильтрацией:

  1. Удалите лишние пробелы формулой:
    =СЖПРОБЕЛЫ(А1)
  2. Замените неразрывные пробелы на обычные:
    =ПОДСТАВИТЬ(А1; СИМВОЛ(160); " ")
  3. Используйте функцию =ЧИСТ(А1), чтобы убрать непечатаемые символы.

Если проблема в кодировке (например, вместо «ё» отображается «ï¿½»), попробуйте:

  • 🔄 Сохраните файл в формате .csv, откройте в Notepad++ и перекодируйте в UTF-8 без BOM.
  • 📁 Импортируйте данные через Данные → Из текста, выбрав правильную кодировку.
Как найти непечатаемые символы?

Включите отображение всех символов через Файл → Параметры → Дополнительно → Показывать знаки форматирования. Неразрывный пробел будет выглядеть как маленький кружок (°), а обычный — как точка (·).

Метод 7: Динамическая фильтрация с помощью Power Query

Для обработки больших объёмов данных (10 000+ строк) или регулярных отчётов автофильтр и расширенный фильтр становятся неэффективными. Здесь на помощь приходит Power Query — инструмент ETL (извлечение, преобразование, загрузка), встроенный в Excel 2016+.

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

  • 🔄 Не разрушает исходные данные — все изменения сохраняются в отдельном запросе.
  • 📈 Поддерживает нечёткий поиск (fuzzy matching) для текста с опечатками.
  • 🔗 Автоматически обновляет результаты при изменении источника.

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

  1. Выделите таблицу и нажмите Данные → Из таблицы/диапазона (в Excel 2016+) или Power Query → Из таблицы.
  2. В редакторе Power Query выберите столбец с текстом → Фильтры → Текстовые фильтры.
  3. Используйте опции:
    • 🔍 Содержит — для частичного совпадения.
    • 📌 Начинается с / Заканчивается на — для префиксов/суффиксов.
    • 🔄 Разделить столбец — если текст содержит разделители (например, «Иванов;Петр;Сергеевич»).
  • Нажмите Закрыть и загрузить, чтобы вернуть отфильтрованные данные в Excel.
  • Пример: вам нужно отфильтровать список email-адресов, оставив только корпоративные (с доменом компании). В Power Query:

    1. Разделите столбец с email по символу @.
    2. Отфильтруйте вторую часть (домен) по условию равно "company.com".
    3. Объедините столбцы обратно.

    Частые ошибки и как их избежать

    Даже опытные пользователи Excel сталкиваются с проблемами при фильтрации текста. Вот топ-5 ошибок и их решения:

    ОшибкаПричинаРешение
    Фильтр не находит очевидные совпадения Лишние пробелы или неразрывные пробелы в данных Используйте =СЖПРОБЕЛЫ() или =ПОДСТАВИТЬ(;СИМВОЛ(160);" ")
    Фильтр игнорирует регистр Excel по умолчанию нечувствителен к регистру Добавьте столбец с =ЕСЛИ(А1=ВЕРХНИЙ(А1);1;0) и фильтруйте по нему
    Расширенный фильтр не работает Несовпадение заголовков в диапазоне условий Проверьте точное совпадение названий столбцов (включая пробелы)
    Фильтр «зависает» на больших данных Слишком много строк (>100 000) или сложные формулы Используйте Power Query или разбейте данные на части
    После фильтрации остаются пустые строки В данных есть скрытые символы или ошибки Примените =ЕПУСТО() или =ЕОШ() для проверки

    Если фильтр работает непредсказуемо, попробуйте:

    1. Скопировать данные в новый лист (Правка → Специальная вставка → Значения).
    2. Удалить все форматы (Главная → Очистить → Форматы).
    3. Сохранить файл в формате .xlsx (если использовался .xls).

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

    Можно ли фильтровать текст по цвету ячейки?

    Да, но только если цвет был назначен через условное форматирование. Для этого:

    1. Активируйте автофильтр.
    2. Кликните по стрелке в столбце → Фильтр по цвету → выберите нужный цвет.
    3. Если цвет был назначен вручную, этот метод не сработает — потребуется VBA-скрипт.

    Как отфильтровать текст, содержащий перенос строки (ALT+Enter)?

    Перенос строки в ячейке (символ с кодом 10) ломает многие функции. Решения:

    • Замените переносы на другой символ (например, запятую) через =ПОДСТАВИТЬ(А1; СИМВОЛ(10); ", ").
    • Используйте Power Query: разделите столбец по символу #(lf).

    Чтобы найти все ячейки с переносами, используйте формулу =НАЙТИ(СИМВОЛ(10); А1) — она вернёт позицию переноса или ошибку #ЗНАЧ!.

    Почему фильтр не работает с данными, импортированными из PDF?

    При импорте из PDF часто возникают:

    • 📏 Лишние пробелы перед/после текста.
    • 🔤 Специальные символы (например, «–» вместо «-»).
    • 📄 Объединённые ячейки, которые Excel воспринимает как ошибку.
    • Решение: очистите данные через Данные → Текст по столбцам (даже если данные уже в таблице) или используйте Power Query с шагом Заменить значения.

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

    Способы:

    1. Копирование: Отфильтруйте данные → выделите видимые строки (Alt+;) → скопируйте в новый файл.
    2. Расширенный фильтр: Выберите Скопировать результат в другое место и укажите диапазон на другом листе.
    3. Power Query: Загрузите отфильтрованные данные в новую книгу (Закрыть и загрузить в...).

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

    Sub ExportFilteredData()
    

    Dim wsSource As Worksheet, wsDest As Worksheet

    Set wsSource = ThisWorkbook.Sheets("Лист1")

    Set wsDest = Workbooks.Add.Sheets(1)

    wsSource.UsedRange.AutoFilter Field:=1, Criteria1:="Москва"

    wsSource.UsedRange.SpecialCells(xlCellTypeVisible).Copy wsDest.Range("A1")

    wsDest.Parent.SaveAs "Фильтрованные данные.xlsx"

    End Sub

    Можно ли фильтровать текст по регулярным выражениям (regex) в Excel?

    Нет, в стандартном Excel нет поддержки regex. Альтернативы:

    • 🔧 Используйте подстановочные знаки (*, ?) — они покрывают 80% задач.
    • 📊 В Power Query есть ограниченная поддержка regex через Text.Select (язык M).
    • 🤖 Напишите VBA-функцию с использованием VBScript.RegExp:
    Function RegexMatch(text As String, pattern As String) As Boolean
    

    Dim regex As Object

    Set regex = CreateObject("VBScript.RegExp")

    regex.Pattern = pattern

    RegexMatch = regex.Test(text)

    End Function

    Пример использования: =RegexMatch(A1; "^[A-Za-z]+$") — проверяет, состоит ли текст только из латинских букв.