Как отфильтровать данные по месяцам в Excel: от простого к сложному

Почему фильтрация по месяцам — ключевой навык в Excel

Работа с временными данными в Microsoft Excel — одна из самых востребованных задач. Будь то финансовые отчёты, продажи, логистика или персональные записи, умение быстро выделять информацию за конкретный месяц экономит часы ручной обработки. По данным исследования Spiceworks, 89% офисных сотрудников еженедельно сталкиваются с необходимостью анализировать данные по временным периодам, и в 63% случаев речь идёт именно о месячной разбивке.

Проблема в том, что Excel хранит даты в числовом формате (количество дней с 1 января 1900 года), а пользователи привыкли оперировать привычными названиями месяцев. Эта разница часто становится источником ошибок: неправильно применённый фильтр может исключить нужные данные или, наоборот, включить лишние. Например, если в ячейке записано 15.03.2026, а вы фильтруете по текстовому значению "март", Excel не распознает связь между ними без дополнительных действий.

В этой статье мы разберём 5 методов фильтрации по месяцам — от базовых до продвинутых, — которые покрывают 95% практических задач. Вы узнаете, как работать с автофильтром, сводными таблицами, формулами и даже автоматизировать процесс с помощью макросов. Особое внимание уделим скрытым ловушкам формата дат, которые порождают majority ошибок у новичков.

Метод 1: Автофильтр — быстрый способ для новичков

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

  1. Выделите заголовок столбца с датами (например, A1).
  2. Перейдите на вкладку ДанныеФильтр (или нажмите Ctrl+Shift+L).
  3. Нажмите на стрелку фильтра в заголовке столбца и выберите Фильтры по датеВыбрать месяц.

Здесь вас поджидает первая ловушка: если даты в столбце хранятся как текст (например, "март 2026" вместо 01.03.2026), опция Фильтры по дате будет неактивна. Чтобы это исправить, преобразуйте текст в даты с помощью функции =ДАТАЗНАЧ() или инструмента Текст по столбцам на вкладке Данные.

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

⚠️ Внимание: Автофильтр не различает годы! Если в ваших данных есть даты за март 2023 и март 2026, фильтр по месяцу "март" покажет обе группы. Для точной фильтрации используйте методы из следующих разделов.

Метод 2: Фильтрация по месяцам с помощью сводных таблиц

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

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

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

Профессиональный приём: если вам нужны данные только за конкретный месяц, после группировки нажмите на стрелку фильтра рядом с названием месяца и выберите Выделить только этот элемент. Чтобы вернуть все месяцы, нажмите Очистить фильтр.

Проблема Причина Решение
Нет опции "Группировать" Данные хранятся как текст Преобразуйте в формат даты с помощью =ДАТАЗНАЧ()
Месяцы отображаются в алфавитном порядке Группировка не применена Щёлкните правой кнопкой → ГруппироватьМесяцы
Пустые строки в сводной таблице В исходных данных есть пустые ячейки Отфильтруйте исходную таблицу или замените пустые ячейки на 0

Ежедневно|Несколько раз в неделю|Редко, только для сложных отчётов|Никогда не пробовал-->

Метод 3: Формулы для динамической фильтрации

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

  • 📅 =МЕСЯЦ() — возвращает номер месяца (1–12) для указанной даты. Пример: =МЕСЯЦ(A2) вернёт 3 для даты 15.03.2026.
  • 📊 =ЕМЕСЯЦ() — проверяет, принадлежит ли дата указанному месяцу. Пример: =ЕМЕСЯЦ(A2;3) вернёт ИСТИНА, если в ячейке A2 март.
  • 🔄 =ФИЛЬТР() (в Excel 365) — динамически фильтрует диапазон по условию. Пример: =ФИЛЬТР(A2:B100; МЕСЯЦ(A2:A100)=3).

Практический пример: предположим, у вас в столбце A даты, а в столбце B — суммы продаж. Чтобы вывести все продажи за март 2026 года на другой лист, используйте:

=ФИЛЬТР(A2:B100; (МЕСЯЦ(A2:A100)=3) * (ГОД(A2:A100)=2026))
⚠️ Внимание: Формула =ФИЛЬТР() доступна только в Excel 365 и Excel 2021. Для более старых версий используйте комбинацию =ЕСЛИОШИБКА(ИНДЕКС();ПУСТО()) с вспомогательным столбцом.
Как фильтровать без функции ФИЛЬТР в старых версиях Excel?

1. Добавьте вспомогательный столбец с формулой =ЕМЕСЯЦ(A2;3) (для марта).

