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

Работа с большими массивами данных в Microsoft Excel часто требует точечного анализа — когда нужно выделить строки, соответствующие сразу двум критериям из разных столбцов. Например, найти все заказы клиента «Иванов» за январь 2026 или вывести товары категории «Электроника» с ценой выше 10 000 ₽. Стандартный фильтр по одному столбцу здесь не поможет — потребуются более гибкие инструменты.

Многие пользователи ошибочно считают, что для такой задачи нужны формулы или макросы. На деле в 90% случаев достаточно встроенных функций Excel без программирования. В этой статье разберём все способы — от базового автофильтра до расширенных техник с ФИЛЬТР() и Power Query. Вы узнаете, как комбинировать условия «И»/«ИЛИ», сохранять результаты на новый лист и автоматизировать процесс.

Перед тем как приступить, проверьте версию вашего Excel:

  • 🔹 Excel 2016–2019: поддерживает автофильтр и расширенный фильтр, но без динамических массивов.
  • 🔹 Excel 365/2021: доступны функции ФИЛЬТР(), УНИК() и Power Query.
  • 🔹 Excel для Mac: некоторые функции (например, ФИЛЬТР()) работают только в последних версиях.
📊 Какой версии Excel вы пользуетесь?
2016 или старше
2019
365/2021
Excel для Mac
Не знаю

1. Базовый способ: автофильтр с условиями «И»

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

Допустим, у вас таблица с продажами, и требуется показать только те строки, где:

  • 📌 Регион = «Москва»
  • 💰 Сумма заказа > 50 000 ₽

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

  1. Выделите любую ячейку в таблице (например, A1).
  2. Перейдите на вкладку Данные → нажмите Фильтр (или используйте горячие клавиши Ctrl+Shift+L).
  3. Откройте выпадающий список в первом столбце (например, «Регион») и выберите нужное значение («Москва»).
  4. Откройте выпадающий список во втором столбце («Сумма заказа») → Числовые фильтрыБольше → введите 50000.

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

⚠️ Внимание: Если после фильтрации вы скопируете видимые строки (например, Ctrl+C), в буфер обмена попадут все данные таблицы, включая скрытые. Чтобы копировать только отфильтрованные строки, используйте Alt+; (выделение видимых ячеек).

2. Расширенный фильтр: гибкие условия и вывод на другой лист

Когда нужно сохранить результаты фильтрации отдельно или применить сложные критерии (например, «ИЛИ»), поможет расширенный фильтр. Этот инструмент позволяет:

  • 📋 Использовать несколько условий для одного столбца (например, «Москва» или «Санкт-Петербург»).
  • 📤 Выводить отфильтрованные данные на другой лист или диапазон.
  • 🔄 Применять формулы в качестве критериев.

Рассмотрим пример. У нас есть таблица с данными о сотрудниках:

ФИООтделЗарплатаДата найма
Иванов П.С.Маркетинг75 00012.05.2020
Петрова А.И.IT120 00003.11.2019
Сидоров К.Л.Маркетинг85 00018.07.2021
Алексеева Т.Н.IT110 00022.01.2020

Задача: вывести на новый лист всех сотрудников отдела «Маркетинг» с зарплатой больше 80 000 ₽.

Шаг 1. Создайте диапазон критериев. Например, в ячейках F1:G2 введите:

F1: Отдел | G1: Зарплата

F2: Маркетинг | G2: >80000

Шаг 2. Перейдите на вкладку ДанныеРасширенный фильтр.

Шаг 3. В окне настроек:

  • 📍 Исходный диапазон: выделите всю таблицу (например, A1:D5).
  • 🎯 Диапазон условий: укажите F1:G2.
  • 📄 Поместить результат в диапазон: выберите ячейку на новом листе (например, A1).
  • ✅ Отметьте Скопировать результат в другое место.

Excel создаст на новом листе таблицу с отфильтрованными данными. Главное преимущество этого метода — результат не зависит от исходной таблицы (её можно изменять без потери фильтра).

Как применить условие "ИЛИ" в расширенном фильтре?

Для условия "ИЛИ" критерии для одного столбца размещают в разных строках. Например, чтобы отфильтровать сотрудников из "Маркетинга" или "IT", диапазон критериев будет:

F1: Отдел

F2: Маркетинг

F3: IT

3. Фильтрация по двум столбцам с формулой ФИЛЬТР() (Excel 365/2021)

В последних версиях Excel появилась революционная функция ФИЛЬТР(), которая позволяет отбирать данные по нескольким критериям без вспомогательных столбцов. Синтаксис:

