Как в Excel сделать горизонтальный фильтр: 5 проверенных методов с примерами

Горизонтальная фильтрация в Microsoft Excel — это инструмент, который позволяет отображать только нужные строки данных на основе условий в заголовках столбцов. В отличие от вертикального фильтра (привычного многим автофильтра), горизонтальный работает со строками как с записями, а не со столбцами. Это особенно полезно, когда ваша таблица имеет структуру "свойство-значение" по строкам, а не по столбцам.

Например, если у вас таблица с месяцами по строкам и продуктами по столбцам, горизонтальный фильтр поможет быстро найти все строки, где продажи превысили 1000 единиц для конкретного товара. Или когда нужно отфильтровать данные по нескольким критериям одновременно — скажем, показать только те строки, где одновременно выполняются условия для столбцов Цена > 500 и Наличие = "Есть".

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

  • 🔹 Настроить автофильтр для работы со строками как с записями
  • 🔹 Использовать расширенный фильтр для сложных условий
  • 🔹 Применить функции ФИЛЬТР() и ПОИСКПОЗ() в динамических массивах
  • 🔹 Создать выпадающий список для удобной фильтрации
  • 🔹 Автоматизировать процесс с помощью VBA

Все методы протестированы в Excel 2019–2026 и Microsoft 365. Если вы работаете в более ранних версиях (2016 или 2013), некоторые функции могут быть недоступны — об этом мы предупредим отдельно.

📊 Какой версии Excel вы пользуетесь?
Excel 2013 или старше
Excel 2016–2019
Excel 2021
Microsoft 365 (онлайн/десктоп)
Не знаю

1. Стандартный автофильтр: как заставить его работать горизонтально

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

Рассмотрим пример: у вас есть таблица с продажами по месяцам, где строки — это товары, а столбцы — месяцы. Чтобы отфильтровать строки (товары) по условию, например, показать только те, где продажи в январе превысили 200 единиц:

  1. Выделите диапазон данных вместе с заголовками.
  2. Перейдите на вкладку ДанныеФильтр (или нажмите Ctrl+Shift+L).
  3. Теперь в выпадающем списке столбца Январь выберите Числовые фильтрыБольше чем... и укажите значение 200.

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

2. Расширенный фильтр для горизонтальной фильтрации

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

  • 📌 Отфильтровать данные по нескольким столбцам сразу (например, Цена > 1000 И Наличие = "Да")
  • 📌 Скопировать отфильтрованные результаты в другое место листа
  • 📌 Работать с нестандартными диапазонами (например, когда заголовки не в первой строке)

Пример настройки:

  1. Создайте таблицу с данными и диапазон критериев (обязательно с точно такими же заголовками, как в исходной таблице).
  2. Перейдите на вкладку ДанныеРасширенный фильтр.
  3. В поле Исходный диапазон укажите вашу таблицу (включая заголовки).
  4. В поле Диапазон условий выберите ячейки с критериями.
  5. Отметьте Скопировать результат в другое место, если нужно вывести данные на другой лист.
Исходная таблица Диапазон критериев Результат
Товар | Янв | Фев | Март

Товар1 | 150 | 200 | 180

Товар2 | 300 | 250 | 400

Янв | Фев

>200 | >200

Только Товар2
Сотрудник | Оклад | Премия

Иванов | 50000 | 10000

Петров | 60000 | 5000

Оклад | Премия

>55000 | >8000

Нет результатов

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

Скопируйте заголовки столбцов в отдельную область|Укажите критерии под заголовками (точные совпадения или условия)|Проверьте, что в критериях нет пустых строк|Выделите исходный диапазон вместе с заголовками-->

3. Функция ФИЛЬТР() для динамической горизонтальной фильтрации

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

Синтаксис функции:

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

Пример: отфильтруем строки, где значение в столбце B (например, "Цена") больше 1000, а в столбце C ("Наличие") равно "Да":

=ФИЛЬТР(A2:C10; (B2:B10>1000)*(C2:C10="Да"); "Нет данных")

Особенности работы:

  • 🔢 массив — диапазон данных, который нужно отфильтровать (включая заголовки, если они нужны в результате).
  • 🔢 включать — условие фильтрации. Для нескольких условий используйте оператор * (логическое И) или + (логическое ИЛИ).
  • 🔢 [если_пусто] — значение, которое будет показано, если нет совпадений.

Функция ФИЛЬТР() автоматически обновляет результаты при изменении исходных данных — это её главное преимущество перед расширенным фильтром.

Как работает умножение условий?

В формуле (B2:B10>1000)*(C2:C10="Да") умножение преобразует логические значения ИСТИНА/ЛОЖЬ в 1/0. Таким образом, только строки, где оба условия выполняются (то есть произведение равно 1), попадают в результат.

4. Создание выпадающего списка для удобной фильтрации

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

Инструкция по настройке:

  1. Создайте отдельную область для критериев фильтрации (например, в ячейках E1:E3).
  2. В ячейке E1 укажите заголовок столбца, по которому будет фильтрация (например, "Категория").
  3. В ячейке E2 создайте выпадающий список: перейдите на вкладку ДанныеПроверка данныхСписок.
  4. В поле Источник укажите диапазон с уникальными значениями из вашего столбца (например, =УНИК(Б2:Б100) для динамического списка).
  5. Используйте функцию ФИЛЬТР() или расширенный фильтр, ссылаясь на ячейку E2 как на критерий.

