Работа с датами в Microsoft Excel — одна из самых востребованных задач среди аналитиков, бухгалтеров и менеджеров. Только представьте: у вас таблица с тысячами строк продаж, заказов или посещений, и нужно срочно выделить данные за последний квартал или найти просроченные задачи. Вручную пролистывать такие объёмы — неблагодарное занятие. К счастью, в Excel есть мощные инструменты фильтрации по датам, которые экономят часы работы.
Но здесь кроется подвох: многие пользователи ограничиваются базовым автофильтром, даже не подозревая о существовании динамических фильтров, условного форматирования по датам или расширенного фильтра с формулами. Эта статья раскроет все секреты — от элементарного до продвинутого уровня. Вы научитесь не только фильтровать даты, но и автоматизировать процесс, чтобы таблицы обновлялись в один клик.
А знаете ли вы, что Excel хранит даты как числа, где 1 января 1900 года = 1, а каждая последующая дата — это количество дней с той поры? Это знание объясняет, почему иногда фильтры работают не так, как ожидалось, и как исправить типичные ошибки.
1. Базовый фильтр по дате: автофильтр за 3 клика
Начнём с самого простого — встроенного автофильтра. Этот метод подходит для 90% задач и работает во всех версиях Excel от 2010 до 2026, включая Office 365 и онлайн-версию.
Чтобы активировать фильтр:
- Выделите любую ячейку в таблице с данными (или весь диапазон, если таблица не оформлена как
Smart Table). - Перейдите на вкладку
Данные→ нажмитеФильтр(или используйте горячие клавишиCtrl+Shift+L). - В заголовке столбца с датами появится кнопка фильтра (☰). Кликните по ней.
Теперь перед вами меню с опциями фильтрации. Для дат доступны специальные группы:
- 📅 Фильтры по дате — здесь можно выбрать готовые периоды:"Завтра","На этой неделе","В прошлом месяце" и т.д.
- 📊 Числовые фильтры — позволяет задавать условия типа"больше чем","между","первые 10 элементов".
- 🔍 Текстовые фильтры — полезно, если даты хранятся как текст (например,"01.01.2026").
Выделить таблицу с заголовками|Включить фильтр (Ctrl+Shift+L)|Кликнуть по стрелке в столбце с датой|Выбрать"Фильтры по дате" → нужный период|Применить фильтр
-->
Пример: чтобы отобразить продажи за текущий месяц, выберите Фильтры по дате → Этот месяц. Excel автоматически определит диапазон с 1-го числа по сегодняшнюю дату.
⚠️ Внимание: Если в столбце смешаны форматы дат (например,"01.01.2026" и"01-янв-2026"), автофильтр может работать некорректно. Преобразуйте данные в единый формат через Формат ячеек → Дата.
2. Продвинутая фильтрация: пользовательский автофильтр
Готовые фильтры удобны, но что делать, если нужно отобразить данные за нестандартный период? Например, с 15 марта по 10 апреля 2026 года? Здесь поможет пользовательский автофильтр.
Инструкция:
- Кликните по стрелке фильтра в столбце с датами.
- Выберите
Числовые фильтры → Настраиваемый фильтр(илиФильтры по дате → Настраиваемый фильтрв новых версиях). - В открывшемся окне укажите условия. Например:
- 📅 Больше или равно: 15.03.2026
- 📅 И → Меньше или равно: 10.04.2026
ОК.Такой фильтр поддерживает до двух условий одновременно (с операторами И/ИЛИ). Например, можно отобразить данные за январь ИЛИ декабрь 2023 года:
- 📅 Первое условие: Больше или равно 01.01.2023 И Меньше или равно 31.01.2023
- 📅 Второе условие (оператор
ИЛИ): Больше или равно 01.12.2023 И Меньше или равно 31.12.2023
Профи-фишка: Если нужно фильтровать по дню недели (например, только понедельники), используйте формулу =ТЕКСТ(A2;"dddd")="понедельник" в расширенном фильтре (об этом — в следующем разделе).
3. Расширенный фильтр: когда автофильтра недостаточно
Автофильтр ограничен двумя условиями и не умеет работать с формулами. Если вам нужно:
- 📌 Фильтровать по нескольким критериям (например, дата + категория + сумма).
- 📌 Использовать формулы в условиях (например,"даты старше 30 дней").
- 📌 Сохранять результаты фильтрации в новом месте (не скрывая оригинальные данные).
— приходит на помощь расширенный фильтр.
Алгоритм действий:
- Создайте диапазон критериев (обычно над или рядом с таблицей). Например:
A1:"Дата" | B1:"Категория" | C1:"Сумма"
A2:">01.01.2026" | B2:"Электроника" | C2:">1000"
Здесь мы ищем записи, где дата позже 1 января 2026, категория —"Электроника", а сумма больше 1000.
- Перейдите на вкладку
Данные→Сортировка и фильтр→Расширенный фильтр. - Укажите:
- 📍 Исходный диапазон — ваша таблица с данными.
- 📍 Диапазон условий — ячейки с критериями (в нашем примере A1:C2).
- 📍 Отметьте
Скопировать результат в другое место, если нужно сохранить отфильтрованные данные отдельно.
ОК.Пример с формулой: чтобы отобразить просроченные задачи (даты раньше сегодняшней), в ячейке критерия укажите:
=A2
где A2 — первая ячейка столбца с датами.
Как работает формула TSEGODNYA
Функция ТСЕГОДНЯ (или TODAY в английской версии) возвращает текущую дату и обновляется автоматически при каждом открытии файла. Это значит, что фильтр с такой формулой будет всегда актуальным — не нужно вручную менять даты!
| Тип критерия | Пример записи | Результат |
|---|---|---|
| Диапазон дат | >=01.01.2026<=31.01.2026 |
Данные за январь 2026 |
| Конкретные даты | 05.05.202610.05.2026 |
Только записи от 5 и 10 мая |
| Динамическая дата | =A2>ТСЕГОДНЯ-30 |
Данные за последние 30 дней |
| День недели | =ТЕКСТ(A2;"dddd")="среда" |
Все среды в таблице |
⚠️ Внимание: Если при применении расширенного фильтра вы видите ошибку#ЗНАЧ!, проверьте:
- 🔹 Совпадают ли заголовки столбцов в исходной таблице и диапазоне критериев.
- 🔹 Нет ли пустых строк в диапазоне условий.
- 🔹 Правильно ли указаны абсолютные ссылки (например,
$A$2вместоA2).
4. Фильтрация по датам с помощью сводных таблиц
Сводные таблицы — это супероружие для анализа данных по датам. Они позволяют не только фильтровать, но и группировать даты по годам, кварталам или месяцам, а также строить динамические отчёты.
Как создать сводную таблицу с фильтром по дате:
- Выделите исходную таблицу (включая заголовки).
- Перейдите на вкладку
Вставка→Сводная таблица. - В открывшемся окне укажите, куда поместить сводную таблицу (на новый лист или в текущий).
- В панели
Поля сводной таблицыперетащите:- 📅 Столбец с датами в область
Строки. - 📊 Данные для анализа (например, суммы продаж) в область
Значения.
- 📅 Столбец с датами в область
Группировать → выберите период (дни, месяцы, кварталы).Анализ сводной таблицы → Вставить срез), чтобы добавить интерактивные фильтры.Пример: У вас есть данные о продажах за 3 года. Сводная таблица позволит:
- 📈 Сгруппировать продажи по кварталам и сравнить динамику.
- 🎯 Отфильтровать только те кварталы, где продажи превысили целевой показатель.
- 📊 Построить график прямо в сводной таблице (вкладка
Анализ→Сводная диаграмма).
Преимущество сводных таблиц в том, что они динамически обновляются при изменении исходных данных. Достаточно кликнуть правой кнопкой по таблице и выбрать Обновить.
5. Условное форматирование: визуальная фильтрация дат
Иногда нужно не скрывать данные, а выделить их — например, просроченные задачи или пиковые дни продаж. Здесь поможет условное форматирование.
Как выделить ячейки по дате:
- Выделите столбец с датами.
- Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите
Использовать формулу для определения форматируемых ячеек. - Введите формулу. Примеры:
- 🔴 Для просроченных задач:
=A2 - 🟢 Для дат в текущем месяце:
=И(МЕСЯЦ(A2)=МЕСЯЦ(ТСЕГОДНЯ); ГОД(A2)=ГОД(ТСЕГОДНЯ)) - 🟡 Для выходных дней:
=ИЛИ(ДЕНЬНЕД(A2)=7; ДЕНЬНЕД(A2)=1)(7 — воскресенье, 1 — понедельник в некоторых локалях).
- 🔴 Для просроченных задач:
ОК.Такой подход позволяет визуально анализировать данные без скрытия строк. Например, в отчёте о продажах можно сразу увидеть:
- 📅 Красным — дни с нулевыми продажами.
- 📅 Зелёным — дни с рекордами.
- 📅 Жёлтым — выходные.
Для более сложных правил используйте комбинации функций:
ДЕНЬНЕД— возвращает номер дня недели (1–7).МЕСЯЦ— номер месяца (1–12).ГОД— год.СЕГОДНЯ— текущая дата.
6. Фильтрация дат с помощью Power Query (для больших данных)
Если вы работаете с большими таблицами (десятки тысяч строк) или данными из внешних источников (например, SQL, CSV), обычные фильтры Excel могут тормозить. В этом случае используйте Power Query — инструмент для преобразования и очистки данных.
Инструкция по фильтрации дат в Power Query:
- Выделите таблицу → вкладка
Данные→Из таблицы/диапазона(в группеПолучить и преобразовать данные). - Откроется редактор Power Query. Выделите столбец с датами.
- Кликните по стрелке фильтра в заголовке столбца → выберите нужный критерий (например,
Послеи укажите дату). - Для сложных фильтров используйте
Добавить столбец → Пользовательский столбец. Например, чтобы создать флаг для просроченных задач:if [Дата] < DateTime.LocalNow then"Просрочено" else"Активно" - Нажмите
Закрыть и загрузить, чтобы вернуть отфильтрованные данные в Excel.
Преимущества Power Query:
- 🚀 Обрабатывает миллионы строк без зависаний.
- 🔄 Сохраняет шаги преобразования — при обновлении данных фильтр применяется автоматически.
- 🔗 Можно объединять данные из нескольких источников (например, слить таблицы из разных файлов).
Что такое M-код в Power Query?
M — это язык формул в Power Query. Когда вы применяете фильтры через интерфейс, редактор автоматически генерирует M-код. Его можно просматривать и редактировать вручную в окне Дополнительно → Просмотр редактора. Например, фильтр по дате в M-коде выглядит так:
= Table.SelectRows(#"Предыдущий шаг", each [Дата] > #date(2026, 1, 1))
Если вам нужно фильтровать даты относительно текущей даты (например,"последние 90 дней"), используйте функцию DateTime.LocalNow в пользовательском столбце.
7. Типичные ошибки и как их избежать
Даже опытные пользователи Excel сталкиваются с проблемами при фильтрации дат. Вот самые распространённые ошибки и их решения:
1. Даты отображаются как числа (например, 45000 вместо 01.01.2026)
- 🔹 Причина: Ячейки отформатированы как
ОбщийилиЧисловойформат. - 🔹 Решение: Выделите столбец →
Формат ячеек→Дата→ выберите нужный формат.
2. Фильтр не находит даты, которые есть в таблице
- 🔹 Причина 1: Даты хранятся как текст (например,"01.01.2026" вместо настоящей даты).
- 🔹 Решение: Преобразуйте текст в даты с помощью
ДАТАЗНАЧилиФормат ячеек → Дата. - 🔹 Причина 2: В данных есть пробелы или скрытые символы.
- 🔹 Решение: Используйте
СЖПРОБЕЛЫилиПЕЧСИМВдля очистки.
3. Фильтр по дате работает некорректно в сводной таблице
- 🔹 Причина: Источник данных содержит пустые ячейки или ошибки.
- 🔹 Решение: Очистите данные перед созданием сводной таблицы или используйте
ПУСТОв формулах.
4. Расширенный фильтр возвращает пустой результат
- 🔹 Причина 1: Не совпадают заголовки в исходной таблице и диапазоне критериев.
- 🔹 Причина 2: В критериях указаны неверные форматы дат (например, текст вместо даты).
- 🔹 Решение: Проверьте форматы и совпадение заголовков.
5. Условное форматирование не обновляется
- 🔹 Причина: Формулы в правилах используют относительные ссылки (например,
A2вместо$A2). - 🔹 Решение: Замените ссылки на абсолютные (с символом
$) или обновите правила вручную (Управление правилами → Изменить правило).
⚠️ Внимание: Если вы импортируете данные из внешних источников (например, 1С или SQL), даты могут приходить в нестандартном формате. Всегда проверяйте их корректность через Формат ячеек перед фильтрацией.
8. Автоматизация: как сделать фильтры динамическими
Ручная фильтрация утомительна, если её приходится повторять ежедневно. К счастью, в Excel можно автоматизировать процесс с помощью макросов или динамических диапазонов.
Способ 1: Динамические именованные диапазоны
Создайте именованный диапазон, который автоматически обновляется при изменении данных:
- Перейдите на вкладку
Формулы→Диспетчер имён→Создать. - Задайте имя (например,
ДатаОтчета). - В поле
Диапазонвведите формулу:=ФИЛЬТР(Таблица1[Дата]; Таблица1[Дата]>=ТСЕГОДНЯ-30)Здесь
Таблица1[Дата]— столбец с датами, аТСЕГОДНЯ-30отбирает последние 30 дней. - Теперь используйте это имя в формулах или сводных таблицах — оно будет обновляться автоматически.
Способ 2: Макрос для быстрой фильтрации
Запишите простой макрос, который применяет фильтр по текущему месяцу:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте новый модуль (
Insert → Module). - Скопируйте код:
Sub ФильтрПоТекущемуМесяцуDim ws As Worksheet
Dim rng As Range
Dim currentMonth As Integer
Dim currentYear As Integer
Set ws = ActiveSheet
Set rng = ws.Range("A1").CurrentRegion' Предполагаем, что данные начинаются с A1
currentMonth = Month(Date)
currentYear = Year(Date)
' Применяем автофильтр
rng.AutoFilter Field:=1, Criteria1:=">=01/" & currentMonth &"/" & currentYear, _
Operator:=xlAnd, Criteria2:="<=" & Day(DateLastDay(Date)) &"/" & currentMonth &"/" & currentYear
End Sub
Function DateLastDay(d As Date) As Date
DateLastDay = DateSerial(Year(d), Month(d) + 1, 0)
End Function
- Закройте редактор и назначьте макрос на кнопку (
Вставка → Кнопкав старой версии илиРазработчик → Вставить → Кнопка).
Способ 3: Power Query с параметрами
Если вы используете Power Query, можно создать параметр для даты и связать его с фильтром:
- В редакторе Power Query перейдите на вкладку
Управление параметрами→Создать параметр. - Задайте имя (например,
ДатаНачала) и типДата/время. - В фильтре столбца с датами выберите
Дата/время фильтры → Послеи укажите ваш параметр. - Теперь при обновлении запроса можно менять дату в параметре, не редактируя сам фильтр.
Автоматизация экономит время и снижает риск ошибок. Например, ежемесячный отчёт можно настроить так, чтобы он самостоятельно обновлялся при открытии файла — достаточно добавить макрос в событие Да, но нужно учитывать, что ExcelWorkbook_Open.
FAQ: Ответы на частые вопросы
Можно ли фильтровать даты по времени (часам и минутам)?
- Используйте пользовательский фильтр с условиями:
- 🕘 Больше или равно: 01.01.1900 9:00
- 🕒 И меньше или равно: 01.01.1900 18:00
=И(ВРЕМЯ(A2)>=ВРЕМЯ(9;0;0); ВРЕМЯ(A2)<=ВРЕМЯ(18;0;0)).Обратите внимание: если в ячейке только время без даты, Excel воспринимает его как дату 01.01.1900.
Как фильтровать даты по неделям (например, только чётные недели)?
Для этого используйте функцию НОМНЕДЕЛИ в пользовательском столбце или условном форматировании:
- Добавьте вспомогательный столбец с формулой:
=НОМНЕДЕЛИ(A2;2)(где2— система нумерации недель, начиная с понедельника). - Примените фильтр к этому столбцу: чётные недели —
=ЧЁТН(B2), нечётные —=НЕЧЁТ(B2).
Альтернатива: в Power Query добавьте столбец с номером недели и отфильтруйте его.
Почему при фильтрации дат некоторые строки пропадают, хотя должны остаться?
Вероятные причины:
- 🔹 В столбце смешаны форматы дат (например, текст и настоящие даты). Проверьте через
Формат ячеек. - 🔹 В данных есть скрытые символы (пробелы, переносы строк). Используйте
СЖПРОБЕЛЫиПЕЧСИМВдля