Фильтр по слову в Excel: 5 способов найти нужные данные за 30 секунд

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

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

Если вы когда-нибудь сталкивались с тем, что Excel не находит слово, которое точно есть в таблице, или фильтр сбрасывается при обновлении данных — здесь вы найдёте решения. Статья подойдёт как новичкам, так и опытным пользователям, которые хотят оптимизировать работу с данными.

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

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

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

Теперь введите слово для поиска в поле Текстовый фильтр. Excel покажет все строки, где это слово встречается в ячейках столбца — полностью или как часть текста. Например, если искать "моск", то в результатах окажутся и "Москва", и "Московская область".

Но что делать, если нужно найти точное совпадение? Например, отфильтровать только "ООО Ромашка", исключив "ООО Ромашка-Плюс"? Для этого:

  1. В выпадающем меню фильтра выберите Текстовые фильтрыравно.
  2. Введите точное слово или фразу в поле справа.

Обратите внимание: регистр не учитывается. То есть поиск по "москва" и "МОСКВА" даст одинаковый результат. Если вам нужно различать заглавные и строчные буквы, потребуются формулы (об этом — в разделе 4).

Типичные ошибки при базовой фильтрации

  • 🔴 Фильтр не применяется: проверьте, что выделили всю таблицу, включая заголовки. Excel игнорирует фильтры, если диапазон выделен некорректно.
  • 🔴 Пустые строки в результатах: это означает, что в некоторых ячейках есть невидимые символы (пробелы, переносы). Используйте функцию =ЧИСТ(), чтобы очистить данные.
  • 🔴 Фильтр сбрасывается при добавлении строк: преобразуйте диапазон в Smart Table (Ctrl+T), чтобы фильтры автоматически расширялись.
📊 Как часто вы используете фильтры в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

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

Автофильтр подходит для простых задач, но что если нужно отфильтровать данные по нескольким словам одновременно? Например, найти всех клиентов из Москвы, которые сделали заказ на сумму больше 10 000 рублей. Здесь на помощь придёт расширенный фильтр.

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

  1. Создайте диапазон критериев — отдельную область над или рядом с таблицей. Скопируйте туда заголовки столбцов, по которым будете фильтровать (например, "Город" и "Сумма заказа").
  2. Под заголовками укажите условия. Например:
    Город       Сумма заказа
    

    Москва >10000

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

Важно: если условия расположены в одной строке (как в примере выше), Excel ищет строки, которые удовлетворяют всем условиям одновременно (логическое "И"). Если условия в разных строках — используется логическое "ИЛИ".

Пример с логическим "ИЛИ"

Чтобы найти клиентов из Москвы или Санкт-Петербурга, создайте такой диапазон критериев:

Город

Москва

Санкт-Петербург

Excel покажет строки, где город соответствует хотя бы одному из значений.

Расширенный фильтр также поддерживает подстановочные знаки:

  • 🌟 * (звёздочка) — заменяет любое количество символов. Например, ск найдёт "Москва", "Минск", "Тверская".
  • 🌟 ? (вопросительный знак) — заменяет один символ. Например, ?ан найдёт "Иван", "Петр" (если в ячейке только эти 3 буквы).
  • 🌟 ~ (тильда) — экранирует подстановочные знаки. Например, чтобы найти слово "100%", введите ~%.

Когда использовать расширенный фильтр вместо автофильтра

ЗадачаАвтофильтрРасширенный фильтр
Поиск по одному слову✅ Да✅ Да
Поиск по нескольким словам в одном столбце ("И")❌ Нет✅ Да
Поиск по условиям в разных столбцах❌ Нет✅ Да
Вывод результата на другой лист❌ Нет✅ Да
Использование формул в критериях❌ Нет✅ Да (с ограничениями)

3. Фильтрация с помощью формул: для опытных пользователей

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

  • 🔍 =НАЙТИ("слово";A1) — возвращает позицию слова в тексте (с учётом регистра). Если слово не найдено, выдаёт ошибку #ЗНАЧ!.
  • 🔍 =ПОИСК("слово";A1) — то же, что НАЙТИ, но без учёта регистра.
  • 🔍 =ЕЧИСЛО(НАЙТИ("слово";A1)) — возвращает ИСТИНА, если слово найдено, и ЛОЖЬ в противном случае.
  • 🔍 =ДЛСТР(A1)-ДЛСТ(ПОДСТАВИТЬ(A1;"слово";"")) — считает, сколько раз слово встречается в ячейке.

Пример: чтобы отфильтровать строки, где слово "срочно" встречается хотя бы один раз (с учётом регистра), создайте вспомогательный столбец с формулой:

=ЕЧИСЛО(НАЙТИ("срочно";B2))

Затем примените автофильтр к этому столбцу, оставив только значения ИСТИНА.

Критическая особенность: формулы в критериях расширенного фильтра работают только если возвращают ИСТИНА/ЛОЖЬ. Например, так можно отфильтровать строки, где в столбце A содержится слово "да" или "нет":

