Как в Excel отфильтровать данные по нескольким столбцам: 5 работающих способов

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

Вы когда-нибудь пытались найти в Excel строки, где одновременно выполняются условия из разных столбцов? Например, выбрать всех сотрудников отдела маркетинга (Столбец B = "Маркетинг") с окладом выше 70 000 (Столбец D > 70000), которые работают в московском офисе (Столбец F = "Москва")? Стандартный фильтр через выпадающий список здесь бессилен — он позволяет задавать критерии только для одного столбца за раз.

Проблема усугубляется, когда таблица содержит тысячи строк, а условия фильтрации динамически меняются. В таких случаях пользователи тратят часы на ручную сортировку или создают промежуточные таблицы. Между тем, в Excel есть как минимум 5 способов решить эту задачу — от простых комбинаций стандартных фильтров до мощного инструмента расширенного фильтра и формул массива. Далее разберём каждый метод с практическими примерами и нюансами применения.

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

Метод 1: Последовательное применение стандартного фильтра

Самый очевидный, но часто игнорируемый способ — поочерёдное наложение фильтров на разные столбцы. Он работает, когда условия независимы друг от друга (например, "отдел = Маркетинг" И "город = Москва"). Алгоритм прост:

  1. Выделите заголовки таблицы (строку 1).
  2. Перейдите на вкладку Данные → Фильтр (или нажмите Ctrl+Shift+L).
  3. Откройте выпадающий список в первом столбце (например, Отдел) и выберите нужное значение.
  4. Повторите шаг 3 для остальных столбцов (например, Город, Оклад).

Excel автоматически применит логическое И между всеми фильтрами — то есть покажет только строки, соответствующие всем заданным критериям одновременно.

Выделены заголовки столбцов (строка 1)

В таблице нет объединённых ячеек

Данные в столбцах однотипные (текст/числа/даты)

Нет скрытых строк или столбцов-->

⚠️ Внимание: Если после применения фильтра вы видите пустую таблицу, проверьте:
  • 🔹 Нет ли в данных непечатаемых символов (пробелов, переносов строк). Используйте функцию =ЧИСТ() для очистки.
  • 🔹 Совпадают ли регистры в фильтре и данных (например, "Москва" vs "москва").
  • 🔹 Не установлен ли в другом столбце фильтр, который конфликтует с текущим (например, "Оклад > 100000" при средней зарплате 50 000).
Преимущества метода Ограничения метода
✅ Не требует знания формул ❌ Не работает с динамическими диапазонами
✅ Быстро применяется (2-3 клика) ❌ Нельзя сохранить критерии для повторного использования
✅ Визуально понятен начинающим ❌ Сложно фильтровать по частичному совпадению (например, "начинается с...")

Метод 2: Расширенный фильтр — инструмент для профессионалов

Когда стандартного фильтра недостаточно, на помощь приходит расширенный фильтр (Данные → Сортировка и фильтр → Дополнительно). Он позволяет:

  • 📌 Фильтровать данные по нескольким критериям одновременно (логическое И или ИЛИ).
  • 📌 Использовать динамические диапазоны (например, =СУММ() > 1000).
  • 📌 Копировать отфильтрованные данные в новое место (независимо от исходной таблицы).

Рассмотрим пример: отберём заказы клиентов из Москвы или Санкт-Петербурга (ИЛИ) с суммой заказа > 50 000 (И). Для этого:

  1. Создайте диапазон критериев (например, на листе Критерии):
    
    

    Город Сумма

    Москва

    Санкт-Петербург >50000

    Обратите внимание: пустая ячейка под "Москва" означает ИЛИ, а условие в одной строке — И.

  2. Выделите исходную таблицу (включая заголовки).
  3. Перейдите в Данные → Сортировка и фильтр → Дополнительно.
  4. Укажите:
    • 📍 Исходный диапазон — ваша таблица с данными.
    • 📍 Диапазон условий — созданный вами диапазон критериев.
    • 📍 Поставьте галочку Скопировать результат в другое место и укажите ячейку для вывода.
Как работает логика И/ИЛИ в расширенном фильтре?

В расширенном фильтре:

- И (AND) — условия записываются в одной строке (например, "Город=Москва" и "Сумма>50000" в одной строке).

- ИЛИ (OR) — условия записываются в разных строках (например, "Город=Москва" в строке 1, "Город=СПб" в строке 2).

- И + ИЛИ — комбинируются пустыми ячейками (см. пример выше).

Критическая особенность: Если вы изменяете данные в диапазоне критериев, фильтр не обновляется автоматически. Вам нужно повторно запустить расширенный фильтр или использовать Таблицы Excel (см. метод 4).

