Работа с датами в 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выровнено по левому краю), сначала преобразуйте столбец в формат даты. Для этого выделите столбец →Главная→Формат ячеек→Дата.
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. Условное форматирование для визуальной выборки
Если вам нужно не извлекать данные, а просто выделить строки за определённый месяц, используйте условное форматирование:
- Выделите диапазон данных (например,
A2:B100). - Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите
Использовать формулу для определения форматируемых ячеек. - Введите формулу:
=МЕСЯЦ($A2)=3(для марта). - Задайте цвет заливки (например, зелёный) и нажмите
ОК.
Теперь все строки с датами марта будут подсвечены. Этот метод удобен для быстрого визуального анализа больших таблиц.
=ИЛИ(МЕСЯЦ($A2)=1; МЕСЯЦ($A2)=2; МЕСЯЦ($A2)=3; МЕСЯЦ($A2)=7; МЕСЯЦ($A2)=8; МЕСЯЦ($A2)=9)-->
4. Сводные таблицы: мощный инструмент для анализа по месяцам
Сводные таблицы — самый гибкий способ группировки данных по месяцам, особенно если нужно анализировать большие массивы или строить отчёты. Пошаговая инструкция:
- Выделите исходные данные (включая заголовки).
- Перейдите на вкладку
Вставка→Сводная таблица. - В открывшемся окне укажите, куда поместить таблицу (на новый лист или в текущий).
- В поле
Строкиперетащите столбец с датами. - Щёлкните правой кнопкой по любой дате в сводной таблице →
Группировать→ выберитеМесяцы. - В поле
Значенияперетащите столбец с данными (например, сумму продаж).
Теперь вы можете:
- 📊 Фильтровать данные по годам или кварталам.
- 📈 Строить графики динамики по месяцам (вкладка
Анализ сводной таблицы→Сводная диаграмма). - 🔄 Обновлять данные одним кликом (правая кнопка →
Обновить).
Как сгруппировать даты по кварталам в сводной таблице?
1. Сгруппируйте даты по месяцам (как в инструкции выше).
2. Щёлкните правой кнопкой по любой дате → Группировка → Дополнительные параметры.
3. Установите Начало с: Январь, Завершение: Декабрь, Шаг: 3 месяца.
4. Нажмите ОК — данные сгруппируются по кварталам.
⚠️ Внимание: Если при группировке Excel выдаёт ошибку "Невозможно сгруппировать это поле", проверьте, что в исходных данных нет пустых ячеек или текста вместо дат. Исправьте формат столбца (выделите →Формат ячеек→Дата).
5. Power Query: автоматизация выборки для больших данных
Если вы работаете с большими массивами данных (десятки тысяч строк) или нужно регулярно обновлять выборку, используйте Power Query (вкладка Данные → Получить данные). Этот инструмент позволяет:
- 🔄 Автоматически загружать данные из внешних источников (Excel, CSV, базы данных).
- 📅 Извлекать месяц из даты и создавать новые столбцы.
- 🧹 Очищать данные от ошибок (пустые ячейки, некорректные форматы).
Пример: как извлечь месяц из даты и отфильтровать данные:
- Выделите исходную таблицу →
Данные→Из таблицы/диапазона. - В редакторе Power Query выделите столбец с датами →
Добавить столбец→Даты→Месяц→Название месяца. - Щёлкните на стрелку фильтра в новом столбце и выберите нужный месяц.
- Нажмите
Закрыть и загрузить— данные за выбранный месяц появятся на новом листе.
Преимущество 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
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert→Module). - Запустите макрос (
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")?
Сначала преобразуйте текст в даты:
- Выделите столбец с текстом.
- Перейдите в
Данные→Текст по столбцам. - Выберите
С разделителями→Далее→Далее. - В поле
Формат данных столбцавыберитеДата: ДМГ. - Нажмите
Готово.
Теперь используйте любой метод из статьи (например, фильтр или МЕСЯЦ()).
Можно ли сделать выборку по месяцам в 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).
Как сделать выпадающий список с месяцами для динамической выборки?
Создайте выпадающий список с названиями месяцев:
- В ячейку
D1введите список месяцев (например, в столбцеZ1:Z12). - Выделите ячейку, где будет список (например,
E1). - Перейдите в
Данные→Проверка данных. - Выберите
Списоки укажите диапазон$Z$1:$Z$12.
Теперь в формулах (например, ФИЛЬТР()) ссылайтесь на E1:
=ФИЛЬТР(A2:B100; ТЕКСТ(A2:A100; "ММММ")=E1)