Как сделать выборку в Excel: от простых фильтров до сложных запросов

Почему выборка данных в Excel — навык №1 для аналитика

Вы когда-нибудь тратили часы на ручное копирование строк из огромной таблицы, пытаясь вычленить только актуальные данные? Или мучились с поиском нужных записей в базе из 10 000 строк? Выборка данных в Excel решает эти проблемы за минуты — если знать правильные инструменты.

Эксель предлагает минимум 7 способов сделать выборку: от элементарных фильтров до продвинутых запросов Power Query и VBA-скриптов. Но 80% пользователей до сих пор используют только автофильтр — и теряют массу времени. Эта статья научит вас выбирать оптимальный метод для любой задачи: будь то выборка по одному критерию или сложный многоуровневый анализ с несколькими условиями.

Мы разберём реальные кейсы: как вытащить только клиентов с покупками > 5000₽ за последний квартал, как найти дубликаты в базе сотрудников, или как автоматически собирать данные из разных листов в один отчёт. Спойлер: для 90% задач не нужен VBA — хватит стандартных функций Excel и умения комбинировать их.

1. Базовая выборка: автофильтр и пользовательский фильтр

Начнём с азов — инструментов, которые есть в каждом Excel с 2003 года. Автофильтр (Данные → Фильтр) позволяет отображать только те строки, которые соответствуют заданным критериям. Например, вы можете показать только товары категории"Электроника" или заказы с суммой больше 10 000₽.

Как это работает на практике:

  • 📌 Выделите любую ячейку в таблице → Данные → Фильтр (или нажмите Ctrl+Shift+L)
  • 🔍 Кликните по стрелке в заголовке столбца → выберите значение из списка или настройте Текстовые фильтры/Числовые фильтры
  • 📊 Для сложных условий используйте Пользовательский фильтр (например,"начинается с А" И"заканчивается на ов")
  • 🔄 Чтобы сбросить фильтр: Данные → Фильтр → Очистить

Преимущество метода: мгновенный результат без формул. Недостаток — фильтр действует только на текущий лист и не сохраняет критерии при закрытии файла. Для постоянных выборок лучше использовать другие способы.

⚠️ Внимание: Фильтр скрывает строки, но не удаляет их. Если вы удалите строку в отфильтрованной таблице, она исчезнет навсегда — даже после снятия фильтра. Всегда проверяйте общее количество строк (Ctrl+↓) перед редактированием.
ЗадачаТип фильтраПример условияСочетание клавиш
Показать конкретные значенияСписок"Москва","Санкт-Петербург"Alt+↓ → выбор
Числовой диапазонЧисловой фильтр"больше 1000"Alt+↓ → Ч → Б
Текст с подстановочными знакамиТекстовый фильтр"ов" (все фамилии на -ов)Alt+↓ → Т → С
Дата в интервалеФильтр по дате"квартал 2"Alt+↓ → Д → К
Цвет ячейкиФильтр по цветуВсе ячейки с зелёной заливкойAlt+↓ → Ф → Ц

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

Когда автофильтра недостаточно — например, нужно скопировать отфильтрованные данные в другое место или применить сложные критерии с формулами — на помощь приходит Расширенный фильтр (Данные → Сортировка и фильтр → Расширенный фильтр).

Ключевые возможности:

  • 📋 Копирование результатов на другой лист или в другой файл
  • 🧮 Использование формул в критериях (например, =И(А2="Да"; B2>100))
  • 🔄 Динамические диапазоны с именованнымижонами
  • 📊 Фильтрация по нескольким столбцам одновременно с логикой И/ИЛИ

Пример: нужно выбрать всех клиентов из Москвы или Санкт-Петербурга с покупками > 5000₽. Создаём таблицу критериев:


Город Сумма

Москва >5000

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

Затем в Расширенном фильтре указываем:

  • Исходный диапазон: $A$1:$D$1000 (вся таблица с заголовками)
  • Диапазон условий: $F$1:$G$3 (наша таблица критериев)
  • Поместить результат в диапазон: $I$1 (куда копировать)
  • Поставить галочку Скопировать результат в другое место

Заголовки в таблице критериев должны совпадать с заголовками исходной таблицы|

Диапазон условий не должен пересекаться с исходными данными|

Для логики ИЛИ условия пишутся в разных строках под одним заголовком|

Для логики И условия пишутся в одной строке в разных столбцах-->

⚠️ Внимание: Если в критериях используете формулы (например, =ИЛИ(A2="Москва"; A2="СПб")), не забывайте, что Excel воспринимает их как текст. Чтобы формула заработала, введите её как ='=ИЛИ(A2="Москва"; A2="СПб") (с апострофом и равно в начале).

3. Функции для выборки: ФИЛЬТР, ВЫБРАТЬ и их аналоги

С появлением динамических массивов в Excel 365 и 2021 выборка данных стала ещё проще. Функция ФИЛЬТР позволяет извлекать строки по условию без фильтров и копирования. Синтаксис:

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