=ФИЛЬТР(массив; включить; [если_пусто])

Разберём на примере. Допустим, у вас таблица с заказами:

IDКлиентТоварСуммаДата
1001ООО "Ромашка"Ноутбук45 00012.01.2026
1002ИП СидоровМонитор18 00015.01.2026
1003ООО "Ромашка"Клавиатура3 50018.01.2026

Нужно вывести все заказы клиента «ООО "Ромашка"» на сумму более 10 000 ₽.

Формула будет такой:

=ФИЛЬТР(

A2:E4; // Исходная таблица

(B2:B4="ООО ""Ромашка""") * (D2:D4>10000); // Условия

"Нет данных" // Сообщение, если ничего не найдено

)

Обратите внимание:

  • 🔢 Условия перемножаются (*) — это эквивалент логического «И».
  • 📌 Для текста с кавычками внутри используйте двойные кавычки (""Ромашка"").
  • 🔄 Функция возвращает динамический массив — результат обновляется автоматически при изменении исходных данных.
⚠️ Внимание: Функция ФИЛЬТР() доступна только в Excel 365 и Excel 2021. В более ранних версиях используйте комбинацию ИНДЕКС() + ПОИСКПОЗ() или ДВССЫЛ().

4. Фильтрация с помощью условного форматирования

Если вам нужно не скрывать строки, а визуально выделить ячейки, соответствующие двум критериям, используйте условное форматирование. Этот метод полезен для быстрого анализа без изменения структуры данных.

Пример: выделим красным цветом все строки, где:

  • 📅 Дата доставки просрочена (сегодня > даты в ячейке).
  • 🚚 Статус = «В обработке».