Метод 3: Функции ФИЛЬТР и ФИЛЬТРМН (Excel 365 и 2021)

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

Синтаксис функции ФИЛЬТР:

=ФИЛЬТР(массив; включать; [если_пусто])
массив
Диапазон данных, который нужно отфильтровать (включая заголовки).
включать
Условие фильтрации (может быть диапазоном, массивом или логическим выражением).
[если_пусто]
Значение, которое будет показано, если нет совпадений (необязательно).

Пример: отфильтруем сотрудников отдела "Продажи" (Столбец B) с окладом > 60 000 (Столбец D):

=ФИЛЬТР(A2:E100; (B2:B100="Продажи")*(D2:D100>60000); "Нет данных")

Для более сложных условий используйте ФИЛЬТРМН (аналог ФИЛЬТР, но с поддержкой нескольких критериев):

=ФИЛЬТРМН(

A2:E100; // Диапазон данных

(B2:B100="Продажи")+(B2:B100="Маркетинг"); // Критерий 1 (ИЛИ)

D2:D100>60000; // Критерий 2 (И)

"Совпадений не найдено"

)

⚠️ Внимание: Функции ФИЛЬТР и ФИЛЬТРМН работают только в Excel 365 и Excel 2021. В более ранних версиях (2019, 2016) они вернут ошибку #ИМЯ?. Альтернатива — использование ИНДЕКС+ПОИСКПОЗ (см. метод 5).