Где:

  • массив — диапазон с данными (например, A2:D1000)
  • включить — условие (например, B2:B1000="Да" или C2:C1000>1000)
  • [если_пусто] — что показывать, если нет совпадений (по умолчанию #ЗНАЧ!)

Примеры использования:

=ФИЛЬТР(A2:D1000; (B2:B1000="Москва")*(C2:C1000>5000);"Нет данных")

=ФИЛЬТР(A2:D1000; (ПОИСКПОЗ(G2; A2:A1000; 0))*(B2:B1000=H2);"")

Для старых версий Excel (2019 и ранее) альтернативой служат:

  • 🔹 ИНДЕКС+ПОИСКПОЗ — для выборки по одному критерию
  • 🔹 ДВССЫЛ + именованные диапазоны — для динамических выборок
  • 🔹 СУММЕСЛИМН/СЧЁТЕСЛИМН — для агрегации отфильтрованных данных

Excel 365 (с динамическими массивами)|

Excel 2019 или 2021|

Excel 2016 или старше|

Mac-версия Excel|

Другой табличный редактор (Google Sheets, LibreOffice)-->

Важный нюанс: функции типа ФИЛЬТР возвращают динамический массив, который автоматически расширяется при изменении данных. Если вам нужна статичная выборка — преобразуйте результат в значения (Ctrl+C → Специальная вставка → Значения).

4. Power Query: выборка как в SQL

Для работы с большими данными (100 000+ строк) или сложными преобразованиями идеален инструмент Power Query (Данные → Получение данных → Из таблицы/диапазона). Это как SQL внутри Excel: вы можете:

  • 🗃️ Объединять данные из нескольких таблиц/файлов
  • 🧹 Очищать данные (удалять пустые строки, исправлять ошибки)
  • 🔍 Фильтровать по нескольким условиям с логикой И/ИЛИ
  • 📊 Группировать и агрегировать данные (как GROUP BY в SQL)

Пример: нужно выбрать из базы продаж только транзакции за 2023 год с суммой > 3000₽, сгруппировав их по месяцам. В Power Query это делается в 4 клика:

  1. Загрузите данные в Power Query (Данные → Из таблицы/диапазона)
  2. Отфильтруйте столбец с датой: Год = 2023
  3. Добавьте фильтр по сумме: > 3000
  4. Сгруппируйте по месяцу (Преобразовать → Группировка) с операцией Сумма

Главное преимущество Power Query — воспроизводимость. Однажды настроенный запрос можно обновлять одним кликом (Данные → Обновить все), даже если исходные данные изменились. Это спасает, когда вам ежемесячно присылают новые отчёты в одном формате.

Как автоматизировать обновление Power Query?

Настройте Свойства соединения (правый клик по запросу в панели Запросы и соединения) → установите флажок Обновлять при открытии файла. Теперь данные будут подгружаться автоматически при каждом открытии Excel. Для облачных файлов (OneDrive/SharePoint) можно настроить Обновление по расписанию (например, каждый понедельник в 9:00).

⚠️ Внимание: Power Query чувствителен к формату данных. Если в столбце с датами вдруг окажется текст (например,"31.12.2023 (праздник)"), запрос завершится с ошибкой. Всегда проверяйте типы данных на этапе загрузки (Преобразовать → Detect Data Type).

5. Условное форматирование как инструмент визуальной выборки

Иногда выборка нужна не для извлечения данных, а для их визуального выделения. Здесь поможет Условное форматирование (Главная → Условное форматирование). Например, вы можете:

  • 🟢 Подсветить все ячейки со значением > 1000 зелёным
  • 🟡 Выделить дубликаты в списке клиентов жёлтым
  • 🔴 Пометить просроченные задачи (даты < СЕГОДНЯ) красным

Как настроить:

  1. Выделите диапазон (например, B2:B1000)
  2. Перейдите в Главная → Условное форматирование → Правила выделения ячеек
  3. Выберите условие (например,"Больше чем") и укажите значение
  4. Задайте формат (цвет заливки, шрифта и т.д.)

Для сложных условий используйте Создать правило → Использовать формулу. Примеры формул:

=И($B2="Москва"; $C2>5000) // Город Москва И сумма > 5000

=СЧЁТЕСЛИ($B$2:$B2; $B2)>1 // Поиск дубликатов в столбце B

=ДАТАГОД($D2)=2023 // Все даты 2023 года

Преимущество метода: наглядность — вы сразу видите нужные данные без фильтрации. Недостаток: не подходит для больших таблиц (тормозит при >50 000 строк) и не извлекает данные в отдельный список.

6. VBA-макросы: выборка для продвинутых пользователей

Если вам нужно автоматизировать выборку с дополнительной логикой (например, отправлять результаты по email или сохранять в отдельные файлы), пригодится VBA. Простой макрос для копирования отфильтрованных данных:

Sub CopyFilteredData

Dim wsSource As Worksheet, wsDest As Worksheet

Dim rngSource As Range, rngDest As Range

Dim lastRow As Long

' Настройка листов

Set wsSource = ThisWorkbook.Sheets("Данные")

Set wsDest = ThisWorkbook.Sheets("Результаты")

wsDest.Cells.Clear' Очищаем лист назначения

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

With wsSource

lastRow =.Cells(.Rows.Count,"A").End(xlUp).Row

Set rngSource =.Range("A1:D" & lastRow)

rngSource.AutoFilter Field:=2, Criteria1:="Москва"' Фильтр по столбцу B

rngSource.AutoFilter Field:=3, Criteria1:=">5000"' Фильтр по столбцу C

' Копируем видимые ячейки

.UsedRange.SpecialCells(xlCellTypeVisible).Copy

wsDest.Range("A1").PasteSpecial xlPasteValues

End With

' Убираем фильтр

wsSource.AutoFilterMode = False

Application.CutCopyMode = False

End Sub

Что можно делать с VBA:

  • 📂 Автоматически создавать отдельные файлы для каждого региона/категории
  • ⏰ Запускать выборку по расписанию (с помощью Application.OnTime)
  • 📧 Отправлять результаты на email через Outlook
  • 🔄 Обрабатывать многомерные условия (например,"выбрать топ-10 клиентов по продажам за каждый месяц")
⚠️ Внимание: Макросы блокируются по умолчанию в файлах из интернета. Чтобы разрешить их выполнение, перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра → Включить все макросы (не рекомендуется для недоверенных файлов). Для распределения макросов используйте файлы с расширением .xlsm.

7. Сводные таблицы: выборка с агрегацией

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

  • 📊 Группировать данные по категориям (например, по месяцам/регионам)
  • 🔢 Считать суммы, средние, количество уникальных значений
  • 🎯 Фильтровать данные с помощью нарезанных страниц
  • 📈 Строить динамические графики на основе отфильтрованных данных

Пример: у вас есть база продаж с полями Дата, Регион, Товар, Сумма. Нужно узнать, какие товары принесли больше всего выручки в Москве за 2023 год. Решение:

  1. Создайте сводную таблицу на основе исходных данных
  2. Перетащите Товар в область Строки
  3. Перетащите Сумма в область Значения (операция Сумма)
  4. Добавьте Регион в Фильтры и выберите"Москва"
  5. Добавьте Дата в Фильтры и отфильтруйте по 2023 году
  6. Отсортируйте по убыванию суммы

Секретный приём: если вам нужны исходные данные, лежащие за числами в сводной таблице, дважды кликните по ячейке с интересующим значением. Excel откроет новый лист с детализацией!

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

❓ Как сделать выборку по нескольким критериям одновременно (например, город И сумма И дата)?

Используйте Расширенный фильтр или функцию ФИЛЬТР с перемножением условий:

=ФИЛЬТР(A2:D1000; (B2:B1000="Москва")(C2:C1000>5000)(ГОД(D2:D1000)=2023);"Нет данных")

В Расширенном фильтре условия для логики И пишутся в одной строке в разных столбцах.

❓ Можно ли сделать выборку по частичному совпадению (например, все email с доменом @gmail.com)?

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

  • В автофильтре: выберите Текстовые фильтры → Содержит и введите @gmail.com
  • В формулах: =ФИЛЬТР(A2:A1000; ПОИСК("@gmail.com"; A2:A1000))
  • В Power Query: добавьте шаг фильтра с условием Text.Contains([Email];"@gmail.com")
❓ Как сохранить отфильтрованные данные в новый файл?

Способы:

  1. Расширенный фильтр: скопируйте результаты на новый лист, затем Файл → Сохранить как → выберите формат .xlsx.
  2. Power Query: после фильтрации нажмите Главная → Закрыть и загрузить в → Новая книга.
  3. VBA: используйте код из раздела 6, добавив строку wsDest.Copy перед End Sub.
❓ Почему функция ФИЛЬТР возвращает ошибку #ЗНАЧ!?

Частые причины:

  • Диапазоны в формуле разного размера (например, A2:A1000 и B2:B999)
  • Условие возвращает не массив (например, =ФИЛЬТР(A2:B100; СУММ(B2:B100)>1000) — нужно B2:B100>1000)
  • В массиве есть ошибки (#Н/Д, #ДЕЛ/0!) — оберните условие в ЕОШИБКА
  • Используете Excel 2019 или старше — функция ФИЛЬТР там недоступна
❓ Как сделать выборку по цвету ячейки?

Способы:

  • Фильтр по цвету: Данные → Фильтр → Фильтр по цвету (доступно для ячеек с ручным форматированием).
  • VBA: используйте SpecialCells(xlCellTypeAllFormatConditions) для выборки по условному форматированию.
  • Power Query: цвет не сохраняется при импорте, но можно добавить столбец с формулой =GET.CELL(38; A2) (требует установки надстройки).

Для условного форматирования проще создать отдельный столбец с формулой, проверяющей условие (например, =ЕСЛИ(A2>1000;"Выделено";"")), и фильтровать по нему.