Как в Excel отфильтровать сразу несколько значений: полное руководство с примерами

Почему стандартный фильтр не всегда удобен?

Вы когда-нибудь пытались найти в таблице сразу несколько категорий товаров, городов или статусов заказов? Стандартный автофильтр в Microsoft Excel позволяет выбрать только одно значение за раз — а если вам нужно отобразить данные по Мск, СПб и Екатеринбургу одновременно? Или выгрузить все заказы со статусами "Оплачен", "В обработке" и "Отгружен"?

В этой статье вы узнаете 5 проверенных способов фильтрации нескольких значений — от простых до продвинутых. Мы разберём:

  • 🔍 Как использовать автофильтр с выбором нескольких элементов (да, это возможно!)
  • 📊 Расширенный фильтр — скрытый инструмент для сложных условий
  • 📝 Фильтрация по формулам (включая ФИЛЬТР() в новых версиях)
  • 🔄 Power Query для динамической фильтрации больших массивов
  • 🤖 Macros/VBA — автоматизация для повторяющихся задач

Каждый метод проиллюстрирован скриншотами (в текстовом формате) и примерами из реальных задач. Выберите подходящий вам уровень сложности и приступайте!

📊 Какой способ фильтрации вы используете чаще всего?
Автофильтр
Расширенный фильтр
Формулы (ФИЛЬТР/ФИЛЬТРД)
Power Query
Не знаю, что это

Способ 1: Автофильтр с выбором нескольких значений (Excel 2013+)

Мало кто знает, но в современных версиях Excel автофильтр умеет выбирать несколько значений без расширенных инструментов. Вот как это работает:

  1. Выделите заголовок столбца, по которому нужно фильтровать (например, "Город").
  2. Нажмите Данные → Фильтр (или Ctrl+Shift+L).
  3. Кликните по стрелке фильтра в заголовке столбца.
  4. Снимите галочку с "(Выделить все)".
  5. Отметьте галочками нужные значения (например, "Москва", "Санкт-Петербург", "Казань").
  6. Нажмите ОК.

Важный нюанс: в Excel 2010 и старше этот метод работает только для текста. Для чисел или дат придётся использовать расширенный фильтр (см. следующий раздел).

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

Проверьте отсутствие скрытых символов (пробелов, переносов)

Преобразуйте данные в таблицу (Ctrl+T) для удобства

Отсортируйте значения для быстрого поиска в списке-->

ГородПродажи, рубСтатус
Москва150 000Оплачен
Санкт-Петербург95 000В обработке
Казань72 000Отгружен
Новосибирск110 000Оплачен
Екатеринбург88 000Отменён

В этом примере автофильтр по столбцу "Город" с выбором "Москва", "Санкт-Петербург" и "Казань" покажет только первые 3 строки.

⚠️ Внимание: Если в вашем Excel при выборе нескольких значений фильтр сбрасывается, проверьте настройки региональных стандартов. В некоторых локализациях разделителем служит ; вместо , что может ломать логику фильтра.

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

Когда нужно отфильтровать данные по нескольким критериям одновременно (например, "Город = Москва ИЛИ Санкт-Петербург" И "Статус = Оплачен"), на помощь приходит расширенный фильтр.

Алгоритм действий:

  1. Создайте диапазон условий над или рядом с вашими данными. Например:

A1: Город | B1: Статус

A2: Москва | B2: Оплачен

A3: OR | B3:

A4: Санкт-Петербург | B4: Оплачен

  1. Выделите исходные данные (включая заголовки).
  2. Перейдите в Данные → Сортировка и фильтр → Расширенный фильтр.
  3. В поле "Исходный диапазон" укажите вашу таблицу (например, $A$6:$C$10).
  4. В поле "Диапазон условий" укажите ячейки с критериями (например, $A$1:$B$4).
  5. Выберите "Фильтровать список на месте" и нажмите ОК.

Критичный момент: оператор "OR" должен занимать отдельную строку под условиями, а не писаться в той же ячейке. В противном случае Excel воспримет это как текст, а не как логический оператор.

Что делать если расширенный фильтр не работает?

Проверьте, чтобы диапазон условий включал заголовки столбцов (они должны совпадать с заголовками исходных данных).

Убедитесь, что в критериях нет опечаток (например, "Санкт-Питербург" вместо "Санкт-Петербург").

Если используете "OR", каждая альтернатива должна быть на отдельной строке.

Для числовых критериев используйте формат ячеек "Общий", а не "Текстовый".