Пример формулы с выпадающим списком:

=ФИЛЬТР(A2:C10; B2:B10=E2; "Нет данных")

⚠️ Внимание: Если в вашем столбце есть пустые ячейки или ошибки, функция УНИК() может их включить в список. Чтобы избежать этого, используйте конструкцию:

=ФИЛЬТР(УНИК(ЕСЛИОШИБКА(B2:B100;"")); УНИК(ЕСЛИОШИБКА(B2:B100;""))<>"")

5. Автоматизация с помощью VBA: макрос для горизонтального фильтра

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

  • 🤖 Применять фильтр по нескольким критериям одновременно
  • 🤖 Сохранять отфильтрованные данные в новый лист
  • 🤖 Работать с нестандартными диапазонами (например, когда заголовки не в первой строке)

Пример макроса для фильтрации строк по условию в столбце B (значение больше 100):

Sub HorizontalFilter()

Dim rng As Range

Dim criteriaRange As Range

Dim outputRange As Range

' Указываем исходный диапазон (с заголовками)

Set rng = Range("A1:C100")

' Создаём диапазон критериев (например, столбец B > 100)

Set criteriaRange = Range("E1:E2")

criteriaRange.Cells(1, 1).Value = "Столбец B" ' Заголовок

criteriaRange.Cells(2, 1).Value = ">100" ' Условие

' Указываем, куда выводить результат (например, начиная с A102)

Set outputRange = Range("A102")

' Применяем расширенный фильтр

rng.AdvancedFilter Action:=xlFilterCopy, _

CriteriaRange:=criteriaRange, _

CopyToRange:=outputRange, _

Unique:=False

End Sub

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

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

⚠️ Внимание: Перед запуском макроса убедитесь, что:

  • Исходный диапазон включает заголовки.
  • Диапазон критериев (E1:E2 в примере) не пересекается с исходными данными.
  • В настройках Excel разрешено выполнение макросов (вкладка ФайлПараметрыЦентр управления безопасностью).

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

Каждый из описанных методов имеет свои плюсы и минусы. Выбор зависит от ваших задач, версии Excel и уровня владения программой. Ниже — сравнительная таблица:

Метод Подходит для версий Динамическое обновление Сложность настройки Когда использовать
Стандартный автофильтр Все версии Да Низкая Простые условия, строки как записи
Расширенный фильтр Все версии Нет (требует повторного запуска) Средняя Сложные условия, копирование результатов
Функция ФИЛЬТР() Excel 365, 2021 Да Средняя Динамические данные, сложные условия
Выпадающий список + ФИЛЬТР() Excel 365, 2021 Да Высокая Регулярная фильтрация по фиксированным критериям
VBA-макрос Все версии Да (привязка к событию) Высокая Автоматизация, большие объёмы данных

Для большинства пользователей оптимальным решением будет комбинация расширенного фильтра (для статичных данных) и функции ФИЛЬТР() (для динамических). Если вы работаете в Excel 2016 или старше, придётся ограничиться расширенным фильтром или VBA.

FAQ: Частые вопросы по горизонтальному фильтру в Excel

Можно ли сделать горизонтальный фильтр в Excel Online?

В Excel Online доступны стандартный автофильтр и функция ФИЛЬТР(), но расширенный фильтр отсутствует. Если вам нужна сложная фильтрация, используйте десктопную версию или Excel для Windows/Mac.

Почему функция ФИЛЬТР() возвращает ошибку #ИМЯ?

Ошибка #ИМЯ? означает, что функция не распознаётся. Это происходит в версиях Excel старше 2021 или если у вас отключены динамические массивы. Проверьте:

  1. Версию Excel (ФайлУчётная записьОб Excel).
  2. Настройки формул: ФайлПараметрыФормулыРасчёты с использованием динамических массивов.
Как отменить горизонтальный фильтр?

Способ зависит от метода фильтрации:

  • Для стандартного автофильтра: нажмите ДанныеФильтр (или Ctrl+Shift+L).
  • Для расширенного фильтра: удалите диапазон критериев или нажмите Очистить в настройках фильтра.
  • Для функции ФИЛЬТР(): удалите формулу или измените условие на 1=1 (показать все строки).
Можно ли фильтровать строки по цвету ячейки?

Да, но не напрямую. Варианты:

  1. Используйте условное форматирование + расширенный фильтр по вспомогательному столбцу с формулой, проверяющей цвет (требуется VBA).
  2. В Excel 365 комбинируйте ФИЛЬТР() с функцией ПОЛУЧИТЬ.ЯЧЕЙКУ() (только для цветов, заданных условным форматированием).

Пример формулы для проверки красного фона (цветовой индекс 3):

=ФИЛЬТР(A2:C10; ПОЛУЧИТЬ.ЯЧЕЙКУ(38; B2:B10)=3; "Нет данных")
Как сохранить отфильтрованные данные в новый файл?

Самый надёжный способ:

  1. Примените фильтр (любым из описанных методов).
  2. Скопируйте видимые ячейки (Alt+;Ctrl+C).
  3. Создайте новый файл (Ctrl+N) и вставьте данные (Ctrl+V).
  4. Сохраните файл (F12).

Для автоматизации используйте VBA-макрос с методом Workbooks.Add и копированием отфильтрованного диапазона.