Работа с датами в Microsoft Excel — одна из самых востребованных задач при анализе данных.hether вы ведёте финансовую отчётность, планируете проекты или обрабатываете логистические данные, умение быстро отфильтровать записи по датам экономит часы рутинной работы. Однако многие пользователи ограничиваются базовым автофильтром, даже не подозревая о существовании более мощных инструментов: пользовательских фильтров, формул ФИЛЬТР (в новых версиях), условного форматирования и даже Power Query.
В этой статье мы разберём 7 практических способов фильтрации дат — от элементарных до профессиональных. Вы узнаете, как отсеять записи за определённый месяц, найти просроченные задачи, выделить выходные дни или даже создать динамические фильтры, которые автоматически обновляются при изменении исходных данных. Особое внимание уделим скрытым ловушкам Excel при работе с датами — например, почему фильтр может игнорировать ячейки с текстом, похожим на дату, или как правильно обрабатывать пустые значения.
1. Базовый автофильтр: быстрая фильтрация по датам
Начнём с самого простого метода, который работает во всех версиях Excel — автофильтра. Этот инструмент позволяет за несколько кликов отобразить только те строки, которые соответствуют заданному временному диапазону.
Чтобы активировать автофильтр:
- Выделите заголовок столбца с датами (включая строку с названием).
- Перейдите на вкладку
Данные→ нажмитеФильтр(или используйте горячие клавишиCtrl+Shift+L). - Щёлкните по стрелке фильтра в ячейке с датой и выберите один из вариантов:
- 📅 Фильтры по дате — предопределённые диапазоны («Завтра», «На этой неделе», «В прошлом месяце»).
- 🔍 Пользовательский фильтр — для задания произвольного интервала.
- ✅ Выделение отдельных дат — если нужно оставить только конкретные дни (например, 1 и 15 число каждого месяца).
Пример: если вам нужно найти все записи за текущий квартал, выберите Фильтры по дате → В этом квартале. Excel автоматически определит диапазон (например, с 1 апреля по 30 июня).
2. Пользовательский фильтр: гибкие условия для дат
Когда стандартных фильтров недостаточно, на помощь приходит пользовательский фильтр. Он позволяет задавать сложные условия, например:
- 🗓️ Даты между двумя значениями (например, с 01.01.2023 по 31.12.2023).
- ⏳ Даты раньше или позже определённой точки (например, все задачи, просроченные на сегодня).
- 🔄 Даты, равные или не равные конкретному дню (полезно для исключения выходных).
Как настроить:
- Активируйте фильтр для столбца с датами (как в предыдущем разделе).
- Выберите
Фильтры по дате → Пользовательский фильтр. - В открывшемся окне укажите условия. Например, для поиска дат за последние 30 дней:
больше или равно: =СЕГОДНЯ()-30меньше или равно: =СЕГОДНЯ()
Обратите внимание: в пользовательском фильтре можно использовать формулы Excel (например, СЕГОДНЯ(), ДАТА()). Это делает фильтр динамическим — он будет автоматически обновляться при открытии файла.
Почему фильтр не находит некоторые даты?
Если Excel игнорирует часть дат, проверьте:
1. Формат ячеек — даты должны быть в формате "Дата" (не "Текст" или "Общий").
2. Наличие скрытых символов (пробелов, неразрывных пробелов) — используйте функцию ПРОБЕЛЫ() для очистки.
3. Пустые ячейки — они не попадают в фильтр по умолчанию. Чтобы их включить, в пользовательском фильтре добавьте условие "равно пустому".
3. Фильтрация по дню недели, месяцу или году
Часто требуется отфильтровать данные не по конкретной дате, а по её компонентам — например, найти все записи за понедельники или за март 2026 года. Для этого можно использовать дополнительные столбцы с формулами.
Добавим вспомогательные столбцы:
| Формула | Назначение | Пример результата |
|---|---|---|
=ДЕНЬНЕД(A2) | Номер дня недели (1=воскресенье, 2=понедельник) | 2 (понедельник) |
=МЕСЯЦ(A2) | Номер месяца (1-12) | 3 (март) |
=ГОД(A2) | Год | 2026 |
=ТЕКСТ(A2; "медд") | Сокращённое название дня недели | "пн" |
После добавления столбцов:
- Примените фильтр к новому столбцу (например, с днями недели).
- Выберите нужные значения (например, "пн" для понедельников).
Профи-совет: чтобы не засорять таблицу лишними столбцами, скрывайте их после применения фильтра. Для этого выделите столбец → правая кнопка мыши → Скрыть.
4. Фильтрация с помощью функции ФИЛЬТР (Excel 365 и 2021)
В новых версиях Excel появилась революционная функция ФИЛЬТР, которая позволяет создавать динамические фильтры без изменения исходных данных. Её ключевое преимущество — результат обновляется автоматически при изменении данных.
Синтаксис функции:
=ФИЛЬТР(массив; включить; [если_пусто])
- 📊
массив— диапазон данных для фильтрации. - ✅
включить— условие (или массив условий). - ⚠️
[если_пусто]— значение, которое будет отображаться, если ничего не найдено (необязательно).
Примеры использования:
- 🔹 Фильтрация дат позже сегодняшней:
=ФИЛЬТР(A2:B100; B2:B100>СЕГОДНЯ()) - 🔹 Даты за текущий месяц:
=ФИЛЬТР(A2:B100; (ГОД(B2:B100)=ГОД(СЕГОДНЯ()))*(МЕСЯЦ(B2:B100)=МЕСЯЦ(СЕГОДНЯ())))
Используете Excel 365 или 2021 (в старых версиях функции нет)
Данные в столбцах не содержат пустых строк (иначе результат будет #ЗНАЧ!)
Формат дат в ячейках корректный (не текст)
Задаёте условие для всего столбца (B2:B100, а не только B2)-->
Важно: функция ФИЛЬТР возвращает динамический массив, который автоматически "проливается" на соседние ячейки. Не пытайтесь вручную растягивать формулу или обрезать её результат — это нарушит работу.
5. Условное форматирование для визуальной фильтрации
Если вам не нужно скрывать строки, а достаточно просто выделить нужные даты, используйте условное форматирование. Этот метод позволяет быстро найти важные записи без изменения структуры таблицы.
Как настроить:
- Выделите диапазон с датами.
- Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите
Использовать формулу для определения форматируемых ячеек. - Введите формулу. Примеры:
- 🔴 Для просроченных дат:
=A1<СЕГОДНЯ() - 🟢 Для дат в будущем:
=A1>СЕГОДНЯ() - 🟡 Для выходных:
=ИЛИ(ДЕНЬНЕД(A1;2)>5; ТЕКСТ(A1;"дддд")="воскресенье")
- 🔴 Для просроченных дат:
Преимущество этого метода — наглядность. Например, вы можете красным выделить все просроченные задачи, зелёным — выполненные в срок, а жёлтым — те, что истекают сегодня. Это позволяет мгновенно оценивать ситуацию без применения фильтров.
6. Фильтрация дат с помощью Power Query
Для работы с большими наборами данных (тысячи строк) или если вам нужно преобразовать даты перед фильтрацией (например, извлечь квартал), идеально подходит Power Query (вкладка Данные → Получить данные).
Пошаговая инструкция:
- Выделите таблицу с данными и нажмите
Данные → Из таблицы/диапазона(илиПолучить данные → Из других источников → Из таблицы/диапазона). - В открывшемся редакторе Power Query выделите столбец с датами.
- На вкладке
Добавить столбецвыберите нужное преобразование:- 📅
Дата → День → Название дня(для фильтрации по дням недели). - 🗓️
Дата → Месяц → Название месяца. - 📊
Дата → Возраст(покажет, сколько дней прошло с даты).
- 📅
Закрыть и загрузить, чтобы вернуть отфильтрованные данные в Excel.Power Query сохраняет все шаги преобразования, поэтому при обновлении исходных данных вам не придётся настраивать фильтр заново — достаточно нажать Обновить.
=Number.From(Date.Month([Дата])) для номера месяца, а затем создайте новый столбец с формулой:
=Number.IntegerDivide([Месяц]-1, 3) + 1 для номера квартала.-->
7. Распространённые ошибки и как их избежать
Даже опытные пользователи Excel сталкиваются с проблемами при фильтрации дат. Вот топ-5 ошибок и их решения:
⚠️ Внимание: Если ваши даты хранятся как текст (например, "01.01.2026" вместо настоящей даты), Excel не сможет их правильно отфильтровать. Чтобы исправить это, используйте функцию=ДАТАЗНАЧ(A1)или инструментТекст по столбцам(вкладкаДанные).
| Ошибка | Причина | Решение |
|---|---|---|
| Фильтр не находит даты | Дата хранится как текст или число | Преобразуйте формат ячеек в "Дата" или используйте ДАТАЗНАЧ() |
| Некорректная сортировка | Смешанные форматы (например, "01.01.2026" и "01-янв-2026") | Унифицируйте формат с помощью Формат ячеек |
| Пустые строки в результатах | В данных есть скрытые символы или пробелы | Очистите данные функцией СЖПРОБЕЛЫ() |
| Фильтр "зависает" | Слишком большой диапазон данных | Преобразуйте данные в умную таблицу (Ctrl+T) |
| Динамический фильтр не обновляется | Отключено автоматическое обновление связей | Включите в Формулы → Вычисления → Автоматически |
Ещё одна частая проблема — разница в временных зонах. Если ваши даты содержат время (например, "01.01.2026 12:00"), фильтр по дате может работать некорректно. Решение: используйте функцию =ЦЕЛОЕ(A1), чтобы отсечь временную часть, или применяйте фильтр только к дате без времени.
FAQ: Частые вопросы по фильтрации дат в Excel
Как отфильтровать даты за последний год?
Используйте пользовательский фильтр с условиями:
больше или равно: =ДАТА(ГОД(СЕГОДНЯ())-1; МЕСЯЦ(СЕГОДНЯ()); ДЕНЬ(СЕГОДНЯ()))
меньше или равно: =СЕГОДНЯ()
Или в Power Query добавьте столбец с разницей в днях: =Duration.Days(DateTime.LocalNow() - [Дата]) и отфильтруйте значения ≤ 365.
Почему фильтр не видит даты в формате "январь 2026"?
Excel воспринимает "январь 2026" как текст, а не дату. Преобразуйте его в настоящую дату с помощью:
=ДАТА(2026; 1; 1)
Или используйте Текст по столбцам (вкладка Данные), выбрав формат "ДМЙ".
Можно ли фильтровать даты по рабочим/выходным дням?
Да, два способа:
- Добавьте вспомогательный столбец с формулой
=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A1;2)>5); "Выходной"; "Рабочий")и фильтруйте по нему. - В Power Query добавьте пользовательский столбец с формулой
=if Date.DayOfWeek([Дата]) = Day.Sunday or Date.DayOfWeek([Дата]) = Day.Saturday then "Выходной" else "Рабочий".
Как сохранить отфильтрованные данные в новый файл?
Выделите видимые строки (после применения фильтра), скопируйте их (Ctrl+C), вставьте в новый лист или книгу (Ctrl+V). Либо используйте Power Query:
- Отфильтруйте данные в Power Query.
- Нажмите
Закрыть и загрузить в.... - Выберите
Новая книга.
Почему после фильтрации пропадают формулы в соседних столбцах?
Это происходит, если вы копируете отфильтрованные данные как значения. Чтобы сохранить формулы:
- Скопируйте видимые ячейки (
Alt+;для выделения только видимых строк). - Вставьте с сохранением формул: правая кнопка →
Специальная вставка → Формулы.
Или используйте функцию ФИЛЬТР (Excel 365), которая сохраняет связь с исходными данными.