Создание пользовательского фильтра в Excel: от базовых правил до расширенных настроек

Если при попытке отфильтровать данные в Excel стандартные параметры не подходят — например, нужно выбрать ячейки с текстом, содержащим определённое слово, или числа в диапазоне 100-500 с исключением значений 200 и 300 — требуется настроить пользовательский фильтр. В отличие от автоматического фильтра по первому символу или цвету, собственный фильтр позволяет комбинировать до 2 условий с логическими операторами (И, ИЛИ), использовать подстановочные знаки (*, ?) и даже применять формулы для динамической фильтрации. Например, в таблице с продажами можно сразу выделить сделки, где сумма превышает среднее значение по региону, а дата заключения — не раньше текущего квартала.

Проблема в том, что многие пользователи не знают, как перейти от базового фильтра (Данные → Фильтр) к расширенным настройкам. В результате тратится время на ручной поиск строк или создаются лишние вспомогательные столбцы. Между тем, инструмент «Расширенный фильтр» (Данные → Сортировка и фильтр → Дополнительно) и функция ФИЛЬТР()Excel 365 и 2021) решают 90% задач без макросов. Далее разберём, как настроить фильтр под конкретные условия — от простого отбора текста до динамических правил с формулами.

Когда нужен пользовательский фильтр (а когда хватит стандартного)

Стандартный фильтр (Ctrl+Shift+L) справляется с задачами в 70% случаев: он позволяет отобрать данные по точному совпадению, цвету ячейки или топ-10 значений. Однако есть 5 сценариев, где без пользовательского фильтра не обойтись:

  • 🔍 Сложные условия: например, показать товары, у которых цена > 1000 И количество на складе < 50.
  • 📝 Динамические критерии: фильтрация по формуле, где условие зависит от другой ячейки (например, =B2>СРЗНАЧ($B$2:$B$100)).
  • 🔄 Множественные диапазоны: когда нужно отфильтровать данные в несмежных столбцах или на разных листах.
  • 📊 Уникальные значения: извлечение списка уникальных записей без повторений (функция УНИК() появилась только в Excel 365).
  • 🔗 Связанные таблицы: фильтрация данных в одной таблице на основе условий из другой.

При этом для простых задач — например, показать только строки с текстом «Да» в столбце D или числа больше 100 — хватит стандартного фильтра. Чтобы не усложнять себе работу, сначала проверьте, решает ли задачу базовая функция:

⚠️ Внимание: Если в таблице есть объединённые ячейки, фильтр работать не будет. Excel автоматически отключает функцию фильтрации для диапазонов с объединёнными областями.
📊 Как часто вы используете фильтры в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

Способ 1: Настройка пользовательского фильтра через меню

Самый быстрый способ создать фильтр с двумя условиями — использовать встроенное меню. Например, нужно отобразить в таблице с заказами только те строки, где статус = "Оплачено" и сумма > 5000. Порядок действий:

  1. Выделите любую ячейку в таблице и нажмите Данные → Фильтр (или Ctrl+Shift+L).
  2. Нажмите на стрелочку фильтра в заголовке столбца, который нужно отфильтровать (например, Статус).
  3. В выпадающем меню выберите Текстовые фильтры → Настраиваемый фильтр (для чисел — Числовые фильтры).
  4. В окне настройки укажите первое условие (например, равно → Оплачено).
  5. В выпадающем списке под условиями выберите И (для одновременного выполнения) или ИЛИ (для любого из условий).
  6. Добавьте второе условие (например, больше → 5000) и нажмите OK.

Если нужно применить фильтр к нескольким столбцам, повторите шаги 2–6 для каждого из них. Excel автоматически объединит условия по логике И (т.е. должны выполняться все заданные правила).

- Убедитесь, что в таблице нет пустых строк или столбцов

- Проверьте, что заголовки столбцов уникальны

- Удалите объединённые ячейки (если есть)

- Сохраните файл перед фильтрацией-->

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

Когда нужно отфильтровать данные по более чем двум условиям или использовать формулы, поможет инструмент «Расширенный фильтр» (Данные → Сортировка и фильтр → Дополнительно). Например, требуется показать заказы, где:

  • 📅 Дата доставки — в текущем месяце,
  • 💰 Сумма — от 3000 до 10000,
  • 📍 Регион — «Москва» или «Санкт-Петербург».

