Как сделать текстовые фильтры в Excel: от базовых до продвинутых методов

Почему текстовые фильтры в Excel экономят часы работы

Представьте: перед вами таблица с 5000 строк клиентских данных, где нужно найти всех покупателей из Москвы, чьи заказы превышают 10 000 рублей, но при этом статус оплаты — "Ожидает подтверждения". Вручную это заняло бы не меньше часа. А с текстовыми фильтрами в Microsoft Excel или Google Sheets задача решается за 3 клика. Это не преувеличение: по данным исследования Spreadsheeto, 87% пользователей Excel тратят до 30% рабочего времени на поиск и сортировку данных — и большинство из них даже не подозревают о возможностях текстовых фильтров.

Текстовые фильтры — это не просто инструмент для поиска слов в ячейках. Это мощный механизм, который позволяет: 1) Искать по частичным совпадениям (например, все email-адреса с доменом @gmail.com), 2) Применять логические условия ("начинается с", "заканчивается на", "содержит"), 3) Комбинировать несколько критериев одновременно (например, "город = Москва" И "статус ≠ Отменён").

В этой статье разберём все способы — от элементарных до тех, о которых не пишут даже в официальной документации.

Важно: текстовые фильтры работают и в Excel 2010, и в Excel 365, но в новых версиях появились дополнительные опции (например, фильтрация по цвету текста или иконкам). Мы укажем на эти различия там, где они критичны.

Базовые текстовые фильтры: как включить и использовать

Начнём с азов. Предположим, у вас есть таблица с данными о сотрудниках, и вам нужно отфильтровать всех, кто работает в отделе "Маркетинг". Вот как это сделать:

  1. Выделите любую ячейку в таблице (или весь диапазон данных).

  2. Перейдите на вкладку Данные → нажмите Фильтр (или используйте горячие клавиши Ctrl+Shift+L).

  3. В заголовке столбца, по которому нужно фильтровать (например, "Отдел"), появится кнопка с изображением воронки. Нажмите на неё.

  4. В выпадающем меню снимите галочку с (Выделить всё), затем поставьте галочку только напротив "Маркетинг". Нажмите OK.

Готово! Теперь в таблице отображаются только строки с отделом "Маркетинг". Но что, если вам нужно найти всех, кто работает не в маркетинге? Для этого:

  • 🔹 В том же выпадающем меню фильтра выберите Текстовые фильтрыНе равно...
  • 🔹 В появившемся окне введите "Маркетинг" и нажмите OK.

Обратите внимание: базовый фильтр чувствителен к регистру. То есть, если в таблице есть значения "маркетинг" (с маленькой буквы) и "Маркетинг" (с большой), они будут восприниматься как разные данные. Чтобы этого избежать, используйте функцию ПРОПИСН() или СТРОЧН() в дополнительном столбце.

Продвинутые текстовые фильтры: подстановочные знаки и логика

Базовые фильтры покрывают 70% задач, но что делать, если нужно найти:

  • 🔹 Все ячейки, которые начинаются с буквы "А" (например, "Алексей", "Анна", "АО «Ромашка»")?
  • 🔹 Все email-адреса, заканчивающиеся на @company.ru?
  • 🔹 Все записи, где в поле "Комментарий" содержится слово "срочно" или "важно"?

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

Задача Подстановочный знак Пример ввода Результат
Начинается с... * (звёздочка) А* "Алексей", "Анна", "АО «Ромашка»"
Заканчивается на... * *@company.ru "ivanov@company.ru", "petrov@company.ru"
Содержит... * срочно "Срочно доставить!", "Не срочно, но важно"
Любой один символ ? (вопросительный знак) Т?ма "Тима", "Тома", "Тёма"
Точное совпадение Без подстановочных знаков =Москва Только "Москва" (без "Москва-1", "г. Москва" и т.д.)

Чтобы применить эти фильтры:

  1. Нажмите на воронку в заголовке столбца → Текстовые фильтры.

  2. Выберите нужное условие (начинается с, заканчивается на, содержит).

  3. Введите значение с подстановочным знаком (например, *@gmail.com).

📊 Как часто вы используете подстановочные знаки в Excel?
Никогда не пробовал
Редко, только если нужно
Часто, это экономит время
Постоянно, без них никуда

Критичный нюанс: если вы ищете ячейки, содержащие символы или ? (например, в артикулах товаров), экранируйте их тильдой: ~ или ~?. Иначе Excel воспримет их как подстановочные знаки.

Фильтрация по нескольким критериям: "И"/"ИЛИ"

Допустим, вам нужно найти всех клиентов из Москвы или Санкт-Петербурга, чьи заказы превышают 5000 рублей. Здесь потребуется комбинация текстовых и числовых фильтров с логическими операторами.

Способ 1: Последовательная фильтрация (для условий "И")

  1. Сначала примените фильтр по городу: выберите "Москва" и "Санкт-Петербург" (удерживайте Ctrl для множественного выбора).

  2. Затем примените фильтр по столбцу "Сумма заказа": Числовые фильтрыбольше... → введите 5000.

