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

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

В этой статье мы разберём 5 проверенных способов сделать выборку по месяцам в Excel — от элементарных (подойдут новичкам) до продвинутых (для автоматизации отчётов). Вы узнаете, как использовать стандартные фильтры, формулы типа МЕСЯЦ() и ФИЛЬТР(), сводные таблицы, а также напишете свой первый макрос для динамической выборки. Все методы проиллюстрированы примерами на реальных данных — от простых списков до сложных отчётов с несколькими условиями.

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

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

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

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

2. Нажмите на вкладку ДанныеФильтр (или комбинацию Ctrl+Shift+L).

3. Кликните на стрелку фильтра в заголовке столбца и выберите Фильтры по датеВсе даты в периодеМарт (или другой месяц).

Если нужно выбрать данные за несколько месяцев, используйте опцию Настраиваемый фильтр и укажите диапазон дат (например, с 01.03.2026 по 31.03.2026).

  • Плюсы: быстро, не требует формул, подходит для любых версий Excel.
  • Минусы: фильтр сбрасывается при закрытии файла, нельзя сохранить несколько вариантов выборки.
  • 🔄 Альтернатива: для постоянной работы с месячными данными лучше использовать сводные таблицы (раздел 4).
⚠️ Внимание: Если Excel не распознаёт даты как даты (они отображаются как текст, например, 31.12.2026 выровнено по левому краю), сначала преобразуйте столбец в формат даты. Для этого выделите столбец → ГлавнаяФормат ячеекДата.
📊 Какой способ выборки по месяцам вы используете чаще?
Встроенный фильтр
Формулы (МЕСЯЦ, ФИЛЬТР)
Сводные таблицы
Макросы/VBA
Другой

2. Формулы для выборки: МЕСЯЦ(), ФИЛЬТР(), ДВССЫЛ

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

2.1. Функция МЕСЯЦ() для статической выборки

Допустим, у вас есть столбец с датами (A2:A100) и столбец с данными (B2:B100). Чтобы вывести сумму продаж за март (месяц №3), используйте:

=СУММЕСЛИ(A2:A100; ">=01.03.2026"; B2:B100) - СУММЕСЛИ(A2:A100; ">31.03.2026"; B2:B100)

Или с функцией МЕСЯЦ():

=СУММПРОИЗВ(--(МЕСЯЦ(A2:A100)=3); B2:B100)

2.2. Динамическая выборка с ФИЛЬТР() (Excel 365)

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

=ФИЛЬТР(A2:B100; МЕСЯЦ(A2:A100)=D1; "Нет данных")

Где D1 — ячейка с номером месяца (например, 3 для марта).

2.3. ДВССЫЛ для выборки по названию месяца

Если у вас месяцы записаны как текст (например, "Январь"), используйте ДВССЫЛ:

