Работа с датами в Microsoft Excel — одна из самых востребованных задач при анализе данных.hether вы ведёте учёт продаж, планируете проекты или анализируете временные ряды, умение быстро отфильтровать записи по датам экономит часы работы. Но стандартные инструменты Excel не всегда интуитивно понятны: автофильтр ограничен базовыми диапазонами, а ручная сортировка тысячи строк чревата ошибками.
В этой статье мы разберём 5 практических методов фильтрации дат — от элементарного автофильтра до динамических диапазонов с формулами. Вы узнаете, как отсеять данные за конкретный месяц, выделить просроченные задачи или найти записи между двумя датами. Все примеры протестированы в Excel 2019 и Office 365, но подойдут и для версий 2010–2021. Особое внимание уделим ловушкам с форматами дат — именно они становятся причиной 80% ошибок при фильтрации.
1. Базовая фильтрация через автофильтр
Самый быстрый способ отсортировать данные по датам — использовать встроенный автофильтр. Он подходит для одноразовых задач, когда не нужно сохранять условия фильтрации.
Как включить:
- 📌 Выделите заголовок столбца с датами (например,
A1:D1). - 🔧 Перейдите на вкладку
Данные→Фильтр(или нажмитеCtrl+Shift+L). - 📅 Нажмите на стрелку вниз в ячейке с датой и выберите один из вариантов:
- Фильтры по дате →
Завтра/На этой неделе/В прошлом месяце; - Пользовательский фильтр → укажите диапазон (например,
с 01.01.2026 по 31.01.2026).
- Фильтры по дате →
⚠️ Внимание: Автофильтр учитывает формат ячеек. Если даты хранятся как текст (например, "01.01.2026" вместо 01.01.2026), фильтр не сработает. Проверить формат можно через Главная → Формат ячеек → Числовой формат.
| Тип фильтра | Пример условия | Результат |
|---|---|---|
| Равно | 05.05.2026 |
Все записи за 5 мая 2026 года |
| До | 31.12.2023 |
Данные до конца 2023 года (включительно) |
| После | 01.01.2026 |
Записи с 1 января 2026 года (включительно) |
| Между | 01.07.2026 и 31.07.2026 |
Июль 2026 года |
| Первые 10... | 10 самых старых |
10 записей с самой ранней датой |
2. Расширенный фильтр: гибкие условия
Если автофильтра недостаточно (например, нужно фильтровать по нескольким столбцам одновременно или сохранить результат на другом листе), используйте расширенный фильтр.
Алгоритм:
- Создайте диапазон условий — отдельную область с заголовками столбцов и критериями. Например:
A1: Дата | СтатусA2: >01.01.2026 | =Завершено
- Перейдите в
Данные→Дополнительно(в старых версиях —Расширенный фильтр). - Укажите:
- 📊 Исходный диапазон — таблица с данными (
A1:D1000); - 🎯 Диапазон условий — ячейки с критериями (
F1:G2); - 📤 Поместить результат в диапазон — выберите ячейку для вывода (например,
I1).
- 📊 Исходный диапазон — таблица с данными (
⚠️ Внимание: Расширенный фильтр не копирует форматирование исходных данных. Если нужны цвета или шрифты, используйте Специальную вставку → Форматы после фильтрации.
Заголовки в диапазоне условий совпадают с исходной таблицей|
Дата введена в формате ячейки "Дата", а не "Текст"|
Диапазон результата не пересекается с исходными данными|
Указаны все обязательные условия (например, "И" вместо "ИЛИ")-->
3. Фильтрация по динамическим датам (сегодня, вчера, текущий месяц)
Чтобы автоматически отображать только актуальные данные (например, задачи на сегодня или продажи за текущий месяц), используйте формулы в диапазоне условий.
Примеры динамических критериев:
- 📅 Сегодня:
=СЕГОДНЯ() - 📅 Вчера:
=СЕГОДНЯ()-1 - 📅 Текущий месяц:
=И(МЕСЯЦ(A2)=МЕСЯЦ(СЕГОДНЯ()); ГОД(A2)=ГОД(СЕГОДНЯ())) - 📅 Просроченные задачи:
=A2<СЕГОДНЯ()
Как применить:
- Создайте столбец с формулой рядом с данными. Например, в
E2введите:=И(МЕСЯЦ(A2)=МЕСЯЦ(СЕГОДНЯ()); ГОД(A2)=ГОД(СЕГОДНЯ()))Это вернёт
ИСТИНАдля строк текущего месяца. - Добавьте автофильтр и отфильтруйте столбец
Eпо значениюИСТИНА.
Почему формулы не обновляются автоматически?
Если даты не фильтруются корректно, проверьте:
1. Включён ли автоматический пересчёт: Формулы → Параметры вычислений → Автоматически.
2. Нет ли в ячейках текста вместо дат (проверьте выравнивание: текст выравнивается влево, даты — вправо).
3. Совпадают ли форматы дат в формуле и в данных (например, 01.01.2026 vs 01-янв-24).
4. Фильтрация по недели или дню недели
Для анализа данных по дням недели (например, продажи по понедельникам или рабочие дни) используйте функции ДЕНЬНЕД и НОМНЕДЕЛИ.
Пример 1: Фильтрация по понедельникам.
- Добавьте вспомогательный столбец с формулой:
=ДЕНЬНЕД(A2;2)где
2— тип возвращаемого значения (1=воскресенье, 7=суббота). - Отфильтруйте столбец по значению
1(понедельник).
Пример 2: Данные за чётные недели месяца.
- Используйте формулу:
=ЧЁТН(НОМНЕДЕЛИ(A2;21))где
21— тип возвращаемого значения (неделя начинается с понедельника). - Отфильтруйте по
ИСТИНА.
| Задача | Формула | Критерий фильтра |
|---|---|---|
| Понедельники | =ДЕНЬНЕД(A2;2)=1 |
ИСТИНА |
| Выходные (Сб, Вс) | =ИЛИ(ДЕНЬНЕД(A2;2)=6; ДЕНЬНЕД(A2;2)=7) |
ИСТИНА |
| Первая неделя месяца | =ДЕНЬ(A2)<=7 |
ИСТИНА |
| Чётные недели | =ЧЁТН(НОМНЕДЕЛИ(A2;21)) |
ИСТИНА |
По конкретной дате (например, 15.05.2026)|
По диапазону (между двумя датами)|
Динамические даты (сегодня, текущий месяц)|
По дням недели (понедельники, выходные)|
Другой вариант-->
5. Фильтрация с помощью сводных таблиц
Если нужно не только отфильтровать, но и агрегировать данные (например, посчитать сумму продаж по месяцам), сводная таблица — лучший инструмент.
Пошаговая инструкция:
- Выделите исходные данные (включая заголовки).
- Перейдите в
Вставка→Сводная таблица. - В поле
Строкиперетащите столбец с датами. - Нажмите на стрелку рядом с датой →
Группировка→ выберитеМесяцыилиКварталы. - В поле
Значениядобавьте данные для анализа (например, сумму продаж).
🔹 Продвинутый трюк: Чтобы сгруппировать даты по нестандартным периодам (например, по 10 дней), сначала добавьте вспомогательный столбец с формулой:
=ЦЕЛОЕ((A2-ДАТА(ГОД(A2);1;1))/10)+1
Затем используйте его в сводной таблице вместо исходных дат.
6. Продвинутые техники: Power Query и VBA
Для обработки больших массивов данных (десятки тысяч строк) или автоматизации фильтрации подойдут Power Query и VBA-макросы.
Power Query (Excel 2016+):
- 📤 Импортируйте данные через
Данные→Получить данные→Из таблицы/диапазона. - 🔧 В редакторе Power Query выберите столбец с датой →
Фильтр дат→ укажите диапазон. - 📥 Нажмите
Закрыть и загрузить, чтобы вернуть отфильтрованные данные в Excel.
VBA (для автоматизации):
Макрос для фильтрации данных за последние 30 дней:
Sub FilterLast30Days()
Dim ws As Worksheet
Dim rng As Range
Set ws = ActiveSheet
Set rng = ws.Range("A1").CurrentRegion
'Добавляем автофильтр, если его нет
If ws.AutoFilterMode = False Then
rng.AutoFilter
End If
'Фильтруем по датам (предполагаем, что даты в первом столбце)
ws.Range("A1").AutoFilter Field:=1, Criteria1:=">=" & Date - 30, Operator:=xlAnd, Criteria2:="<=" & Date
End Sub
⚠️ Внимание: Макросы работают только если даты хранятся в формате Excel, а не как текст. Перед запуском проверьте формат ячеек через Ctrl+1.
Частые ошибки и их решения
Даже опытные пользователи сталкиваются с проблемами при фильтрации дат. Вот самые распространённые ловушки:
- 🚫 Дата как текст: Если после фильтрации остаются пустые результаты, проверьте формат ячеек. Текстовые "даты" (выровнены влево) не распознаются фильтром. Исправляйте через
Данные→Текст по столбцам. - 🚫 Разные форматы:
01.01.2026и01-янв-24— это разные значения для Excel. Приведите данные к единому формату черезФормат ячеек→Дата. - 🚫 Пустые ячейки: Автофильтр игнорирует пустые ячейки. Чтобы их показать, снимите все фильтры или используйте расширенный фильтр с условием
<>" ". - 🚫 Ошибки в формулах: Если динамический фильтр не работает, проверьте синтаксис. Например,
=И(A2>ДАТА(2026;1;1); A2<ДАТА(2026;12;31))— правильно, а=A2>01.01.2026— нет (нужно=A2>ДАТА(2026;1;1)).
Как найти все пустые даты?
Используйте функцию ЕПУСТО() во вспомогательном столбце:
=ЕПУСТО(A2)
Затем отфильтруйте по ИСТИНА. Это покажет строки, где дата не указана.
FAQ: Ответы на частые вопросы
Можно ли фильтровать даты по времени (часам и минутам)?
Да, но нужно убедиться, что в ячейках хранится полная дата+время (формат дд.мм.гггг чч:мм). Затем используйте пользовательский фильтр с условиями типа >15:30 или <=ДАТАЗНАЧ("01.01.2026 18:00").
Как отфильтровать даты без года (только день и месяц)?
Создайте вспомогательный столбец с формулой, извлекающей день и месяц:
=ДАТА(2000; МЕСЯЦ(A2); ДЕНЬ(A2))
Затем фильтруйте по этому столбцу. Год 2000 выбран произвольно — главное, чтобы формат совпадал.
Почему фильтр не показывает записи за текущий день?
Вероятно, в данных указано только время без даты (например, 14:30 вместо 15.05.2026 14:30). Добавьте сегодняшнюю дату ко времени через формулу:
=СЕГОДНЯ()+A2
где A2 — ячейка со временем.
Как сохранить отфильтрованные данные на новом листе?
Используйте расширенный фильтр:
- Укажите диапазон условий (например, даты за март 2026).
- В поле
Поместить результат в диапазонвыберите ячейку на другом листе (например,Лист2!A1). - Поставьте галочку
Скопировать в другое место.
Или экспортируйте отфильтрованные данные через Копировать → Специальная вставка → Значения.
Можно ли фильтровать даты по кварталам или полугодиям?
Да, двумя способами:
- Через сводную таблицу: сгруппируйте даты по кварталам (
Группировка→Кварталы). - Через формулу во вспомогательном столбце:
=ОКРВВЕРХ(МЕСЯЦ(A2)/3;0)Это вернёт номер квартала (1–4). Затем фильтруйте по нужному значению.