Метод 4: Фильтрация через сводные таблицы (для анализа данных)

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

  • 📊 Группировать данные по нескольким полям (например, "Город + Отдел").
  • 📈 Применять многомерные фильтры (срезы, временные шкалы).
  • 🔄 Динамически обновляться при изменении исходных данных.

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

  1. Выделите исходную таблицу (включая заголовки).
  2. Перейдите на вкладку Вставка → Сводная таблица.
  3. В открывшемся окне выберите Новый лист и нажмите ОК.
  4. В панели Поля сводной таблицы перетащите:
    • 🔹 Поля для группировки (например, Город, Отдел) в область Строки.
    • 🔹 Поле для фильтрации (например, Дата) в область Фильтры.
    • 🔹 Поле для анализа (например, Сумма продаж) в область Значения.
  • Настройте фильтры в сводной таблице (например, выберите диапазон дат или конкретный город).
  • Преимущество сводных таблиц — возможность сохранять несколько вариантов фильтрации на одном листе. Например, вы можете создать отдельные сводные таблицы для анализа продаж по регионам, отделам или временным периодам, не дублируя исходные данные.

    Метод 5: Формулы ИНДЕКС+ПОИСКПОЗ для старых версий Excel

    Если вы работаете в Excel 2010–2019 и не можете использовать ФИЛЬТР, альтернативой станет комбинация функций ИНДЕКС и ПОИСКПОЗ с критериями. Этот метод требует больше усилий, но даёт гибкость и работает в любых версиях.

    Пример: отберём строки, где Отдел = "Маркетинг" И Оклад > 70000. Формула для извлечения данных из столбца A (порядковый номер строки):

    =ЕСЛИОШИБКА(
    

    ИНДЕКС($A$2:$A$100;

    ПОИСКПОЗ(

    1;

    --(($B$2:$B$100="Маркетинг")*($D$2:$D$100>70000));

    0

    ) + СТРОКА(A1) - 1

    );

    ""

    )

    Разберём формулу по частям:

    1. ($B$2:$B$100="Маркетинг")*($D$2:$D$100>70000) — создаёт массив из 1 (истина) и 0 (ложь) для каждой строки.
    2. ПОИСКПОЗ(1; ...; 0) — находит позицию первого совпадения.
    3. СТРОКА(A1)-1 — смещает результат для извлечения следующих строк (протяните формулу вниз).
    4. Чтобы извлечь данные из других столбцов (например, B, C), замените $A$2:$A$100 на нужный диапазон и протяните формулу вправо.

      ⚠️ Внимание: Этот метод имеет ограничение: он извлекает только первые 10 совпадений (из-за особенностей работы ПОИСКПОЗ с массивами). Для больших таблиц используйте ДВССЫЛ или VBA.

      Сравнение методов: какой выбрать для вашей задачи

      Метод Сложность Динамичность Подходит для больших данных Версии Excel
      Стандартный фильтр ❌ (ручное обновление) ❌ (до 10 000 строк) 2010–2023
      Расширенный фильтр ⭐⭐ ❌ (ручное обновление) ✅ (до 1 млн строк) 2010–2023
      Функции ФИЛЬТР/ФИЛЬТРМН ⭐⭐⭐ ✅ (автообновление) ✅ (любой размер) 365, 2021
      Сводные таблицы ⭐⭐ ✅ (автообновление) ✅ (оптимизировано) 2010–2023
      ИНДЕКС+ПОИСКПОЗ ⭐⭐⭐⭐ ✅ (автообновление) ❌ (ограничено) 2010–2023

      Выбор метода зависит от:

      • 📌 Версии Excel: для 2010–2019 подойдёт расширенный фильтр или ИНДЕКС+ПОИСКПОЗ; для 365/2021ФИЛЬТР.
      • 📌 Объёма данных: для таблиц > 50 000 строк избегайте стандартного фильтра.
      • 📌 Частоты обновлений: если данные меняются часто, используйте динамические методы (ФИЛЬТР, сводные таблицы).
      • 📌 Необходимости анализа: для отчётов и дашбордов сводные таблицы вне конкуренции.

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

    Даже опытные пользователи Excel сталкиваются с проблемами при фильтрации по нескольким столбцам. Вот самые распространённые ошибки и способы их решения:

    1. Фильтр не находит данные, которые есть в таблице

      Причина: скрытые символы (пробелы, табуляции, неразрывные пробелы) или разные регистры.

      Решение: используйте функцию =СЖПРОБЕЛЫ(ПОДСТАВИТЬ(A2;СИМВОЛ(160);" ")) для очистки данных.

    2. Расширенный фильтр возвращает пустой результат

      Причина: неверно указан диапазон критериев (например, пропущены заголовки или лишние столбцы).

      Решение: проверьте, чтобы структура диапазона критериев точно повторяла заголовки исходной таблицы.

    3. Функция ФИЛЬТР выдаёт #ЗНАЧ!

      Причина: несовпадение размеров массивов в аргументах.

      Решение: убедитесь, что диапазоны в массив и включать имеют одинаковое количество строк.

    4. Сводная таблица не обновляется

      Причина: исходные данные не включены в диапазон или кэш не обновлён.

      Решение: нажмите на сводную таблицу → Анализ → Изменить данные → Обновить.

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

    Можно ли фильтровать по цвету ячейки или шрифта?

    Да, но только через стандартный фильтр:

    1. Примените фильтр к таблице (Ctrl+Shift+L).
    2. Откройте выпадающий список в столбце с цветовым форматированием.
    3. Выберите Фильтр по цвету → [нужный цвет].

    Ограничение: этот метод не работает с ФИЛЬТР или расширенным фильтром.

    Как фильтровать данные по частичному совпадению (например, "начинается с...")?

    Используйте подстановочные знаки:

    • 🔹 * — любое количество символов (например, *ов найдёт "Иванов", "Петров").
    • 🔹 ? — один символ (например, Иван? найдёт "Иванов", но не "Ивановский").

    В расширенном фильтре или формулах используйте функции ЛЕВСИМВ, ПРАВСИМВ, ПОИСК:

    =ФИЛЬТР(A2:B100; ЛЕВСИМВ(A2:A100; 3)="Ива"; "Нет данных")
      
    Почему после фильтрации пропали номера строк?

    Это нормальное поведение Excel: при фильтрации скрываются строки, а не их содержимое. Номера строк остаются, но становятся невидимыми. Чтобы вернуть исходный вид:

    • 🔹 Нажмите Данные → Фильтр (снимите фильтр).
    • 🔹 Или нажмите значок фильтра в заголовке столбца и выберите (Выделить всё).

    Если нужно сохранить номера строк в отфильтрованных данных, добавьте вспомогательный столбец с формулой =СТРОКА(A1).

    Как фильтровать данные по дате (например, за последний месяц)?

    Используйте динамические критерии:

    1. В расширенном фильтре укажите условие:
      =И(Дата>=ДАТА(2026;5;1); Дата<=СЕГОДНЯ())
            
    2. В функции ФИЛЬТР:
      =ФИЛЬТР(A2:D100; (C2:C100>=ДАТА(2026;5;1))*(C2:C100<=СЕГОДНЯ()); "Нет данных")
            

    Для относительных дат (например, "последние 30 дней") используйте:

    =ФИЛЬТР(A2:D100; C2:C100>=СЕГОДНЯ()-30; "Нет данных")
        

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

    Да, несколькими способами:

    1. Сводные таблицы: сохраняют фильтры при сохранении файла.
    2. Диапазоны критериев: создайте отдельный лист с критериями для расширенного фильтра и сохраните его как шаблон.
    3. Таблицы Excel: преобразуйте диапазон в таблицу (Ctrl+T), и фильтры будут сохраняться вместе с данными.
    4. VBA: запишите макрос с настройками фильтра (Вид → Макросы → Записать макрос).