=СУММЕСЛИ(A2:A100; ДВССЫЛ("""&E1&""""); B2:B100)

Где E1 содержит название месяца на русском.

ФормулаПример использованияПодходит для
МЕСЯЦ()=МЕСЯЦ(A2)=3Статическая проверка месяца
ФИЛЬТР()=ФИЛЬТР(A2:B100; МЕСЯЦ(A2:A100)=D1)Excel 365, динамические массивы
СУММЕСЛИ()=СУММЕСЛИ(A2:A100; ">="&ДАТА(2026;3;1); B2:B100)Суммирование по датам
⚠️ Внимание: Формулы массивов (типа ФИЛЬТР()) могут значительно замедлить работу файла, если данных больше 100 000 строк. В таких случаях лучше использовать сводные таблицы или Power Query.

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

Если вам нужно не извлекать данные, а просто выделить строки за определённый месяц, используйте условное форматирование:

  1. Выделите диапазон данных (например, A2:B100).
  2. Перейдите на вкладку ГлавнаяУсловное форматированиеСоздать правило.
  3. Выберите Использовать формулу для определения форматируемых ячеек.
  4. Введите формулу: =МЕСЯЦ($A2)=3 (для марта).
  5. Задайте цвет заливки (например, зелёный) и нажмите ОК.

Теперь все строки с датами марта будут подсвечены. Этот метод удобен для быстрого визуального анализа больших таблиц.

=ИЛИ(МЕСЯЦ($A2)=1; МЕСЯЦ($A2)=2; МЕСЯЦ($A2)=3; МЕСЯЦ($A2)=7; МЕСЯЦ($A2)=8; МЕСЯЦ($A2)=9)-->

4. Сводные таблицы: мощный инструмент для анализа по месяцам

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

  1. Выделите исходные данные (включая заголовки).
  2. Перейдите на вкладку ВставкаСводная таблица.
  3. В открывшемся окне укажите, куда поместить таблицу (на новый лист или в текущий).
  4. В поле Строки перетащите столбец с датами.
  5. Щёлкните правой кнопкой по любой дате в сводной таблице → Группировать → выберите Месяцы.
  6. В поле Значения перетащите столбец с данными (например, сумму продаж).

Теперь вы можете:

  • 📊 Фильтровать данные по годам или кварталам.
  • 📈 Строить графики динамики по месяцам (вкладка Анализ сводной таблицыСводная диаграмма).
  • 🔄 Обновлять данные одним кликом (правая кнопка → Обновить).
Как сгруппировать даты по кварталам в сводной таблице?

1. Сгруппируйте даты по месяцам (как в инструкции выше).

2. Щёлкните правой кнопкой по любой дате → ГруппировкаДополнительные параметры.

3. Установите Начало с: Январь, Завершение: Декабрь, Шаг: 3 месяца.

4. Нажмите ОК — данные сгруппируются по кварталам.

⚠️ Внимание: Если при группировке Excel выдаёт ошибку "Невозможно сгруппировать это поле", проверьте, что в исходных данных нет пустых ячеек или текста вместо дат. Исправьте формат столбца (выделите → Формат ячеекДата).

5. Power Query: автоматизация выборки для больших данных

Если вы работаете с большими массивами данных (десятки тысяч строк) или нужно регулярно обновлять выборку, используйте Power Query (вкладка ДанныеПолучить данные). Этот инструмент позволяет:

  • 🔄 Автоматически загружать данные из внешних источников (Excel, CSV, базы данных).
  • 📅 Извлекать месяц из даты и создавать новые столбцы.
  • 🧹 Очищать данные от ошибок (пустые ячейки, некорректные форматы).

Пример: как извлечь месяц из даты и отфильтровать данные:

  1. Выделите исходную таблицу → ДанныеИз таблицы/диапазона.
  2. В редакторе Power Query выделите столбец с датами → Добавить столбецДатыМесяцНазвание месяца.
  3. Щёлкните на стрелку фильтра в новом столбце и выберите нужный месяц.
  4. Нажмите Закрыть и загрузить — данные за выбранный месяц появятся на новом листе.

Преимущество Power Query: все шаги сохраняются. При обновлении исходных данных достаточно кликнуть Обновить все на вкладке Данные, и выборка обновится автоматически.

Убедитесь, что столбец с датами имеет формат Дата

Удалите пустые строки в исходной таблице

Проверьте, что нет объединённых ячеек

Сохраните файл перед началом работы-->

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

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

Sub ВыборкаПоМесяцу()

Dim ws As Worksheet

Dim lastRow As Long

Dim i As Long

Dim currentMonth As Integer

Set ws = ActiveSheet

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

currentMonth = Month(Date) ' Текущий месяц

' Очищаем предыдущие данные

ws.Range("D2:E" & lastRow).ClearContents

' Копируем строки за текущий месяц

For i = 2 To lastRow

If Month(ws.Cells(i, 1).Value) = currentMonth Then

ws.Cells(i, 1).Resize(1, 2).Copy ws.Cells(Rows.Count, "D").End(xlUp).Offset(1, 0)

End If

Next i

MsgBox "Выборка за " & MonthName(currentMonth) & " готова!", vbInformation

End Sub

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

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

Чтобы адаптировать макрос под свой файл:

  • 🔹 Измените currentMonth = Month(Date) на currentMonth = 3 (для марта).
  • 🔹 Замените A и D:E на свои столбцы с датами и данными.
⚠️ Внимание: Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов). Если Excel выдаёт ошибку "Макросы отключены", перейдите в ФайлПараметрыЦентр управления безопасностьюПараметры центра управления безопасностьюВключить все макросы (только для доверенных файлов!).

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

МетодСложностьКогда использоватьОграничения
Встроенный фильтрОдноразовая выборка, маленькие таблицыНе сохраняется, ручная настройка
Формулы (МЕСЯЦ, ФИЛЬТР)⭐⭐Динамические отчёты, Excel 365Замедляет работу при больших данных
Условное форматированиеВизуальный анализ, выделение строкНе извлекает данные, только подсветка
Сводные таблицы⭐⭐⭐Анализ больших данных, группировка по периодамТребует обновления при изменении исходных данных
Power Query⭐⭐⭐⭐Автоматизация, работа с внешними источникамиСложно освоить новичкам
Макросы VBA⭐⭐⭐⭐⭐Регулярные отчёты, сложная логикаТребует знания программирования, риски безопасности

Для большинства задач достаточно сводных таблиц или формул. Если данных много (более 50 000 строк), переходите на Power Query. Макросы оправданы только для автоматизации рутинных операций.

FAQ: Частые вопросы по выборке по месяцам

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

Сначала преобразуйте текст в даты:

  1. Выделите столбец с текстом.
  2. Перейдите в ДанныеТекст по столбцам.
  3. Выберите С разделителямиДалееДалее.
  4. В поле Формат данных столбца выберите Дата: ДМГ.
  5. Нажмите Готово.

Теперь используйте любой метод из статьи (например, фильтр или МЕСЯЦ()).

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

Да, в Google Sheets работают аналогичные методы:

  • 🔹 Фильтр: ДанныеСоздать фильтр → выберите месяц в календаре.
  • 🔹 Формулы: =FILTER(A2:B100; MONTH(A2:A100)=3) (для марта).
  • 🔹 Сводные таблицы: группировка по месяцам работает так же, как в Excel.

Отличие: в Google Таблицах нет Power Query, но есть Импортдиапазона для связи между файлами.

Как посчитать количество рабочих дней в месяце?

Используйте функцию ЧИСТРАБДНИ.МЕЖД():

=ЧИСТРАБДНИ.МЕЖД(ДАТА(2026;3;1); ДАТА(2026;3;31))

Где 2026 — год, 3 — месяц (март). Чтобы исключить праздники, добавьте третий аргумент с диапазоном дат праздников.

Почему функция МЕСЯЦ() возвращает ошибку #ЗНАЧ?

Ошибка #ЗНАЧ! в МЕСЯЦ() означает, что Excel не распознаёт ячейку как дату. Проверьте:

  • 🔸 Формат ячейки: выделите её → Формат ячеек → должен быть Дата.
  • 🔸 Нет ли скрытых символов: иногда даты импортируются с пробелами или невидимыми знаками. Используйте =ПЕЧСИМВ(A1), чтобы проверить.
  • 🔸 Ячейка не пустая: МЕСЯЦ() не работает с пустыми ячейками.

Если дата записана как текст (например, "31.12.2026"), преобразуйте её в дату с помощью =ДАТАЗНАЧ(A1).

Как сделать выпадающий список с месяцами для динамической выборки?

Создайте выпадающий список с названиями месяцев:

  1. В ячейку D1 введите список месяцев (например, в столбце Z1:Z12).
  2. Выделите ячейку, где будет список (например, E1).
  3. Перейдите в ДанныеПроверка данных.
  4. Выберите Список и укажите диапазон $Z$1:$Z$12.

Теперь в формулах (например, ФИЛЬТР()) ссылайтесь на E1:

=ФИЛЬТР(A2:B100; ТЕКСТ(A2:A100; "ММММ")=E1)