Способ 2: Расширенный фильтр (для условий "ИЛИ")

Если нужно найти клиентов, которые или из Москвы, или сделали заказ на сумму больше 10 000 рублей, используйте Расширенный фильтр:

  1. Скопируйте заголовки столбцов ("Город" и "Сумма заказа") в отдельную область листа (например, в ячейки F1:G1).

  2. Под ними укажите критерии:

    Город       Сумма заказа
    

    Москва

    >10000

  3. Перейдите в ДанныеРасширенный фильтр.

  4. В поле "Исходный диапазон" укажите вашу таблицу, в поле "Диапазон условий" — ячейки с критериями (F1:G3 в нашем примере).

  5. Выберите "Фильтровать список на месте" и нажмите OK.

Скопировать заголовки столбцов в отдельную область|

Указать критерии под заголовками (каждый критерий "ИЛИ" — в новой строке)|

Проверить, что диапазон условий включает все критерии|

Выбрать опцию "Фильтровать список на месте"-->

Важно: в расширенном фильтре критерии, расположенные в одной строке, соединяются оператором "И", а в разных строках — оператором "ИЛИ". Это ключевое отличие от обычной фильтрации.

Фильтрация по цвету текста или фона: скрытые возможности

Мало кто знает, но в Excel можно фильтровать данные не только по текстовому содержимому, но и по цвету ячейки или шрифта. Это полезно, если вы используете условное форматирование для выделения важных данных.

Как это работает:

  1. Примените условное форматирование к вашим данным (например, покрасьте в красный все ячейки со статусом "Просрочено").

  2. Нажмите на воронку в заголовке столбца → Фильтр по цвету.

  3. Выберите нужный цвет из палитры. Excel покажет только строки, где ячейки в этом столбце окрашены в выбранный цвет.

Ограничения:

  • 🔹 Работает только с цветами, применёнными через условное форматирование или вручную.
  • 🔹 В Excel 2010 и старше фильтрация по цвету шрифта недоступна — только по цвету ячейки.
  • 🔹 Если цвет применён через Формат ячеек (не условное форматирование), фильтр может не сработать.
Как фильтровать по нескольким цветам одновременно?

К сожалению, в стандартном фильтре это невозможно. Но есть обходной путь:

1. Создайте дополнительный столбец с формулой, которая проверяет цвет ячейки (например, через VBA-функцию GetCellColor).

2. Применяйте фильтр по этому столбцу.

Подробнее о VBA-решениях читайте в разделе "Автоматизация фильтров".

Текстовые фильтры с формулами: когда стандартных инструментов не хватает

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

  • 🔹 Текст содержит ровно 3 слова (например, "Иванов Петр Сидорович").
  • 🔹 Первая буква каждого слова заглавная (как в ФИО).
  • 🔹 Текст соответствует регулярному выражению (например, формат телефона +7 (XXX) XXX-XX-XX).

В таких случаях поможет комбинация дополнительного столбца с формулами и стандартного фильтра. Примеры:

Задача Формула Пример результата
Текст содержит ровно 3 слова =ЕСЛИ(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))=2; "Да"; "Нет") "Да" для "Иванов Петр Сидорович", "Нет" для "Иванов П."
Первая буква каждого слова заглавная =ЕСЛИ(A1=ПРОПНАЧ(A1); "Да"; "Нет") "Да" для "Москва", "Нет" для "мОСКВА"
Текст соответствует формату телефона =ЕСЛИ(И(ДЛСТР(A1)=16; ПРАВСИМВ(A1;1)=")"; ПОИСК("(";A1)=5); "Да"; "Нет") "Да" для "+7 (123) 456-78-90"

После добавления такого столбца:

  1. Примените фильтр по новому столбцу.

  2. Выберите значение "Да" — и вы получите только те строки, которые соответствуют вашему условию.

Для сложных регулярных выражений (например, проверки email или URL) используйте Power Query или VBA. Пример кода для проверки email через VBA:

Function IsValidEmail(rng As Range) As String

Dim regex As Object

Set regex = CreateObject("VBScript.RegExp")

regex.Pattern = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"

If regex.Test(rng.Value) Then

IsValidEmail = "Да"

Else

IsValidEmail = "Нет"

End If

End Function

Автоматизация текстовых фильтров: макросы и Power Query

Если вам приходится применять одни и те же фильтры ежедневно, их можно автоматизировать. Рассмотрим два подхода:

1. Макросы (VBA)

Допустим, вам нужно каждый день фильтровать таблицу по текущей дате в столбце "Дата заказа". Создайте макрос:

Sub FilterByToday()

Dim ws As Worksheet

Set ws = ActiveSheet

ws.Range("A1").CurrentRegion.AutoFilter Field:=3, Criteria1:="=" & Date

End Sub

Теперь достаточно нажать Alt+F8, выбрать FilterByToday — и фильтр применится автоматически.

2. Power Query