Инструкция:

  1. Выделите диапазон таблицы (например, A2:E100).
  2. Перейдите на вкладку ГлавнаяУсловное форматированиеСоздать правило.
  3. Выберите Использовать формулу для определения форматируемых ячеек.
  4. Введите формулу:
    =И($D2

    где $D2 — столбец с датой, $E2 — со статусом.

  5. Нажмите Формат → выберите цвет заливки (например, красный) → ОК.

Теперь все строки, соответствующие обоим условиям, будут подсвечены. Главный плюс метода — данные остаются доступными для других операций (сортировки, фильтрации).

Зафиксированы ли ссылки на столбцы ($D2, $E2)?|Формула возвращает ИСТИНА/ЛОЖЬ?|Выделен весь диапазон таблицы?|Указан правильный стиль форматирования?-->

5. Фильтрация через Power Query (для больших данных)

Если вы работаете с крупными таблицами (тысячи строк) или нужно автоматизировать фильтрацию при обновлении данных, используйте Power Query (вкладка ДанныеИз таблицы/диапазона).

Преимущества метода:

  • ⚡ Обрабатывает миллионы строк без замедления.
  • 🔄 Автоматически обновляет результаты при изменении исходных данных.
  • 📊 Позволяет комбинировать фильтрацию с другими преобразованиями (объединение таблиц, замена значений).

Пример: отфильтруем в таблице с продажами товары категории «Электроника», проданные в 2026 году.

Шаг 1. Преобразуйте исходную таблицу в «умную таблицу» (Ctrl+T).

Шаг 2. Перейдите на вкладку ДанныеИз таблицы/диапазона (откроется редактор Power Query).

Шаг 3. В редакторе:

  1. Выберите столбец «Категория» → нажмите на стрелочку фильтра → снимите все галочки, кроме «Электроника».
  2. Выберите столбец «Дата» → Фильтры даты/времениГод2026.
  3. Нажмите Закрыть и загрузить → выберите Новый лист.

Power Query создаст отдельную таблицу с отфильтрованными данными. Чтобы обновить её при изменении исходников, кликните правой кнопкой по таблице → Обновить.

Как объединить несколько условий в Power Query?

В редакторе Power Query перейдите на вкладку ДомойДополнительноРасширенный редактор. Здесь можно вручную отредактировать код M, добавив несколько фильтров через and. Пример:

Table.SelectRows(#"Предыдущий шаг", each ([Категория] = "Электроника") and Date.Year([Дата]) = 2026)

6. Автоматизация фильтрации с помощью макросов

Если вам приходится регулярно применять одни и те же фильтры, макросы сэкономят время. Например, можно создать кнопку, которая будет фильтровать данные по двум столбцам в один клик.

Рассмотрим макрос для фильтрации таблицы по:

  • 📌 Столбцу B (значение = «Да»).
  • 📅 Столбцу D (дата > текущей).

Код макроса:

Sub FilterByTwoColumns()

Dim ws As Worksheet

Set ws = ActiveSheet

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

If ws.AutoFilterMode Then ws.AutoFilterMode = False

' Применяем фильтр по двум столбцам

With ws.Range("A1").CurrentRegion

.AutoFilter Field:=2, Criteria1:="Да" ' Столбец B

.AutoFilter Field:=4, Criteria1:=">" & Date, Operator:=xlAnd

End With

End Sub

Как использовать:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (InsertModule).
  3. Вернитесь в Excel, на вкладке Разработчик нажмите Макросы → выберите FilterByTwoColumnsВыполнить.

Для удобства можно назначить макрос на кнопку:

  • 🖱️ Перейдите на вкладку РазработчикВставитьКнопка.
  • 📍 Нарисуйте кнопку на листе → присвойте ей макрос FilterByTwoColumns.
⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm (с поддержкой макросов). При открытии такого файла Excel может показать предупреждение о безопасности — разрешите выполнение макросов, если файл из надёжного источника.

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

При фильтрации по двум столбцам пользователи часто сталкиваются с типичными проблемами. Разберём самые распространённые:

ОшибкаПричинаРешение
Фильтр не применяется Данные не в формате таблицы или есть пустые строки/столбцы Преобразуйте диапазон в таблицу (Ctrl+T) или удалите пустые ячейки
Не работает условие «ИЛИ» в расширенном фильтре Критерии для одного столбца записаны в одной строке Разместите условия для «ИЛИ» в разных строках одного столбца
Функция ФИЛЬТР() возвращает #ИМЯ? Неправильный синтаксис или отсутствует функция в вашей версии Excel Проверьте версию Excel (должна быть 365/2021) и синтаксис формулы
Условное форматирование не работает Не зафиксированы ссылки на столбцы ($A1 вместо A1) Используйте абсолютные ссылки на столбцы ($A1)

Ещё одна распространённая проблема — фильтрация по датам. Excel может воспринимать даты как текст, если они введены в нестандартном формате. Перед фильтрацией проверьте формат ячеек:

  1. Выделите столбец с датами.
  2. Нажмите Ctrl+1 (или правая кнопка → Формат ячеек).
  3. Выберите категорию Дата и укажите нужный формат (например, 14.03.2026).

FAQ: Ответы на частые вопросы

Можно ли отфильтровать данные по двум столбцам в Google Таблицах?

Да, в Google Sheets доступны те же методы:

  • 🔹 Автофильтр: работатет аналогично Excel (меню ДанныеСоздать фильтр).
  • 🔹 Функция FILTER(): синтаксис идентичен ФИЛЬТР() в Excel 365.
  • 🔹 Query: мощная функция для сложных запросов, аналогична SQL. Пример:
    =QUERY(A1:E100; "SELECT * WHERE B = 'Да' AND D > date '"&TEXT(TODAY();"yyyy-mm-dd")&"'"; 1)
Как сохранить отфильтрованные данные в новый файл?

Способы:

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

Возможные причины:

  • 🔸 В данных есть скрытые символы (пробелы, переносы строк). Используйте СЖПРОБЕЛЫ() или ПЕЧСИМВ() для очистки.
  • 🔸 Формат ячеек не соответствует критериям (например, числа хранятся как текст). Преобразуйте формат с помощью ЗНАЧЕН().
  • 🔸 В расширенном фильтре неправильно указан диапазон условий. Проверьте, что заголовки столбцов в критериях совпадают с исходной таблицей.
Как отфильтровать данные по двум столбцам с частичным совпадением?

Для поиска по части текста (например, все email с доменом @gmail.com) используйте:

  • 🔹 В автофильтре: выберите Текстовые фильтрыСодержит → введите часть текста.
  • 🔹 В формуле:
    =ФИЛЬТР(A2:B100; (ПОИСК("@gmail.com"; B2:B100)>0) * (C2:C100="Активен"); "Не найдено")
  • 🔹 В расширенном фильтре: в критериях используйте подстановочные знаки (@gmail.com).
Можно ли фильтровать по цвету ячейки?

Да, для этого:

  1. Примените условное форматирование для окраски ячеек.
  2. Используйте фильтр по цвету:
    1. Откройте выпадающий список фильтра в столбце.
    2. Выберите Фильтр по цветуФильтр по цвету ячейки → укажите нужный цвет.

Ограничение: фильтрация по цвету работает только для ручного форматирования или условного форматирования, применённого до включения фильтра.