Фильтр по строке в Excel: от простого к продвинутому

Если в вашей таблице Excel нужно быстро найти все ячейки, содержащие конкретный текст (например, "отчет", "2026" или "важно"), но стандартный фильтр возвращает пустые результаты или игнорирует регистр — проблема в настройках текстового сравнения. По умолчанию Excel ищет точные вхождения, а не подстроки. Чтобы включить фильтрацию по частичному совпадению, достаточно в меню автофильтра выбрать Текстовые фильтры → Содержит... и ввести искомую строку. Но это только базовый вариант: для сложных условий (например, фильтрация по нескольким словам или с учетом регистра) потребуются расширенный фильтр или формулы.

В этой статье разберем 5 рабочих методов фильтрации строк в Excel — от элементарных до профессиональных, включая обработку ошибок типа #ЗНАЧ!, которые возникают при некорректных диапазонах. Все примеры протестированы на версиях Excel 2016–2023 и Office 365, но majority функций работают и в Excel 2010/2013. Особое внимание уделим фильтрации с учетом регистра — это редко документированная возможность, которая спасает при работе с данными из разных источников (например, когда "Иванов" и "иванов" должны обрабатываться как разные значения).

1. Базовый автофильтр: поиск по части строки

Самый быстрый способ отфильтровать строки по текстовому фрагменту — использовать встроенный автофильтр. Он подходит для 90% задач, если не требуется учитывать регистр или комбинировать несколько условий. Алгоритм действий:

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

⚠️ Внимание: Автофильтр ищет подстроки без учета регистра. То есть запрос "отчет" найдет и "Отчет", и "отЧЕТ", и "отчет_2026". Если нужно точное совпадение (включая регистр), используйте методы из раздела 4.

  • Плюсы: Быстро, не требует формул, работает на любых версиях Excel.
  • Минусы: Нельзя задать несколько условий одновременно (например, "содержит 'отчет' ИЛИ 'документ'").
  • 🔄 Альтернатива: Для поиска по началу/концу строки используйте Текстовые фильтры → Начинается с... или Заканчивается на....

1. Нет ли скрытых символов (пробелов, переносов) в данных — используйте функцию =ЧИСТ().

2. Совпадает ли тип данных: фильтр "Содержит" работает только с текстом, а не с числами, преобразованными в текстовый формат.-->

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

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

  • 🔍 Использовать логические И/ИЛИ для нескольких условий.
  • 📤 Копировать отфильтрованные данные в другое место листа.
  • 🔠 Работать с диапазонами более 1000 строк (ограничение автофильтра).

Инструкция:

  1. Создайте диапазон условий (например, в ячейках D1:E2):
    =D1: "Наименование" | E1: "Цена"
    

    =D2: "=отчет" | E2: ">1000"

    Здесь =отчет означает "содержит 'отчет'", а >1000 — цена больше 1000.

  2. Выделите исходные данные (включая заголовки).
  3. Перейдите на вкладку Данные → Сортировка и фильтр → Дополнительно.
  4. В поле Исходный диапазон укажите адрес ваших данных (например, $A$1:$C$100).
  5. В поле Диапазон условий укажите адрес условий (например, $D$1:$E$2).
  6. Выберите Фильтровать список на месте или Скопировать результат в другое место.
СимволЗначение в расширенном фильтреПример
=Точное совпадение=Иванов
=Любой текст= (все непустые ячейки)
=текстСодержит "текст"=отчет
=текст*Начинается с "текст"=Приказ*
=~Содержит тильду (~)=~ (искать ячейки с ~)
📊 Какой тип фильтрации вы используете чаще?
Автофильтр по части строки
Расширенный фильтр с несколькими условиями
Фильтр с формулами (ФИЛЬТР, ПОИСКПОЗ)
Power Query для текстовых данных

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 (для всех версий)

Если вам нужно фильтровать данные с учетом регистра регулярно, создайте пользовательскую функцию:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте новый модуль (Insert → Module) и добавьте код:
    Function CaseSensitiveFilter(rng As Range, searchText As String) As Boolean
    

    CaseSensitiveFilter = InStr(1, rng.Value, searchText, vbBinaryCompare) > 0

    End Function

  3. Вернитесь в Excel и используйте функцию в столбце-помощнике: =CaseSensitiveFilter(A2; "Иванов").
  4. Отфильтруйте данные по этому столбцу (значение ИСТИНА).

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:

  1. Выделите данные и перейдите на вкладку Данные → Из таблицы/диапазонаExcel 2016+).
  2. В редакторе Power Query выберите столбец для фильтрации.
  3. Нажмите на стрелочку фильтра и выберите Текстовые фильтры → Дополнительные текстовые фильтры.
  4. Задайте условие (например, "содержит" или "соответствует шаблону").
  5. Для регулярных выражений используйте соответствует шаблону с синтаксисом:
    ^[А-Я][а-я]+

    (пример: слова с заглавной буквы).

Преимущества Power Query:

  • 🔄 Не изменяет исходные данные (все преобразования сохраняются в запросе).
  • ⚡ Обрабатывает миллионы строк без замедления.
  • 🔧 Поддерживает регулярные выражения (в отличие от стандартных фильтров).
Пример регулярного выражения для фильтрации email-адресов в Power Query

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

Этот шаблон найдет все ячейки, содержащие корректные email-адреса (например, user@example.com).

FAQ: Частые вопросы по фильтрации строк в Excel

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

Да, но не через стандартный фильтр. Используйте:

  1. Вкладку Данные → Сортировка и фильтр → Фильтр.
  2. В выпадающем меню фильтра выберите Фильтр по цвету.
  3. Укажите нужный цвет текста или заливки.

⚠️ Работает только для ячеек, окрашенных вручную (не через условное форматирование).

Как фильтровать данные по дате, если они хранятся как текст (например, "01.01.2026")?

Сначала преобразуйте текст в даты:

  1. Выделите столбец с текстовыми датами.
  2. Нажмите Данные → Текст по столбцам.
  3. Выберите С разделителями → Далее → Дата: ДМГ.
  4. После преобразования применяйте стандартный фильтр по датам.
Почему фильтр не находит ячейки с апострофом (например, "О'Райли")?

Aпостроф в Excel может интерпретироваться как начало формулы. Решения:

  • Используйте двойной апостроф в условии фильтра: =О''Райли.
  • Примените функцию =ПОДСТАВИТЬ() для замены апострофов на другой символ перед фильтрацией.
Как сохранить отфильтрованные данные в новый файл?

Способы:

  1. Копирование: Выделите видимые ячейки (Alt+;), скопируйте (Ctrl+C) и вставьте в новый файл.
  2. Расширенный фильтр: В настройках выберите Скопировать результат в другое место и укажите адрес на другом листе.
  3. Power Query: После фильтрации нажмите Закрыть и загрузить в... и выберите Новая книга.
Можно ли автоматизировать фильтрацию по строке с помощью VBA?

Да, вот пример макроса для фильтрации столбца A по слову "отчет":

Sub FilterByText()

Dim ws As Worksheet

Set ws = ActiveSheet

ws.Range("A1").AutoFilter Field:=1, Criteria1:="=отчет", Operator:=xlAnd

End Sub

Чтобы запустить макрос:

  1. Нажмите Alt+F8, выберите FilterByText и нажмите Выполнить.
  2. Для гибкости замените "=отчет" на переменную с InputBox.