Работа с большими таблицами в Microsoft Excel часто требует гибкой фильтрации данных — но стандартный автофильтр позволяет выбирать только одно значение за раз. Что делать, если нужно отобразить строки с несколькими критериями в одном столбце? Например, выбрать сразу "Москва", "Санкт-Петербург" и "Казань" из списка городов?
В этой статье разберём 5 рабочих методов — от базовых (доступных даже новичкам) до продвинутых (для автоматизации рутинных задач). Вы узнаете, как использовать Расширенный фильтр, Power Query, макросы на VBA, а также скрытые возможности стандартного автофильтра. Каждый способ проиллюстрирован скриншотами и пошаговыми инструкциями, чтобы вы могли применить его к своей таблице уже сегодня.
1. Способ: Использование стандартного автофильтра (для Excel 2016 и новее)
Современные версии Excel (начиная с 2016 года) поддерживают множественный выбор в автофильтре — но эта функция спрятана за неочевидным интерфейсом. Вот как её активировать:
Выделите любую ячейку в таблице и нажмите
Ctrl + Shift + L(или перейдите на вкладкуДанные → Фильтр).Кликните по стрелке фильтра в нужном столбце.
В открывшемся окне снимите галочку с "Выделить всё" — это разблокирует возможность выбора нескольких пунктов.
Отметьте галочками нужные значения (например, "Да", "Частично", "Нет") и нажмите
OK.
⚠️ Внимание: Если в вашем Excel нет чекбоксов для множественного выбора, значит используется устаревшая версия (2013 или ранее) — переходите к следующему способу.
- ✅ Работает в Excel 2016/2019/2021/365 и Excel Online
- ✅ Не требует знания формул или макросов
- ❌ Не доступно в старых версиях (Excel 2013 и ранее)
- ❌ Не позволяет сохранять наборы фильтров для повторного использования
2. Способ: Расширенный фильтр (универсальный метод для всех версий)
Расширенный фильтр — это мощный инструмент, который позволяет задавать сложные критерии, включая выбор нескольких значений в одном столбце. В отличие от автофильтра, он работает даже в Excel 2003.
Алгоритм действий:
Создайте диапазон критериев над или рядом с таблицей. Например, если фильтруете столбец
B("Город"), в ячейкиD1:D3введите:ГородМосква
Санкт-Петербург
Перейдите на вкладку
Данные → Сортировка и фильтр → Расширенный.В поле
Исходный диапазонукажите всю таблицу (например,$A$1:$Z$1000).В поле
Диапазон критериеввыделите созданный список (например,$D$1:$D$3).Отметьте
Фильтровать список на местеи нажмитеOK.
| Преимущества | Недостатки |
|---|---|
| Работает во всех версиях Excel | Требует предварительной подготовки диапазона критериев |
| Можно сохранять наборы критериев для повторного использования | Неудобно для частых изменений фильтров |
| Поддерживает сложные условия (например, "ИЛИ" внутри одного столбца) | Интерфейс менее интуитивен, чем у автофильтра |
Критичный нюанс: Если в диапазоне критериев указать значения в одной строке (например, D1:E1 с "Москва" и "Санкт-Петербург"), Excel воспримет это как условие "И" (показать строки, где город = Москва И Санкт-Петербург одновременно). Для условия "ИЛИ" значения должны располагаться в одном столбце (как в примере выше).
3. Способ: Фильтрация через Power Query (для больших таблиц)
Power Query (или Get & Transform в новых версиях) — это инструмент для работы с большими наборами данных. Он позволяет не только фильтровать, но и трансформировать данные перед выводом.
Пошаговая инструкция:
Выделите таблицу и перейдите на вкладку
Данные → Получение данных → Из таблицы/диапазона.В открывшемся редакторе Power Query выберите столбец, по которому нужно фильтровать.
Кликните по стрелке в заголовке столбца и снимите галочку с "(Выбрать всё)".
Отметьте нужные значения (например, "Да", "Нет") и нажмите
OK.Нажмите
Закрыть и загрузить, чтобы применить фильтр и вернуть данные в Excel.
⚠️ Внимание: После загрузки данные в Power Query становятся статичными. Если исходная таблица изменится, придётся обновлять запрос вручную (клик правой кнопкой по таблице → Обновить).
Создать копию исходных данных|Проверить отсутствие пустых ячеек в заголовках|Убедиться, что столбец имеет корректный формат (текст/число)|Сохранить файл перед началом работы-->
- 📊 Идеален для таблиц с 10 000+ строк
- 🔄 Позволяет сохранять шаги фильтрации для повторного использования
- 🔗 Можно объединять с другими источниками данных (SQL, CSV, веб)
- ⚠️ Требует базовых знаний интерфейса Power Query
4. Способ: Макросы на VBA (для автоматизации)
Если вам часто приходится применять одни и те же фильтры, имеет смысл записать макрос. Это сэкономит время и исключит ошибки при ручном выборе критериев.
Пример кода для фильтрации столбца B по значениям "Москва" и "Казань":
Sub FilterMultipleValues()
Dim ws As Worksheet
Set ws = ActiveSheet
' Очищаем предыдущие фильтры
If ws.AutoFilterMode Then ws.AutoFilterMode = False
' Применяем фильтр
ws.Range("A1:Z1000").AutoFilter Field:=2, Criteria1:=Array("Москва", "Казань"), Operator:=xlFilterValues
End Sub
Как использовать:
Нажмите
Alt + F11, чтобы открыть редактор VBA.Вставьте код в новый модуль (
Insert → Module).Закройте редактор и запустите макрос через
Alt + F8.
⚠️ Внимание: Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов), иначе код не выполнится. Также убедитесь, что в настройках безопасности разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов).
Как отладить макрос, если он не работает?
1. Проверьте, что диапазон ws.Range("A1:Z1000") покрывает вашу таблицу (при необходимости скорректируйте адреса).
2. Убедитесь, что столбец для фильтрации указан правильно: Field:=2 означает второй столбец (B). Для столбца D используйте Field:=4.
3. Если значения содержат пробелы или специальные символы, заключите их в кавычки внутри массива: Criteria1:=Array("Нью Йорк", "Лос-Анджелес").
4. Для отмены фильтра вручную используйте ws.AutoFilterMode = False.
5. Способ: Функция ФИЛЬТР (в Excel 365 и 2021)
В самых новых версиях Excel появилась функция ФИЛЬТР (FILTER), которая позволяет динамически отображать данные по заданным критериям. Главное преимущество — результат обновляется автоматически при изменении исходных данных.
Синтаксис:
=ФИЛЬТР(диапазон; (условие1) + (условие2); "Нет данных")
Пример для фильтрации столбца B по значениям "Да" и "Нет":
=ФИЛЬТР(A2:Z1000; (B2:B1000="Да") + (B2:B1000="Нет"); "Нет совпадений")
- ✅ Динамическое обновление без макросов
- ✅ Можно комбинировать с другими функциями (например,
СОРТ,УНИК) - ❌ Доступно только в Excel 365 и Excel 2021
- ❌ Требует знания синтаксиса формул
Сравнение методов: какой выбрать?
Выбор способа зависит от версии Excel, размера таблицы и частоты использования фильтра. Ниже — сравнительная таблица для быстрого принятия решения:
| Метод | Подходящие версии | Сложность | Автоматизация | Когда использовать |
|---|---|---|---|---|
| Автофильтр (множественный выбор) | 2016+ | ⭐ | ❌ | Для разовых задач в новых версиях |
| Расширенный фильтр | Все версии | ⭐⭐ | ❌ | Для сложных критериев в старых версиях |
| Power Query | 2010+ | ⭐⭐⭐ | ✅ | Для больших таблиц и регулярных отчётов |
| Макросы (VBA) | Все версии | ⭐⭐⭐⭐ | ✅ | Для автоматизации повторяющихся задач |
| Функция ФИЛЬТР | 365/2021 | ⭐⭐ | ✅ | Для динамических отчётов в новых версиях |
Частые ошибки и как их избежать
Даже опытные пользователи Excel сталкиваются с проблемами при фильтрации нескольких значений. Вот наиболее распространённые ошибки и способы их решения:
-
Фильтр не применяется
Причина: В таблице есть пустые строки или ячейки со скрытыми символами (например, пробелами).
Решение: Используйте функциюТРИМ(TRIM) для очистки данных или включите отображение непечатаемых символов (Главная → Абзац → ¶). -
Расширенный фильтр не работает
Причина: Диапазон критериев неверно оформлен (например, забыли указать заголовок столбца).
Решение: Убедитесь, что первая строка диапазона критериев содержит точное название столбца (включая регистр). -
Макрос выдаёт ошибку
Причина: В коде указан неверный номер столбца (Field) или диапазон.
Решение: Проверьте соответствие номера столбца в коде и таблице (например,Field:=3— это столбецC).
⚠️ Внимание: Если после фильтрации часть данных "исчезла", проверьте, не скрыты ли строки вручную (Главная → Формат → Скрыть/отобразить → Отобразить строки). Иногда пользователи путают скрытие строк с фильтрацией.
FAQ: Ответы на популярные вопросы
Можно ли сохранить набор фильтров для повторного использования?
Да, для этого подходят:
- Расширенный фильтр: сохраните диапазон критериев на отдельном листе и ссылайтесь на него при необходимости.
- Power Query: сохраните запрос — он будет доступен в панели
Запросы и подключения. - Макросы: запишите код один раз и запускайте его по нужде.
Почему в моём Excel нет чекбоксов для множественного выбора в автофильтре?
Эта функция появилась только в Excel 2016 и новее. Если у вас более старая версия, используйте расширенный фильтр или обновите программу. Также проверьте, что у вас не установлен режим совместимости с предыдущими версиями (Файл → Сведения → Преобразовать).
Как отфильтровать данные по нескольким столбцам одновременно?
Для этого:
- В автофильтре последовательно примените фильтры к каждому столбцу.
- В расширенном фильтре укажите критерии для нескольких столбцов в одной строке (условие "И") или в разных строках (условие "ИЛИ").
- В Power Query добавьте несколько шагов фильтрации.
Пример диапазона критериев для расширенного фильтра (условие "И"):
Город Статус
Москва Активен
Можно ли применить фильтр к сводной таблице?
Да, но с ограничениями:
- В сводной таблице можно фильтровать по нескольким значениям в настройках срезов (
Анализ → Вставить срез). - Для сложных критериев лучше использовать Power Query как источник данных для сводной таблицы.
Как ускорить фильтрацию больших таблиц (100 000+ строк)?
Рекомендации:
- Преобразуйте диапазон в умную таблицу (
Ctrl + T) — это ускорит обработку. - Используйте Power Query — он оптимизирован для больших объёмов данных.
- Отключите автоматический пересчёт формул (
Формулы → Вычисления → Вручную) на время фильтрации. - Если возможно, разбейте таблицу на несколько листов по категориям.