Power Query (доступен в Excel 2016 и новее) позволяет создавать сложные цепочки фильтров, которые обновляются при изменении исходных данных. Например, чтобы отфильтровать все строки, где в столбце "Комментарий" есть слово "срочно":

  1. Выделите вашу таблицу → ДанныеИз таблицы/диапазона (в группе "Получить и преобразовать данные").

  2. В редакторе Power Query выберите столбец "Комментарий" → Текстовые фильтрыСодержит... → введите "срочно".

  3. Нажмите Закрыть и загрузить. Теперь у вас есть отдельная таблица с отфильтрованными данными, которая обновляется автоматически.

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

  • 🔹 Не требует знания программирования.
  • 🔹 Легко редактировать цепочку фильтров (в отличие от макросов, где нужно править код).
  • 🔹 Автоматически обрабатывает большие объёмы данных (до миллионов строк).

Ошибки при работе с текстовыми фильтрами и как их избежать

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

⚠️ Внимание: Если после применения фильтра данные "исчезли", проверьте, не стоят ли галочки в меню фильтра напротив пустых ячеек. Excel по умолчанию показывает все строки, включая пустые, если они были в исходном диапазоне.
Проблема Причина Решение
Фильтр не находит очевидные совпадения Лишние пробелы в начале/конце ячеек Примените СЖПРОБЕЛЫ() ко всему столбцу
Фильтр игнорирует регистр В настройках Excel отключена чувствительность к регистру Используйте формулу =НАЙТИ("текст";A1) в дополнительном столбце
Расширенный фильтр не работает Диапазон условий не включает заголовки Убедитесь, что в диапазоне условий есть строка с заголовками столбцов
Фильтр по цвету не срабатывает Цвет применён через "Формат по образцу" Перепримените цвет через условное форматирование

Ещё одна частая ошибка — попытка отфильтровать данные в объединённых ячейках. Excel не позволяет применять фильтры к объединённым диапазонам. Решение:

  1. Разъедините ячейки (ГлавнаяОбъединить и поместить в центре).

  2. Используйте Power Query для работы с такими таблицами.

⚠️ Внимание: Если вы используете Текст по столбцам для разделения данных (например, разбиваете ФИО на отдельные столбцы), применённые ранее фильтры сбросятся. Всегда разбивайте данные до фильтрации.

FAQ: Ответы на частые вопросы о текстовых фильтрах

Можно ли сохранить часто используемые фильтры, чтобы не настраивать их каждый раз?

Да, есть несколько способов:

  1. Сохранить как представление: Примените нужные фильтры → ВидСохранить представление. Позже вы сможете вернуть этот вид одним кликом.

  2. Создать таблицу Excel: Преобразуйте диапазон в таблицу (Ctrl+T). Фильтры в таблицах сохраняются даже после закрытия файла.

  3. Использовать макросы: Запишите последовательность действий с фильтрами и назначьте её на кнопку или горячие клавиши.

Почему при копировании отфильтрованных данных копируются все строки, а не только видимые?

Это стандартное поведение Excel. Чтобы скопировать только видимые ячейки:

  1. Выделите отфильтрованный диапазон.

  2. Нажмите Alt+; (выделяет только видимые ячейки).

  3. Скопируйте (Ctrl+C) и вставьте (Ctrl+V) данные.

Альтернатива: используйте Специальная вставкаТолько видимые ячейки.

Как отфильтровать данные по нескольким ключевым словам (например, найти строки, где есть "срочно" ИЛИ "важно")?

Способ 1: Используйте расширенный фильтр с критериями в разных строках:

Комментарий
  срочно
  важно

Способ 2: Создайте дополнительный столбец с формулой:

=ЕСЛИ(ИЛИ(ЕНАЙТИ("срочно";A1); ЕНАЙТИ("важно";A1)); "Да"; "Нет")

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

Можно ли применить текстовый фильтр к данным на другом листе?

Прямо — нет. Но есть обходные пути:

  • 🔹 Ссылка на другой лист: В дополнительном столбце используйте формулу вида =Лист2!A1, затем фильтруйте по этому столбцу.
  • 🔹 Power Query: Загрузите данные с обоих листов и объедините их перед фильтрацией.
  • 🔹 VBA: Напишите макрос, который копирует данные с одного листа на другой с применением фильтра.
Как ускорить работу фильтров в больших таблицах (100 000+ строк)?

Чем больше данных, тем медленнее работают фильтры. Оптимизируйте процесс так:

  • 🔹 Преобразуйте диапазон в таблицу Excel (Ctrl+T) — это ускоряет фильтрацию в 2-3 раза.
  • 🔹 Отключите автоматический пересчёт формул перед фильтрацией: ФормулыПараметры вычисленийВручную.
  • 🔹 Используйте Power Query для предварительной фильтрации данных перед загрузкой в Excel.
  • 🔹 Разбейте данные на несколько листов (например, по годам или регионам).

Если таблица действительно огромная (миллионы строк), рассмотрите переход на Power BI или SQL.