Почему фильтрация по месяцам — ключевой навык в Excel
Работа с временными данными в Microsoft Excel — одна из самых востребованных задач. Будь то финансовые отчёты, продажи, логистика или персональные записи, умение быстро выделять информацию за конкретный месяц экономит часы ручной обработки. По данным исследования Spiceworks, 89% офисных сотрудников еженедельно сталкиваются с необходимостью анализировать данные по временным периодам, и в 63% случаев речь идёт именно о месячной разбивке.
Проблема в том, что Excel хранит даты в числовом формате (количество дней с 1 января 1900 года), а пользователи привыкли оперировать привычными названиями месяцев. Эта разница часто становится источником ошибок: неправильно применённый фильтр может исключить нужные данные или, наоборот, включить лишние. Например, если в ячейке записано 15.03.2026, а вы фильтруете по текстовому значению "март", Excel не распознает связь между ними без дополнительных действий.
В этой статье мы разберём 5 методов фильтрации по месяцам — от базовых до продвинутых, — которые покрывают 95% практических задач. Вы узнаете, как работать с автофильтром, сводными таблицами, формулами и даже автоматизировать процесс с помощью макросов. Особое внимание уделим скрытым ловушкам формата дат, которые порождают majority ошибок у новичков.
Метод 1: Автофильтр — быстрый способ для новичков
Встроенный автофильтр — самый простой инструмент, который не требует знания формул. Он подходит для одноразовых задач, когда нужно быстро просмотреть данные за определённый месяц. Чтобы его применить:
- Выделите заголовок столбца с датами (например,
A1). - Перейдите на вкладку
Данные→Фильтр(или нажмитеCtrl+Shift+L). - Нажмите на стрелку фильтра в заголовке столбца и выберите
Фильтры по дате→Выбрать месяц.
Здесь вас поджидает первая ловушка: если даты в столбце хранятся как текст (например, "март 2026" вместо 01.03.2026), опция Фильтры по дате будет неактивна. Чтобы это исправить, преобразуйте текст в даты с помощью функции =ДАТАЗНАЧ() или инструмента Текст по столбцам на вкладке Данные.
Преобразовать текстовые даты в формат даты Excel|Проверить отсутствие пустых ячеек в столбце|Убедиться, что заголовок столбца не содержит объединённых ячеек|Сохранить оригинальную таблицу (на случай ошибок)-->
⚠️ Внимание: Автофильтр не различает годы! Если в ваших данных есть даты за март 2023 и март 2026, фильтр по месяцу "март" покажет обе группы. Для точной фильтрации используйте методы из следующих разделов.
Метод 2: Фильтрация по месяцам с помощью сводных таблиц
Сводные таблицы — это мощный инструмент анализа, который позволяет не только фильтровать, но и группировать данные по месяцам, кварталам или годам. Преимущество этого метода в том, что вы можете одновременно видеть суммы, средние значения или количество записей за каждый период.
Алгоритм действий:
- Выделите исходную таблицу (включая заголовки).
- Перейдите на вкладку
Вставка→Сводная таблица. - В открывшемся окне выберите, куда поместить сводную таблицу (новый лист или существующий).
- В панели
Поля сводной таблицыперетащите столбец с датами в областьСтроки, а нужные числовые данные — в областьЗначения. - Щёлкните правой кнопкой по любой дате в сводной таблице и выберите
Группировать→ укажитеМесяцы.
Профессиональный приём: если вам нужны данные только за конкретный месяц, после группировки нажмите на стрелку фильтра рядом с названием месяца и выберите Выделить только этот элемент. Чтобы вернуть все месяцы, нажмите Очистить фильтр.
| Проблема | Причина | Решение |
|---|---|---|
| Нет опции "Группировать" | Данные хранятся как текст | Преобразуйте в формат даты с помощью =ДАТАЗНАЧ() |
| Месяцы отображаются в алфавитном порядке | Группировка не применена | Щёлкните правой кнопкой → Группировать → Месяцы |
| Пустые строки в сводной таблице | В исходных данных есть пустые ячейки | Отфильтруйте исходную таблицу или замените пустые ячейки на 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: Условное форматирование для визуального анализа
Иногда достаточно просто выделить цветом строки с данными за нужный месяц, не скрывая остальные. Для этого подходит условное форматирование:
- Выделите диапазон данных (например,
A2:D100). - Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите
Использовать формулу для определения форматируемых ячеек. - Введите формулу:
=МЕСЯЦ($A2)=3(для марта). - Задайте формат (например, зелёную заливку) и нажмите
ОК.
Преимущество этого метода в том, что вы видите контекст: как данные за выбранный месяц соотносятся с остальными периодами. Например, можно сразу заметить, что продажи в марте 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
Чтобы использовать этот макрос:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в модуль (меню
Insert→Module). - Вернитесь на лист и запустите макрос через
Вид→Макросы→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).
Можно ли сохранить фильтр, чтобы не настраивать его заново?
Да, для этого:
- Примените нужный фильтр.
- Перейдите на вкладку
Вид→Настраиваемые представления. - Создайте новое представление с именем (например, "Март 2026").
Теперь вы сможете быстро возвращаться к сохранённому виду.