Работа с большими массивами данных в Microsoft Excel часто требует гибкой фильтрации — когда нужно одновременно применить несколько условий к разным столбцам. Например, вы хотите увидеть только продажи определенного товара за конкретный квартал, которые превышают заданную сумму. Стандартный фильтр через выпадающее меню здесь не поможет — он работает только с одним столбцом за раз.
В этой статье мы разберем 5 методов добавления нескольких фильтров в Excel (включая Excel 365, 2021, 2019 и 2016): от базовых инструментов до продвинутых функций вроде ФИЛЬТР (в динамических массивах) и Power Query. Вы узнаете, как комбинировать текстовые, числовые и цветовые фильтры, избегать ошибок при работе с датами, а также автоматизировать процесс с помощью расширенного фильтра и срезов.
Особое внимание уделим скрытому ограничению Excel: при использовании стандартного фильтра одновременно можно применить только одно условие к столбцу, но с помощью расширенного фильтра или формул это ограничение обходится. Это критично для аналитиков, бухгалтеров и маркетологов, которые работают с многомерными данными.
Неважно, новичок вы или опытный пользователь — здесь найдется решение для вашей задачи. Начнем с самого простого и постепенно перейдем к профессиональным техникам.
1. Стандартный фильтр: как применить несколько условий к одному столбцу
Да, даже в стандартном фильтре (Данные → Фильтр) можно задавать несколько критериев — но только для одного столбца. Например, отобразить строки, где значение в столбце Цена находится в диапазоне от 1000 до 5000 или равно 0.
Для этого:
- Выделите заголовок столбца (или любую ячейку в таблице) и нажмите
Ctrl+Shift+L(илиДанные → Фильтр). - Щелкните по стрелке фильтра в нужном столбце и выберите
Числовые фильтры(илиТекстовые фильтры, если данные не числовые). - В выпадающем меню укажите условие, например,
больше или равнои введите значение1000. - Нажмите на тот же фильтр снова и выберите
Добавить к текущему фильтру(в некоторых версиях —И/ИЛИ), затем задайте второе условие (например,меньше или равно 5000).
Важно: по умолчанию условия соединяются через логическое "И" (обе условия должны выполняться). Чтобы использовать "ИЛИ", выберите соответствующий переключатель в окне фильтра.
- 📌 Текстовые фильтры: можно комбинировать условия "содержит", "не содержит", "начинается с" и т.д. Например, показать строки, где в столбце
Городзначение начинается на "М" или заканчивается на "ск". - 📅 Фильтры по дате: выберите
Фильтры по дате→Настраиваемый фильтр, чтобы задать диапазон (например, с01.01.2023по31.03.2023). - 🎨 Фильтр по цвету: если ячейки окрашены, в меню фильтра есть пункт
Фильтр по цвету ячейкиилиФильтр по цвету шрифта.
⚠️ Внимание: Если после применения фильтра данные не отображаются, проверьте:
- Нет ли скрытых строк выше видимой области (они могут блокировать фильтрацию).
- Не включен ли режим
Защита листа(Рецензирование → Защитить лист).- Не содержат ли ячейки непечатаемые символы (пробелы, переносы строк). Используйте
=ЧИСТ(ячейка)для очистки.
2. Расширенный фильтр: несколько условий для разных столбцов
Когда нужно отфильтровать данные по нескольким столбцам одновременно, стандартный фильтр бессилен. Здесь поможет расширенный фильтр (Данные → Сортировка и фильтр → Дополнительно). Он позволяет:
- Использовать несколько критериев для разных столбцов (например,
Город = "Москва"ИСумма > 10000). - Копировать отфильтрованные данные в другое место на листе.
- Применять формулы в качестве условий (например,
=ИЛИ(A2="Да"; A2="Одобрено")).
Пошаговая инструкция:
- Создайте диапазон критериев (обычно над или рядом с таблицей). Скопируйте туда заголовки столбцов, по которым будете фильтровать.
- Под заголовками укажите условия. Например:
A1: Город | B1: Сумма
A2: Москва | B2: >10000
A3: Санкт-Петербург
Здесь условие:
Город = "Москва" ИЛИ "Санкт-Петербург"ИСумма > 10000. - Выделите исходную таблицу (включая заголовки), затем перейдите в
Данные → Сортировка и фильтр → Дополнительно. - В поле
Исходный диапазонукажите адрес таблицы (например,$A$1:$D$100). - В поле
Диапазон условийвыберите созданный вами диапазон критериев (например,$A$1:$B$3). - Нажмите
OK.
Пример формулы в критериях:
Если нужно отфильтровать строки, где Дата принадлежит текущему месяцу И Статус равен "Оплачено", создайте критерий:
A1: Дата | B1: Статус
A2: =И(МЕСЯЦ(B2)=МЕСЯЦ(СЕГОДНЯ()); ГОД(B2)=ГОД(СЕГОДНЯ())) | B2: Оплачено
| Тип условия | Пример синтаксиса | Результат |
|---|---|---|
| Равенство | =100 или "Москва" | Точное совпадение |
| Диапазон | >500 и <1000 | Числа от 501 до 999 |
| Текстовый шаблон | ="*ов" | Значения, оканчивающиеся на "ов" (Иванов, Петров) |
| Формула | =И(A2="Да"; B2>100) | Строки, где столбец A="Да" И столбец B>100 |
| Цвет ячейки | =ПОИСКЦВЕТ(A2; $F$2) | Ячейки с цветом, как в $F$2 |
Скопировать заголовки столбцов в диапазон критериев|
Убедиться, что имена столбцов в критериях и таблице совпадают|
Использовать абсолютные ссылки ($A$1) для диапазонов|
Проверить, нет ли пустых строк в исходной таблице|
Сохранить файл перед применением фильтра-->
3. Фильтрация по цвету и значкам (условное форматирование)
Если в вашей таблице используются цветовые метки или значки условного форматирования (например, красный для просроченных задач), их тоже можно включить в фильтрацию. Это полезно для визуального анализа данных.
Как фильтровать по цвету ячейки или шрифта:
- Примените условное форматирование к диапазону (например,
Главная → Условное форматирование → Правила выделения ячеек). - Включите фильтр (
Ctrl+Shift+L). - Щелкните по стрелке фильтра в столбце и выберите
Фильтр по цвету→Цвет заливки(илиЦвет шрифта). - Укажите нужный цвет из палитры.
Фильтрация по значкам:
Если используете Наборы значков (например, стрелочки или флажки):
- Примените значки через
Условное форматирование → Наборы значков. - Включите фильтр и выберите
Фильтр по значкамв меню столбца. - Отметьте нужные значки (например, только зеленые стрелочки вверх).
Ограничения:
- 🚫 Цветовой фильтр работает только для ручного форматирования или условного форматирования. Цвета, добавленные через
Формат по образцу, не распознаются. - 🚫 Если изменить цвет ячейки после применения фильтра, он не обновится автоматически — нужно снять и применить фильтр заново.
4. Использование срезов (Slicers) для интерактивной фильтрации
Срезы (Slicers) — это визуальные кнопки, которые позволяют фильтровать данные в таблицах и сводных таблицах одним кликом. Они особенно удобны для дашбордов и отчетов, где нужно быстро переключаться между фильтрами.
Как добавить срез:
- Преобразуйте ваш диапазон в умную таблицу (
Ctrl+TилиВставка → Таблица). - Выделите любую ячейку таблицы и перейдите во вкладку
Конструктор таблицы(появляется после создания таблицы). - Нажмите
Вставить срези выберите столбцы, по которым хотите фильтровать. - На листе появятся панели срезов. Настройте их размер и расположение.
Преимущества срезов:
- 🎯 Мгновенная фильтрация: изменения применяются без задержки.
- 🔄 Мultiple selection: можно выбрать несколько значений одновременно (удерживая
Ctrl). - 📊 Связь с несколькими таблицами: один срез может управлять фильтрацией в разных таблицах на листе.
Как связать срез с несколькими таблицами:
- Щелкните правой кнопкой по срезу и выберите
Настройка среза. - В разделе
Связи с таблицамиотметьте галочками все таблицы, которые должен фильтровать этот срез.
⚠️ Внимание: Срезы не работают с обычными диапазонами — только с умными таблицами (Ctrl+T) или сводными таблицами. Если кнопкаВставить срезнеактивна, проверьте, преобразована ли ваша таблица.
Как изменить стиль среза?
Чтобы настроить внешний вид среза, щелкните по нему правой кнопкой и выберите Параметры среза. Здесь можно:
- Изменить количество столбцов для кнопок.
- Выбрать другой стиль (например,
Темный 2илиАкцент 6). - Отключить заголовок среза.
5. Функция ФИЛЬТР (FILTER) для динамической фильтрации (Excel 365/2021)
В новых версиях Excel (начиная с Excel 365 и 2021) появилась революционная функция ФИЛЬТР (FILTER), которая позволяет динамически отфильтровывать данные по нескольким условиям без макросов. Результат обновляется автоматически при изменении исходных данных.
Синтаксис:
=ФИЛЬТР(массив; включать; [если_пусто])
где:
массив— диапазон данных для фильтрации.включать— условие (или массив условий) для каждой строки.[если_пусто]— значение, которое будет показано, если нет совпадений (необязательно).
Примеры:
- Простой фильтр:
=ФИЛЬТР(A2:D100; (B2:B100="Москва")*(C2:C100>1000))Здесь отобразятся строки, где
Город = "Москва"ИСумма > 1000. - Фильтр с несколькими условиями по разным столбцам:
=ФИЛЬТР(A2:D100; (B2:B100="Москва") + (B2:B100="СПб"); "Нет данных")Отобразит строки, где
Город = "Москва" ИЛИ "СПб". Если совпадений нет — покажет "Нет данных". - Фильтр по частичному совпадению:
=ФИЛЬТР(A2:D100; ПОИСК("ов"; B2:B100); "")Найдет все строки, где в столбце
Bесть подстрока "ов" (например, "Иванов", "Петров").
Особенности функции ФИЛЬТР:
- 🔹 Работает только в Excel 365, Excel 2021 и Excel для веб.
- 🔹 Возвращает динамический массив — результат автоматически "проливается" на соседние ячейки.
- 🔹 Можно комбинировать с другими функциями, например,
СОРТилиУНИК.
6. Power Query: фильтрация при импорте данных
Если вы работаете с внешними данными (из баз данных, CSV, веб-страниц), инструмент Power Query (Данные → Получить данные) позволяет фильтровать информацию еще на этапе загрузки. Это ускоряет обработку больших файлов и уменьшает размер книги.
Как отфильтровать данные в Power Query:
- Импортируйте данные через
Данные → Получить данные → Из файла/базы данных/других источников. - В открывшемся окне Power Query выделите столбец, по которому нужно фильтровать.
- Щелкните по стрелке в заголовке столбца и выберите нужные условия (аналогично стандартному фильтру в Excel).
- Для сложных фильтров используйте
Главная → Дополнительно → Добавить пользовательский фильтр. - После настройки нажмите
Главная → Закрыть и загрузить.
Пример сложного фильтра в Power Query:
Допустим, нужно оставить только строки, где:
- Дата находится в текущем году.
- Сумма больше средней по столбцу.
- Статус равен "Оплачено" или "В работе".
Для этого:
- Добавьте столбец с текущим годом:
Добавить столбец → Пользовательский столбецс формулой=Date.Year(DateTime.LocalNow()). - Отфильтруйте оригинальный столбец с датой по условию "равно" значению из нового столбца.
- Добавьте фильтр по сумме:
Фильтры по числу → Больше → Ввод среднего значения. - Примените текстовый фильтр к столбцу
Статус.
Преимущества Power Query:
- 📥 Обработка миллионов строк без замедления Excel.
- 🔄 Автоматическое обновление при изменении источника.
- 📊 Сохранение шагов фильтрации для повторного использования.
⚠️ Внимание: После загрузки данных через Power Query они становятся статической таблицей. Чтобы обновить фильтры при изменении источника, нажмите Данные → Обновить все.
FAQ: Частые вопросы о фильтрах в Excel
Можно ли сохранить фильтр, чтобы не настраивать его заново?
Да, есть несколько способов:
- Сохраните файл как шаблон (
.xltx) с уже примененными фильтрами. - Используйте срезы — они запоминают последнее состояние.
- В Power Query все шаги фильтрации сохраняются автоматически.
Почему фильтр не находит ячейки с нужным текстом?
Возможные причины:
- В ячейках есть невидимые символы (пробелы, табуляции). Используйте
=ЧИСТ(ячейка)или=ПЕЧСИМВ(ячейка)для очистки. - Регистр символов имеет значение: "Москва" ≠ "москва". Используйте
=ПРОПИСН(ячейка)для унификации. - Данные хранятся как числа в текстовом формате. Преобразуйте их в число через
Формат ячеек.
Как отменить все фильтры сразу?
Способы сброса фильтров:
- Нажмите
Данные → Фильтр(чтобы убрать галочку). - Используйте сочетание
Alt+D+F+S(в английской версии). - Для срезов: щелкните по иконке
Очистить фильтр(крестик) в правом верхнем углу панели.
Можно ли фильтровать данные по нескольким листам одновременно?
Прямой фильтрации между листами нет, но есть обходные пути:
- Создайте сводную таблицу на основе данных с нескольких листов (
Данные → Консолидация). - Используйте Power Query для объединения листов перед фильтрацией.
- Напишите макрос VBA, который будет применять фильтры ко всем листам.
Как фильтровать данные по дате "за последний месяц"?
Варианты решения:
- Стандартный фильтр: выберите
Фильтры по дате → Настраиваемый фильтри укажите диапазон от=ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(СЕГОДНЯ())-1; 1)до=КОНМЕСЯЦА(СЕГОДНЯ(); -1). - Функция ФИЛЬТР (Excel 365):
=ФИЛЬТР(A2:D100; (B2:B100>=ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ())-1;1))*(B2:B100<=КОНМЕСЯЦА(СЕГОДНЯ();-1))) - Power Query: добавьте пользовательский столбец с формулой
=Date.IsInPreviousNMonths([Дата]; 1)и отфильтруйте поTRUE.