=ИЛИ(A2="да";A2="нет")

Но есть нюанс: Excel не обновляет результаты формул в реальном времени. Если исходные данные изменятся, фильтр не пересчитается автоматически. Чтобы обновить результаты, нажмите F9 или перейдите на вкладку ФормулыВычислить лист.

Создать вспомогательный столбец|Проверьте отсутствие ошибок #ЗНАЧ!|Примените автофильтр к столбцу с формулами|Обновите расчёты (F9) после изменений данных-->

4. Фильтр с учётом регистра: обходим ограничения Excel

По умолчанию Excel игнорирует регистр при фильтрации. То есть поиск по "москва" и "МОСКВА" даст одинаковый результат. Но что если нужно найти только ячейки с заглавными буквами (например, для проверки корректности ввода данных)?

Решение — использовать пользовательскую функцию на VBA или комбинацию формул. Рассмотрим оба варианта.

Способ 1: Формулы без VBA

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

=ЕСЛИ(A2=ПРОПИСН(A2);"Только заглавные";"Есть строчные")

Затем отфильтруйте по значению "Только заглавные".

Способ 2: Пользовательская функция на VBA

Если вам часто приходится фильтровать с учётом регистра, добавьте в Excel эту функцию:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. В меню выберите InsertModule.
  3. Вставьте код:
    Function CaseSensitiveFind(lookup_value As String, lookup_range As Range) As Boolean
    

    Dim cell As Range

    For Each cell In lookup_range

    If cell.Value = lookup_value Then

    CaseSensitiveFind = True

    Exit Function

    End If

    Next cell

    CaseSensitiveFind = False

    End Function

  4. Закройте редактор VBA.

Теперь в любой ячейке можно использовать формулу:

=CaseSensitiveFind("МОСКВА";A:A)

Она вернёт ИСТИНА, если точное совпадение (с учётом регистра) найдено в столбце A.

Когда это пригодится

  • 📌 Проверка корректности ввода данных (например, почтовые индексы должны быть в верхнем регистре).
  • 📌 Поиск дубликатов, отличающихся только регистром (например, "Иванов" и "ИВАНОВ").
  • 📌 Анализ текстов, где регистр имеет значение (например, юридические документы).

5. Фильтр по части слова: подстановочные знаки и регулярные выражения

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

  • Все email-адреса домена @gmail.com.
  • Номера телефонов с кодом +7.
  • Товары, артикулы которых начинаются с ART-.

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

ЗадачаШаблон для фильтраПример
Начинается с...слово*ART-* найдёт "ART-001", "ART-555"
Заканчивается на...слово.com найдёт "mail.com", "site.com"
Содержит...словоМосква найдёт "г. Москва", "Московская обл."
Точно N символов????? (5 знаков)??-??? найдёт "12-345"

Для более сложных шаблонов (например, поиск email или телефонных номеров по формату) потребуются регулярные выражения. К сожалению, в стандартном Excel их нет, но можно использовать:

  1. Power Query: импортируйте данные в Power Query (ДанныеИз таблицы/диапазона), затем добавьте столбец с условием на языке M.
  2. VBA: напишите функцию с поддержкой regex (пример кода есть в FAQ).

Пример для Power Query: чтобы отфильтровать корректные email-адреса, добавьте столбец с формулой:

= Text.Select([Email], {"a".."z", "0".."9", ".", "@", "_"}) = [Email]

Эта формула проверяет, что в email нет запрещённых символов.

Поиск по шаблону телефона

Чтобы найти все номера в формате +7 (XXX) XXX-XX-XX, используйте в Power Query условие:

= Text.StartsWith([Phone], "+7 (") and Text.Length([Phone]) = 18

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

Если вам приходится применять одни и те же фильтры ежедневно, имеет смысл автоматизировать процесс. Рассмотрим два подхода: макросы для повторяющихся действий и Power Query для сложной обработки данных.

Макрос для быстрой фильтрации по слову

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код:
    Sub FilterBySelectedWord()
    

    Dim rng As Range

    Dim filterWord As String

    ' Проверяем, выбрана ли ячейка с текстом

    If TypeName(Selection) <> "Range" Then Exit Sub

    If Selection.Cells.Count <> 1 Then Exit Sub

    If Not IsEmpty(Selection.Value) Then

    filterWord = Selection.Value

    Else

    filterWord = InputBox("Введите слово для фильтра:", "Фильтр по слову")

    End If

    ' Применяем фильтр к активной таблице

    On Error Resume Next

    Selection.CurrentRegion.AutoFilter Field:=Selection.Column, Criteria1:="" & filterWord & ""

    On Error GoTo 0

    End Sub

  3. Назначьте макросу горячие клавиши (например, Ctrl+Shift+F) через СервисМакросыПараметры.

Теперь, чтобы отфильтровать таблицу по слову, достаточно:

  1. Выделить ячейку с нужным словом (или запустить макрос без выделения — он запросит ввод).
  2. Нажать Ctrl+Shift+F.