2. Скопируйте заголовки исходной таблицы на новый лист.

3. Используйте формулу массива (введите с Ctrl+Shift+Enter):

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$B$100; МАЛЫЙ(ЕСЛИ($C$2:$C$100=ИСТИНА; СТРОКА($A$2:$A$100)-1); СТРОКА(A1)); 1); "")

4. Растяните формулу вправо и вниз.

Метод 4: Условное форматирование для визуального анализа

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

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

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

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

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

Sub FilterByMonth()

Dim ws As Worksheet

Dim rng As Range

Dim monthList As Variant

Dim selectedMonth As Variant

' Настройте имя листа и диапазон данных

Set ws = ThisWorkbook.Sheets("Лист1")

Set rng = ws.Range("A1").CurrentRegion

' Список месяцев

monthList = Array("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", _

"Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь")

' Создаём выпадающий список (если его ещё нет)

On Error Resume Next

ws.Shapes("MonthDropdown").Delete

On Error GoTo 0

With ws.Shapes.AddFormControl(xlDropDown, 10, 10, 150, 20)

.Name = "MonthDropdown"

With .ControlFormat

.List = monthList

.DropDownLines = 12

End With

End With

' Фильтруем при выборе месяца

selectedMonth = ws.Shapes("MonthDropdown").ControlFormat.List(.ControlFormat.Value)

rng.AutoFilter Field:=1, Criteria1:=">=" & DateSerial(2026, Month(DateValue("1 " & selectedMonth)), 1), _

Operator:=xlAnd, Criteria2:="<" & DateSerial(2026, Month(DateValue("1 " & selectedMonth)) + 1, 1)

End Sub

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в модуль (меню InsertModule).
  3. Вернитесь на лист и запустите макрос через ВидМакросыFilterByMonth.
⚠️ Внимание: Макрос приведён для года 2026. Чтобы сделать его универсальным, замените 2026 на Year(Now()) — это автоматически подставит текущий год.

Типичные ошибки и как их избежать

Даже опытные пользователи Excel иногда сталкиваются с проблемами при фильтрации по месяцам. Вот TOP-5 ошибок и их решения:

  • 🗓️ Дата хранится как текст: Excel не распознаёт "01.03.2026" как дату, если ячейка отформатирована как текст. Решение: используйте =ДАТАЗНАЧ() или Текст по столбцам.
  • 🔢 Неверный регион дат: В некоторых локалях Excel использует формат "месяц/день/год" вместо "день.месяц.год". Решение: проверьте региональные настройки в Файл → Параметры → Язык.
  • 📉 Фильтр не обновляется: При добавлении новых данных автофильтр не применяется автоматически. Решение: расширьте диапазон фильтра или используйте Таблицу Excel (вкладка Вставка).
  • 🔍 Пустые строки в результатах: Это происходит, если в исходных данных есть скрытые символы или ошибки. Решение: очистите данные с помощью =ЧИСТ() или =ПЕЧСИМВ().
  • 🔄 Фильтр по месяцу включает другие годы: Автофильтр не учитывает год. Решение: используйте сводные таблицы с группировкой или формулы с проверкой года.

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

Можно ли фильтровать по месяцам, если даты записаны в виде "март 2026" (текст)?

Да, но для этого нужно преобразовать текст в даты. Используйте формулу:

=ДАТАЗНАЧ("1 " & A2)

где A2 — ячейка с текстом "март 2026". Затем примените фильтр к новому столбцу.

Как фильтровать по текущему месяцу автоматически?

Используйте динамическую формулу:

=ФИЛЬТР(A2:B100; (МЕСЯЦ(A2:A100)=МЕСЯЦ(СЕГОДНЯ())) * (ГОД(A2:A100)=ГОД(СЕГОДНЯ())))

Она будет автоматически обновляться при открытии файла.

Почему после фильтрации остаются пустые строки?

Это происходит, если в исходных данных есть скрытые символы или ошибки. Проверьте данные с помощью:

=ЕПУСТО(A2)

и удалите лишние символы функцией =ЧИСТ().

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

В автофильтре выберите Фильтры по датеМежду и укажите первую и последнюю дату диапазона (например, 01.01.2026 и 31.03.2026).

Можно ли сохранить фильтр, чтобы не настраивать его заново?

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

  1. Примените нужный фильтр.
  2. Перейдите на вкладку ВидНастраиваемые представления.
  3. Создайте новое представление с именем (например, "Март 2026").

Теперь вы сможете быстро возвращаться к сохранённому виду.