Как отфильтровать строки в Excel по названию: от автофильтра до VBA

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

В этой статье мы разберём 5 рабочих методов фильтрации — от базового автофильтра до продвинутых формул и макросов. Вы узнаете, как искать точные совпадения, использовать подстановочные знаки (* и ?), фильтровать по нескольким критериям одновременно и даже автоматизировать процесс с помощью VBA. А ещё — типичные ошибки, которые портят результаты фильтрации, и как их избежать.

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

Самый простой способ отфильтровать строки — использовать встроенный автофильтр. Он подходит для 90% задач и работает во всех версиях Excel (включая Excel 365 и Excel 2019). Чтобы включить его:

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

В открывшемся меню вы увидите все уникальные значения из столбца. Здесь можно:

  • 🔍 Выбрать конкретное название из списка (галочкой).
  • 📝 Ввести текст в поле поиска — Excel покажет только строки, содержащие этот текст.
  • 🔄 Использовать текстовые фильтры (например, "начинается с..." или "содержит...").

Автофильтр поддерживает частичные совпадения. Например, если ввести "ноут", он найдёт и "Ноутбук Acer", и "Ноутбук HP 15". Для точного совпадения используйте знак равенства: =Ноутбук Acer.

2. Расширенный фильтр: гибкие критерии и динамические диапазоны

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

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

  1. Создайте диапазон критериев (например, в ячейках F1:F2):
    • В F1 введите заголовок столбца (например, "Название").
    • В F2 укажите условие (например, "=Ноутбук" для поиска всех строк, содержащих слово "Ноутбук").
  • Перейдите на вкладку ДанныеДополнительно (или Advanced в английской версии).
  • В окне настроек укажите:
    • Исходный диапазон — ваша таблица с данными.
    • Диапазон критериев — ячейки с условиями (F1:F2).
    • Поместить результат в диапазон — выберите ячейку, куда вывести отфильтрованные данные (например, H1).

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

    • 🔹 = — точное совпадение.
    • 🔹 >, < — больше/меньше (для чисел).
    • 🔹 * — любой набор символов (например, =Samsung найдёт "Samsung Galaxy" и "Телевизор Samsung").
    • 🔹 ? — один любой символ (например, =М?нитор найдёт "Монитор" и "Манитор").
    Пример сложного критерия

    Чтобы найти названия, которые начинаются на "А" И содержат слово "Про", создайте два условия в разных строках:

    =А*
    

    =Про

    Excel воспримет их как логическое "И".

    3. Фильтрация с помощью формул: когда автофильтр бессилен

    Иногда названия в таблице не совсем соответствуют тому, что вы ищете. Например, нужно найти все строки, где название содержит любое из нескольких слов ("Ноутбук" ИЛИ "Laptop") или где длина названия превышает 20 символов. В таких случаях поможет комбинация формул и фильтра.

    Способ 1: Добавить вспомогательный столбец с формулой, а затем отфильтровать по нему.

    • 📌 Например, чтобы найти названия с "Ноутбук" или "Laptop", введите в соседнем столбце:
      =ИЛИ(ЕНД(ПОИСК("Ноутбук";A2)); ЕНД(ПОИСК("Laptop";A2)))

      Формула вернёт ИСТИНА или ЛОЖЬ, по которому можно фильтровать.

    • 📌 Чтобы найти названия длиннее 20 символов:
      =ДЛСТР(A2)>20

    Способ 2: Использовать функцию ФИЛЬТР (Excel 365 и 2021).

    Если у вас новая версия Excel, можно обойтись без вспомогательных столбцов:

    =ФИЛЬТР(A2:B100; ЕНД(ПОИСК("Ноутбук"; A2:A100)))

    Эта формула вернёт только строки, где в столбце A есть слово "Ноутбук".

    📊 Какой метод фильтрации вы используете чаще?
    Автофильтр
    Расширенный фильтр
    Формулы
    Макросы
    Не фильтрую данные

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

    Частая задача — отфильтровать строки, где название соответствует одному из нескольких условий (логическое "ИЛИ") или всем условиям сразу (логическое "И"). Вот как это сделать:

    Логическое "ИЛИ" (любое из условий):

    • 🔸 В автофильтре: используйте Текстовые фильтры → Настраиваемый фильтр → выберите "содержит" и введите первое слово. Затем добавьте второе условие с логикой "ИЛИ".
    • 🔸 В расширенном фильтре: разместите критерии в одной строке (Excel воспримет их как "ИЛИ").
      =Ноутбук
      

      =Laptop

    Логическое "И" (все условия одновременно):

    • 🔸 В автофильтре: примените фильтр последовательно к нескольким столбцам.
    • 🔸 В расширенном фильтре: разместите критерии в разных строках.
      =Ноутбук
      

      =15

      Это найдёт названия, которые содержат и "Ноутбук", и "15".

    Тип логики Автофильтр Расширенный фильтр Пример
    "ИЛИ" Настраиваемый фильтр с несколькими условиями Критерии в одной строке Название содержит "Ноутбук" ИЛИ "Laptop"
    "И" Последовательная фильтрация по столбцам Критерии в разных строках Название содержит "Ноутбук" И "15"
    "НЕ" Исключить выбранные значения Критерий с "<>" Название НЕ содержит "Б/У"

    5. Фильтрация с подстановочными знаками: * и ?

    Подстановочные знаки * (звёздочка) и ? (вопросительный знак) — мощный инструмент для гибкого поиска. Они работают во всех методах фильтрации (автофильтр, расширенный фильтр, формулы).

    • 🌟 * — заменяет любое количество символов (включая ноль). Примеры:
      • =бук — найдёт "Ноутбук", "Книга", "Звук".
      • =Смартфон* — найдёт "Смартфон Samsung", но не "Смарт-часы".
    • 🤔 ? — заменяет один любой символ. Примеры:
      • =М?нитор — найдёт "Монитор" и "Манитор".
      • =А??? — найдёт все 4-буквенные слова, начинающиеся на "А".

    Сочетание * и ? позволяет создавать сложные шаблоны. Например:

    • =фон — все слова с "фон" в любом месте.
    • =????-2023 — все 4-символьные коды, заканчивающиеся на "-2023".
    • =A*5 — все названия, начинающиеся на "A" и заканчивающиеся на "5".
    ⚠️ Внимание: Если вы ищете символы или ? как часть текста (например, название "Файл.txt"), экранируйте их тильдой: =Файл~*.txt. Иначе Excel воспримет их как подстановочные знаки.

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

    Если фильтрацию приходится выполнять регулярно, имеет смысл автоматизировать процесс. Для этого подойдут:

    Способ 1: Макросы на VBA

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

    Sub FilterByName()
    

    Dim ws As Worksheet

    Dim rng As Range

    Set ws = ActiveSheet

    Set rng = ws.Range("A1").CurrentRegion ' Диапазон с данными

    ' Убираем старые фильтры

    If ws.AutoFilterMode Then ws.AutoFilterMode = False

    ' Применяем фильтр по столбцу A (названия)

    rng.AutoFilter Field:=1, Criteria1:="=Ноутбук", Operator:=xlAnd

    End Sub

    Чтобы запустить макрос, нажмите Alt+F8, выберите FilterByName и нажмите Выполнить.

    Способ 2: Power Query

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

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

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

    ☑️ Подготовка к автоматизации фильтрации

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

    7. Типичные ошибки и как их избежать

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

    • 🚫 Фильтр не находит строки, которые есть в таблице:
      • Проверьте, нет ли скрытых символов (пробелов, переносов строк) в названиях. Используйте функцию =ПЕЧСИМВ(A2), чтобы их увидеть.
      • Убедитесь, что регистр не важен (Excel игнорирует регистр по умолчанию, но в формулах может потребоваться =НАЙТИ("текст";A2) вместо =ПОИСК).
    • 🚫 Фильтр сбрасывается при обновлении данных:
      • Преобразуйте диапазон в умную таблицу (Ctrl+T). Фильтры в таблицах сохраняются при добавлении новых строк.
    • 🚫 Расширенный фильтр не работает:
      • Проверьте, чтобы заголовки критериев точно совпадали с заголовками в исходной таблице (включая регистр и пробелы).
      • Убедитесь, что диапазон критериев не пересекается с исходными данными.
    ⚠️ Внимание: Если в названиях есть кавычки (например, "Монитор 24""), при использовании формул экранируйте их удвоением: =ПОИСК("""";A2). Иначе Excel воспримет кавычку как конец текстовой строки.

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

    Можно ли фильтровать по названию, если оно разбито на несколько ячеек?

    Да, но для этого нужно сначала объединить ячейки. Например, если название состоит из ячеек A2 и B2, создайте вспомогательный столбец с формулой =A2&" "&B2, а затем фильтруйте по нему. Или используйте Power Query для слияния столбцов перед фильтрацией.

    Как отфильтровать строки, где название содержит одно из 10+ слов?

    Самый надёжный способ — использовать расширенный фильтр с критериями в одной строке или формулу с ИЛИ:

    =ИЛИ(ЕНД(ПОИСК("слово1";A2)); ЕНД(ПОИСК("слово2";A2)); ...)

    Для большого списка слов удобнее создать отдельную таблицу со словами и использовать СУММПРОИЗВ.

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

    Это происходит, если в исходных данных есть пустые ячейки в столбце с названиями. Чтобы их исключить, добавьте критерий "не равно пустоте" (<>"") в расширенном фильтре или отметьте опцию "Игнорировать пустые ячейки" в настройках автофильтра.

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

    Варианты:

    1. Скопируйте видимые строки (Alt+;Ctrl+C) и вставьте в новый файл.
    2. Используйте расширенный фильтр с выводом в другой диапазон, затем скопируйте его.
    3. В Power Query примените фильтр и экспортируйте результат в новый файл.

    Можно ли фильтровать по названию с учётом регистра?

    Стандартные фильтры Excel регистронезависимые. Для учёта регистра используйте формулы:

    =НАЙТИ("Текст";A2)  ' Ищет с учётом регистра
    

    =ПОИСК("текст";A2) ' Ищет без учёта регистра

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