Power Query для сложной фильтрации

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

  • 🔄 Объединить данные из нескольких файлов и отфильтровать по ключевому слову.
  • 🔄 Разделить текст на части (например, выделить домен из email) и фильтровать по нему.
  • 🔄 Применить несколько фильтров последовательно.

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

  1. Выделите таблицу → ДанныеИз таблицы/диапазона.
  2. В редакторе Power Query выберите столбец "Город" → ФильтрыТекстовые фильтрыравно → введите "Москва".
  3. Затем выберите столбец "Статус" → Фильтрыравно → введите "Оплачено".
  4. Нажмите Закрыть и загрузить, чтобы вернуть отфильтрованные данные в Excel.

7. Типичные проблемы и их решения

Даже опытные пользователи сталкиваются с ситуациями, когда фильтр в Excel работает некорректно. Разберём самые распространённые случаи и способы их исправления.

Проблема 1: Фильтр не находит слово, которое есть в таблице

Возможные причины и решения:

  • 🔹 Лишние пробелы или невидимые символы: используйте =ЧИСТ(A1) или =СЖПРОБЕЛЫ(A1), чтобы очистить данные.
  • 🔹 Ячейки отформатированы как текст, но содержат числа: преобразуйте формат ячеек в Общий или Текстовый.
  • 🔹 Фильтр применён к неверному диапазону: проверьте, что выделена вся таблица, включая заголовки.

Проблема 2: Фильтр сбрасывается при добавлении новых строк

Решение: преобразуйте диапазон в Smart Table (Ctrl+T). Фильтры в умных таблицах автоматически расширяются при добавлении данных.

Проблема 3: Медленная работа фильтра на больших таблицах

Что делать:

  • 🔹 Отключите Автоматический пересчёт формул (ФормулыПараметры вычисленийВручную).
  • 🔹 Преобразуйте данные в Smart Table — они обрабатываются быстрее.
  • 🔹 Разбейте большую таблицу на несколько меньших (по 50 000 строк).

Проблема 4: Фильтр не работает с формулами

Если в ячейках формулы (например, =A1&B1), а не статические значения, Excel может некорректно применять фильтры. Решения:

  • 🔹 Скопируйте данные из формул как значения (КопироватьСпециальная вставкаЗначения).
  • 🔹 Используйте вспомогательный столбец с формулами, как описано в разделе 3.
Как скопировать только видимые строки после фильтра

Выделите отфильтрованные данные → Alt+; (выделяет только видимые ячейки) → скопируйте (Ctrl+C) и вставьте в новое место.

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

Как отфильтровать данные по нескольким словам в одной ячейке? Например, найти строки, где есть и "ургентно", и "важно".

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

=И(ЕЧИСЛО(ПОИСК("ургентно";A2)); ЕЧИСЛО(ПОИСК("важно";A2)))

Затем отфильтруйте по значению ИСТИНА.

Альтернатива: в Power Query добавьте пользовательский столбец с условием:

= Text.Contains([Text], "ургентно") and Text.Contains([Text], "важно")
Можно ли сохранить фильтр, чтобы не настраивать его заново?

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

  1. Сохранить как представление: примените фильтр → ВидСохранить представление. Позже его можно будет загрузить из Настраиваемые представления.
  2. Создать таблицу с критериями: сохраните диапазон условий для расширенного фильтра на отдельном листе.
  3. Использовать макросы: запишите действия по применению фильтра и назначьте их на кнопку.
Как фильтровать данные по цвету ячейки или шрифта?

Стандартный фильтр по цвету доступен только для ячеек, окрашенных вручную. Для условного форматирования:

  1. Примените условное форматирование к данным (например, красный цвет для значений < 0).
  2. Выделите таблицу → ДанныеФильтр.
  3. Кликните по стрелке фильтра → Фильтр по цвету → выберите нужный цвет.

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

Как в VBA создать фильтр по регулярному выражению (regex)?

Excel не поддерживает regex напрямую, но можно использовать VBScript.RegExp в VBA. Пример функции для проверки email:

Function IsValidEmail(email As String) As Boolean

Dim regEx As Object

Set regEx = CreateObject("VBScript.RegExp")

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

IsValidEmail = regEx.Test(email)

End Function

Затем примените её в вспомогательном столбце и отфильтруйте по ИСТИНА.

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

Вероятные причины:

  • 🔸 В данных есть скрытые символы (пробелы, табуляции, неразрывные пробелы). Используйте =ЧИСТ() и =СЖПРОБЕЛЫ().
  • 🔸 Строки скрыты вручную (не фильтром). Отобразите их через ГлавнаяФорматОтобразить/СкрытьОтобразить строки.
  • 🔸 Фильтр применён к неверному диапазону. Проверьте, что выделена вся таблица, включая заголовки.
  • 🔸 В ячейках ошибки (например, #Н/Д). Используйте =ЕОШИБКА(A1), чтобы их найти.