Для этого:

  1. Создайте диапазон критериев (например, на отдельном листе или над таблицей). Скопируйте туда заголовки столбцов, по которым будет фильтрация (например, Дата, Сумма, Регион).
  2. Под заголовками укажите условия:
    • Для даты: =МЕСЯЦ(СЕГОДНЯ()) (или просто текущий месяц вручную).
    • Для суммы: >=3000 в одной строке и <=10000 в другой (это будет воспринято как И).
    • Для региона: Москва в одной строке и Санкт-Петербург в другой (это будет воспринято как ИЛИ).
  3. Вернитесь к исходной таблице, выделите её и выберите Данные → Сортировка и фильтр → Дополнительно.
  4. В окне «Расширенный фильтр» укажите:
    • Исходный диапазон — ваша таблица с данными (включая заголовки).
    • Диапазон условий — ячейки с критериями (включая заголовки).
    • Отметьте Фильтровать список на месте (или укажите диапазон для вывода результата).
  • Нажмите OK.
  • Главное преимущество этого метода — гибкость. Можно использовать формулы в критериях (например, =И(A2="Да"; B2>100)), фильтровать данные по нескольким листам или даже книгам. Однако есть нюанс:

    ⚠️ Внимание: Если в диапазоне критериев есть пустые строки, Excel воспримет их как условие «любое значение». Чтобы избежать ошибок, заполняйте все ячейки под заголовками или оставляйте строки полностью пустыми.
    Тип данных Пример условия Результат
    Текст ="*ов" Все ячейки, оканчивающиеся на «ов» (Иванов, Петров)
    Число >СРЗНАЧ($B$2:$B$100) Числа, превышающие среднее значение в столбце B
    Дата >=ДАТА(2026;1;1) Даты начиная с 1 января 2026 года
    Логическое =И(A2="Да"; B2<100) Строки, где в A стоит «Да», а в B — число меньше 100

    Способ 3: Функция ФИЛЬТР() в Excel 365 и 2021

    В новых версиях Excel (начиная с 365 и 2021) появилась функция ФИЛЬТР(), которая позволяет создавать динамические фильтры без расширенных настроек. Например, формула:

    =ФИЛЬТР(A2:D100; (B2:B100="Оплачено")*(C2:C100>5000); "Нет данных")

    вернёт все строки из диапазона A2:D100, где в столбце B стоит «Оплачено», а в столбце C — число больше 5000. Если подходящих строк нет, отобразится сообщение «Нет данных».

    Преимущества функции ФИЛЬТР():

    • 🔄 Динамичность: результат обновляется автоматически при изменении исходных данных.
    • 📊 Гибкость: можно комбинировать несколько условий с операторами * (умножение для И) и + (сложение для ИЛИ).
    • 🔗 Интеграция: результат можно сразу использовать в других функциях (например, СУММ() или СЧЁТ()).

    Пример с несколькими условиями (ИЛИ):

    =ФИЛЬТР(A2:D100; (B2:B100="Оплачено")+(B2:B100="В обработке"); "Нет данных")

    Обратите внимание: функция ФИЛЬТР() работает только в Excel 365 и 2021. В более старых версиях (2019, 2016) её нет — придётся использовать расширенный фильтр или макросы VBA.

    Ошибки при создании фильтров и как их исправить

    Даже при правильной настройке фильтры в Excel могут работать некорректно. Вот 5 типичных ошибок и их решения:

    • 🚫 Фильтр не применяется: проверьте, что в таблице нет пустых строк или столбцов между данными. Excel воспринимает их как границу диапазона.
    • 🔢 Неверные результаты: если используете формулы в критериях, убедитесь, что они возвращают ИСТИНА/ЛОЖЬ. Например, =A2>100 — правильно, а =ЕСЛИ(A2>100;1;0) — нет.
    • 📌 Зависание программы: при фильтрации больших таблиц (100 000+ строк) отключите автоматический пересчёт (Формулы → Параметры вычислений → Вручную).
    • 🔍 Не видно стрелок фильтра: проверьте, что ячейки не защищены (Рецензирование → Защитить лист).
    • 📎 Фильтр сбрасывается: если данные обновляются через Power Query, настройте автоматическое применение фильтров после обновления.

    Самая распространённая ошибка — несоответствие заголовков в диапазоне критериев и исходной таблице. Например, если в таблице столбец называется «Сумма заказа», а в критериях — просто «Сумма», фильтр не сработает. Также следите за регистром: Москва и москва для Excel — разные значения.

    Как ускорить работу фильтров в больших таблицах

    1. Преобразуйте диапазон в умную таблицу (Ctrl+T).

    2. Используйте Power Pivot для данных объёмом более 100 000 строк.

    3. Отключите форматирование в ячейках с формулами (оно замедляет пересчёт).

    4. Разбейте большую таблицу на несколько листов по категориям.

    Продвинутые приёмы: фильтрация по цвету, формулам и связным таблицам

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

    • 🎨 Фильтр по цвету: если ячейки закрашены с помощью условного форматирования, можно отфильтровать строки по цвету фона или текста. Для этого в меню фильтра выберите Фильтр по цвету.
    • 🔗 Связанные таблицы: с помощью Power Query (Данные → Получить данные) можно объединить данные из нескольких источников и применить фильтр ко всей связанной модели.
    • 📈 Динамические диапазоны: используйте функции СМЕЩ() или ИНДЕКС(), чтобы фильтр автоматически подстраивался под изменяющийся размер таблицы.

    Пример фильтрации по формуле в расширенном фильтре:

    1. Создайте диапазон критериев с заголовком (например, Прибыльность).
    2. Под заголовком введите формулу, например: =И(B2>C2; D2="Да"), где:
      • B2 — выручка,
      • C2 — себестоимость,
      • D2 — статус «Оплачено».
  • Примените расширенный фильтр, указав этот диапазон как критерий.
  • Для фильтрации по цвету важно, чтобы цвет был назначен через условное форматирование, а не вручную. В противном случае Excel не сможет распознать правило.

    Автоматизация фильтров с помощью VBA

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

    Sub CustomFilter()
    

    Dim ws As Worksheet

    Set ws = ActiveSheet

    With ws.Range("A1").CurrentRegion

    .AutoFilter Field:=2, Criteria1:="Оплачено", Operator:=xlAnd, Criteria2:=">5000"

    End With

    End Sub

    Этот макрос:

    • Применяет фильтр ко всему диапазону вокруг ячейки A1.
    • Фильтрует второй столбец (Field:=2) по двум условиям:
      • Criteria1:="Оплачено" — текстовое значение,
      • Criteria2:=">5000" — числовое условие.

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

    1. Нажмите Alt+F11, чтобы открыть редактор VBA.
    2. Вставьте код в модуль (Insert → Module).
    3. Закройте редактор и нажмите Alt+F8, выберите макрос CustomFilter и нажмите Run.

    Для более сложных сценариев (например, фильтрация по нескольким листам или динамическим критериям) можно модифицировать код, добавив переменные или циклы.

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

    Можно ли сохранить настройки фильтра для повторного использования?

    Да. Для этого:

    1. Настройте фильтр вручную.
    2. Скопируйте весь лист (Ctrl+A → Ctrl+C).
    3. Вставьте данные на новый лист (Ctrl+V). Фильтр сохранится.

    Также можно записать макрос (Вид → Макросы → Записать макрос), который будет применять нужные настройки.

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

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

    • В таблице есть скрытые строки (Главная → Формат → Отобразить/скрыть → Отобразить строки).
    • Фильтр применён к диапазону, меньшему чем реальная таблица (проверьте границы диапазона).
    • В критериях используются абсолютные ссылки ($A$1), из-за чего фильтр смотрит не на те ячейки.
    Как отфильтровать данные по нескольким значениям (например, «Москва» ИЛИ «СПб» ИЛИ «Казань»)?

    Есть 3 способа:

    1. Расширенный фильтр: в диапазоне критериев перечислите значения в разных строках под одним заголовком.
    2. Функция ФИЛЬТР() (для Excel 365): =ФИЛЬТР(A2:D100; (B2:B100="Москва")+(B2:B100="СПб")+(B2:B100="Казань")).
    3. Условное форматирование: выделите ячейки с нужными значениями цветом, затем отфильтруйте по цвету.
    Можно ли фильтровать данные в сводной таблице?

    Да, но по-другому:

    1. Щёлкните по стрелочке фильтра в заголовке столбца или строки сводной таблицы.
    2. Выберите Фильтры по значению или Фильтры по меткам.
    3. Для сложных условий используйте Срезы (Анализ → Вставить срезы).

    Обычный фильтр (Данные → Фильтр) к сводным таблицам не применяется.

    Как убрать фильтр, если он завис или не снимается?

    Попробуйте:

    1. Нажмите Данные → Фильтр (это отключит фильтрацию).
    2. Если не помогает, скопируйте данные на новый лист (Ctrl+A → Ctrl+C → Новый лист → Ctrl+V).
    3. В крайнем случае закройте и снова откройте файл (иногда Excel «забывает» снять фильтр).