Диапазон условийРезультат фильтрации
Город = Москва
Статус = Оплачен
1 строка (Москва, 150 000, Оплачен)
Город = Москва OR Санкт-Петербург
Статус = Оплачен
2 строки (Москва и СПб с статусом "Оплачен")
Продажи > 100 000
Статус = Отгружен OR В обработке
1 строка (СПб, 95 000, В обработке)
⚠️ Внимание: Расширенный фильтр не работает с объединёнными ячейками в исходных данных. Если у вас есть слияния, сначала разъедините ячейки через Главная → Объединить и центрировать.

Способ 3: Фильтрация по формулам (ФИЛЬТР, ФИЛЬТРД, ИНДЕКС+ПОИСКПОЗ)

Для пользователей Excel 365 и Excel 2021 доступна революционная функция ФИЛЬТР(), которая позволяет отображать несколько значений динамически.

Пример формулы для фильтрации городов "Москва" и "Санкт-Петербург":

=ФИЛЬТР(A2:C10; (A2:A10="Москва")+(A2:A10="Санкт-Петербург"); "Нет данных")

Для более сложных условий используйте комбинацию функций:

=ФИЛЬТР(A2:C10;

((A2:A10="Москва")+(A2:A10="Санкт-Петербург")) *

((C2:C10="Оплачен")+(C2:C10="В обработке"));

"Нет подходящих записей")

Если у вас старая версия Excel, воспользуйтесь альтернативой:

=ИНДЕКС($A$2:$C$10;

ПОИСКПОЗ(1;

(--($A$2:$A$10="Москва"))+

(--($A$2:$A$10="Санкт-Петербург"));

0);

{1;2;3})

Важно: эту формулу нужно вводить как массив (завершите ввод Ctrl+Shift+Enter в Excel 2019 и старше).

Способ 4: Power Query для динамической фильтрации

Power Query (или "Запросы и подключения" в новых версиях) — это инструмент ETL (Extract-Transform-Load), который позволяет фильтровать данные на этапе загрузки. Преимущество: фильтры сохраняются и обновляются автоматически при изменении исходных данных.

Пошаговая инструкция:

  1. Выделите вашу таблицу и нажмите Данные → Из таблицы/диапазонаExcel 2016+).
  2. В открывшемся редакторе Power Query найдите столбец, по которому нужно фильтровать (например, "Город").
  3. Кликните по стрелке в заголовке столбца и снимите галочки со всех значений, кроме нужных (например, оставьте только "Москва" и "Санкт-Петербург").
  4. Нажмите ОК, затем Главная → Закрыть и загрузить.

Теперь ваши данные отфильтрованы, и фильтр будет применён автоматически при обновлении запроса (Данные → Обновить все).

Для сложных условий используйте язык M в редакторе Power Query:

let

Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],

ФильтрГорода = Table.SelectRows(Источник, each ([Город] = "Москва" or [Город] = "Санкт-Петербург"))

in

ФильтрГорода

Способ 5: Автоматизация через VBA (для повторяющихся задач)

Если вам приходится фильтровать одни и те же значения ежедневно, имеет смысл записать макрос. Например, этот код фильтрует столбец A по значениям "Москва" и "Санкт-Петербург":

Sub FilterMultipleValues()

Dim ws As Worksheet

Set ws = ActiveSheet

' Очищаем предыдущие фильтры

If ws.AutoFilterMode Then ws.AutoFilterMode = False

' Применяем фильтр

With ws.Range("A1:C10") ' Укажите ваш диапазон

.AutoFilter Field:=1, Criteria1:="Москва", Operator:=xlFilterValues, Criteria2:="Санкт-Петербург"

End With

End Sub

Чтобы использовать этот макрос:

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

Продвинутый вариант: сохраните список фильтруемых значений в отдельном листе, а макрос пусть считывает их динамически:

Sub DynamicFilter()

Dim filterValues() As String

filterValues = Array("Москва", "Санкт-Петербург", "Казань") ' Или считывайте из ячеек

ActiveSheet.Range("A1:C10").AutoFilter Field:=1, Criteria1:=filterValues, Operator:=xlFilterValues

End Sub

⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm. Если вы сохраните файл как .xlsx, код VBA будет утерян. Также убедитесь, что в настройках безопасности разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью).

Сравнение методов: какой выбрать?

Каждый способ фильтрации нескольких значений имеет свои плюсы и минусы. Вот сравнительная таблица для помощи в выборе:

Метод Сложность Динамичность Подходит для больших данных Требует знаний
Автофильтр (несколько значений) Да Нет (до 10 000 строк) Базовые навыки Excel
Расширенный фильтр ⭐⭐ Нет (статичный) Да (до 1 млн строк) Знание синтаксиса условий
Функция ФИЛЬТР() ⭐⭐⭐ Да Да Excel 365/2021, знание формул
Power Query ⭐⭐⭐ Да Да (миллионы строк) Базовое понимание ETL
VBA/Macros ⭐⭐⭐⭐ Да (при правильной настройке) Да Знание основ VBA

Для разовых задач подойдёт автофильтр или расширенный фильтр. Для ежедневных отчётов лучше освоить Power Query или ФИЛЬТР(). Если вам нужно автоматизировать рутину — изучите VBA.

Частые ошибки и как их избежать

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

  • 🚫 Фильтр не применяется: проверьте, что в диапазоне нет скрытых строк или объединённых ячеек. Также убедитесь, что данные в столбце имеют одинаковый формат (например, не смешиваются текст и числа).
  • 🚫 Расширенный фильтр возвращает пустой результат: чаще всего это происходит из-за несовпадения заголовков в диапазоне условий и исходных данных. Также проверьте регистр (Excel чувствителен к "Москва" vs "москва").
  • 🚫 Формула ФИЛЬТР() выдаёт #ИМЯ?: эта функция доступна только в Excel 365 и Excel 2021. Для старых версий используйте ИНДЕКС+ПОИСКПОЗ.
  • 🚫 Power Query не обновляет данные: убедитесь, что в настройках запроса включено автоматическое обновление (Свойства → Обновить при открытии файла).
  • 🚫 Макрос не работает: проверьте, что в коде правильно указан диапазон (например, Range("A1:C10") вместо Range("A:C"), если данные не во всём столбце). Также убедитесь, что макросы разрешены в настройках безопасности.

Если ни один из методов не сработал, попробуйте преобразовать данные в таблицу (Ctrl+T). Таблицы Excel часто лучше обрабатывают фильтры, особенно при работе с большими массивами.

FAQ: Ответы на популярные вопросы

Можно ли отфильтровать несколько значений в Excel Online?

Да, но с ограничениями. В Excel Online доступен стандартный автофильтр с выбором нескольких значений (как в способе 1), однако расширенный фильтр и Power Query отсутствуют. Функция ФИЛЬТР() работает в Excel Online, если у вас подписка Microsoft 365.

Как отфильтровать данные по нескольким значениям в Google Sheets?

В Google Таблицах алгоритм аналогичен Excel:

  1. Выделите данные и нажмите Данные → Создать фильтр.
  2. В фильтре столбца снимите галочку "(Все)" и отметьте нужные значения.
  3. Для сложных условий используйте функцию =FILTER(A2:C10; REGEXMATCH(A2:A10; "Москва|Санкт-Петербург")).

Также в Google Sheets есть аналог Power Query — инструмент Запросы (Данные → Запросы).

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

Это происходит из-за:

  • 🔹 Скрытых строк: фильтр применяется только к видимым данным. Покажите все строки (Главная → Формат → Скрыть/отобразить → Отобразить строки).
  • 🔹 Ошибок в данных: если в ячейке ошибка (#Н/Д, #ЗНАЧ!), строка может исключаться из фильтра. Используйте =ЕОШИБКА() для проверки.
  • 🔹 Несовпадения форматов: например, число "1000" и текст "1000" считаются разными значениями.
Как сохранить отфильтрованные данные в новый лист?

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

  1. Копирование видимых ячеек:
    1. Примените фильтр.
    2. Выделите видимые строки (Alt+;).
    3. Скопируйте (Ctrl+C) и вставьте на новый лист (Ctrl+V).
  2. Расширенный фильтр: в настройках выберите "Скопировать результат в другое место" и укажите целевой диапазон.
  3. Power Query: после фильтрации нажмите Главная → Закрыть и загрузить в... и выберите "Новый лист".
Можно ли фильтровать по нескольким значениям в сводной таблице?

Да, но с оговорками:

  • 📌 В фильтре страниц сводной таблицы можно выбрать несколько элементов (аналогично автофильтру).
  • 📌 Для фильтрации по нескольким полям используйте нарезки (Вставка → Нарезка). В нарезке можно выбрать несколько значений с зажатой клавишей Ctrl.
  • 📌 В Excel 2013+ доступен временная шкала для фильтрации дат по нескольким периодам.

Если нужна сложная логика (например, "Город = Москва ИЛИ Санкт-Петербург И Статус = Оплачен"), создайте вычисляемое поле в сводной таблице.