Если при попытке отфильтровать данные в 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 автоматически отключает функцию фильтрации для диапазонов с объединёнными областями.
Способ 1: Настройка пользовательского фильтра через меню
Самый быстрый способ создать фильтр с двумя условиями — использовать встроенное меню. Например, нужно отобразить в таблице с заказами только те строки, где статус = "Оплачено" и сумма > 5000. Порядок действий:
- Выделите любую ячейку в таблице и нажмите
Данные → Фильтр(илиCtrl+Shift+L). - Нажмите на стрелочку фильтра в заголовке столбца, который нужно отфильтровать (например,
Статус). - В выпадающем меню выберите
Текстовые фильтры → Настраиваемый фильтр(для чисел —Числовые фильтры). - В окне настройки укажите первое условие (например,
равно → Оплачено). - В выпадающем списке под условиями выберите
И(для одновременного выполнения) илиИЛИ(для любого из условий). - Добавьте второе условие (например,
больше → 5000) и нажмитеOK.
Если нужно применить фильтр к нескольким столбцам, повторите шаги 2–6 для каждого из них. Excel автоматически объединит условия по логике И (т.е. должны выполняться все заданные правила).
- Убедитесь, что в таблице нет пустых строк или столбцов
- Проверьте, что заголовки столбцов уникальны
- Удалите объединённые ячейки (если есть)
- Сохраните файл перед фильтрацией-->
Способ 2: Расширенный фильтр для сложных условий
Когда нужно отфильтровать данные по более чем двум условиям или использовать формулы, поможет инструмент «Расширенный фильтр» (Данные → Сортировка и фильтр → Дополнительно). Например, требуется показать заказы, где:
- 📅 Дата доставки — в текущем месяце,
- 💰 Сумма — от 3000 до 10000,
- 📍 Регион — «Москва» или «Санкт-Петербург».
Для этого:
- Создайте диапазон критериев (например, на отдельном листе или над таблицей). Скопируйте туда заголовки столбцов, по которым будет фильтрация (например,
Дата,Сумма,Регион). - Под заголовками укажите условия:
- Для даты:
=МЕСЯЦ(СЕГОДНЯ())(или просто текущий месяц вручную). - Для суммы:
>=3000в одной строке и<=10000в другой (это будет воспринято какИ). - Для региона:
Москвав одной строке иСанкт-Петербургв другой (это будет воспринято какИЛИ).
- Для даты:
- Вернитесь к исходной таблице, выделите её и выберите
Данные → Сортировка и фильтр → Дополнительно. - В окне «Расширенный фильтр» укажите:
Исходный диапазон— ваша таблица с данными (включая заголовки).Диапазон условий— ячейки с критериями (включая заголовки).- Отметьте
Фильтровать список на месте(или укажите диапазон для вывода результата).
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(Данные → Получить данные) можно объединить данные из нескольких источников и применить фильтр ко всей связанной модели. - 📈 Динамические диапазоны: используйте функции
СМЕЩ()илиИНДЕКС(), чтобы фильтр автоматически подстраивался под изменяющийся размер таблицы.
Пример фильтрации по формуле в расширенном фильтре:
- Создайте диапазон критериев с заголовком (например,
Прибыльность). - Под заголовком введите формулу, например:
=И(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"— числовое условие.
Чтобы запустить макрос:
- Нажмите
Alt+F11, чтобы открыть редакторVBA. - Вставьте код в модуль (
Insert → Module). - Закройте редактор и нажмите
Alt+F8, выберите макросCustomFilterи нажмитеRun.
Для более сложных сценариев (например, фильтрация по нескольким листам или динамическим критериям) можно модифицировать код, добавив переменные или циклы.
FAQ: Ответы на частые вопросы
Можно ли сохранить настройки фильтра для повторного использования?
Да. Для этого:
- Настройте фильтр вручную.
- Скопируйте весь лист (
Ctrl+A → Ctrl+C). - Вставьте данные на новый лист (
Ctrl+V). Фильтр сохранится.
Также можно записать макрос (Вид → Макросы → Записать макрос), который будет применять нужные настройки.
Почему фильтр не показывает все строки, хотя условия выполняются?
Вероятные причины:
- В таблице есть скрытые строки (
Главная → Формат → Отобразить/скрыть → Отобразить строки). - Фильтр применён к диапазону, меньшему чем реальная таблица (проверьте границы диапазона).
- В критериях используются абсолютные ссылки (
$A$1), из-за чего фильтр смотрит не на те ячейки.
Как отфильтровать данные по нескольким значениям (например, «Москва» ИЛИ «СПб» ИЛИ «Казань»)?
Есть 3 способа:
- Расширенный фильтр: в диапазоне критериев перечислите значения в разных строках под одним заголовком.
- Функция ФИЛЬТР() (для Excel 365):
=ФИЛЬТР(A2:D100; (B2:B100="Москва")+(B2:B100="СПб")+(B2:B100="Казань")). - Условное форматирование: выделите ячейки с нужными значениями цветом, затем отфильтруйте по цвету.
Можно ли фильтровать данные в сводной таблице?
Да, но по-другому:
- Щёлкните по стрелочке фильтра в заголовке столбца или строки сводной таблицы.
- Выберите
Фильтры по значениюилиФильтры по меткам. - Для сложных условий используйте
Срезы(Анализ → Вставить срезы).
Обычный фильтр (Данные → Фильтр) к сводным таблицам не применяется.
Как убрать фильтр, если он завис или не снимается?
Попробуйте:
- Нажмите
Данные → Фильтр(это отключит фильтрацию). - Если не помогает, скопируйте данные на новый лист (
Ctrl+A → Ctrl+C → Новый лист → Ctrl+V). - В крайнем случае закройте и снова откройте файл (иногда Excel «забывает» снять фильтр).