Фильтр по дате в Excel: 5 способов отсортировать данные за нужный период

Работа с датами в Microsoft Excel — одна из самых востребованных задач среди аналитиков, бухгалтеров и менеджеров. Только представьте: у вас таблица с тысячами строк продаж, заказов или посещений, и нужно срочно выделить данные за последний квартал или найти просроченные задачи. Вручную пролистывать такие объёмы — неблагодарное занятие. К счастью, в Excel есть мощные инструменты фильтрации по датам, которые экономят часы работы.

Но здесь кроется подвох: многие пользователи ограничиваются базовым автофильтром, даже не подозревая о существовании динамических фильтров, условного форматирования по датам или расширенного фильтра с формулами. Эта статья раскроет все секреты — от элементарного до продвинутого уровня. Вы научитесь не только фильтровать даты, но и автоматизировать процесс, чтобы таблицы обновлялись в один клик.

А знаете ли вы, что Excel хранит даты как числа, где 1 января 1900 года = 1, а каждая последующая дата — это количество дней с той поры? Это знание объясняет, почему иногда фильтры работают не так, как ожидалось, и как исправить типичные ошибки.

1. Базовый фильтр по дате: автофильтр за 3 клика

Начнём с самого простого — встроенного автофильтра. Этот метод подходит для 90% задач и работает во всех версиях Excel от 2010 до 2026, включая Office 365 и онлайн-версию.

Чтобы активировать фильтр:

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

Теперь перед вами меню с опциями фильтрации. Для дат доступны специальные группы:

  • 📅 Фильтры по дате — здесь можно выбрать готовые периоды:"Завтра","На этой неделе","В прошлом месяце" и т.д.
  • 📊 Числовые фильтры — позволяет задавать условия типа"больше чем","между","первые 10 элементов".
  • 🔍 Текстовые фильтры — полезно, если даты хранятся как текст (например,"01.01.2026").

Выделить таблицу с заголовками|Включить фильтр (Ctrl+Shift+L)|Кликнуть по стрелке в столбце с датой|Выбрать"Фильтры по дате" → нужный период|Применить фильтр

-->

Пример: чтобы отобразить продажи за текущий месяц, выберите Фильтры по дате → Этот месяц. Excel автоматически определит диапазон с 1-го числа по сегодняшнюю дату.

⚠️ Внимание: Если в столбце смешаны форматы дат (например,"01.01.2026" и"01-янв-2026"), автофильтр может работать некорректно. Преобразуйте данные в единый формат через Формат ячеек → Дата.

2. Продвинутая фильтрация: пользовательский автофильтр

Готовые фильтры удобны, но что делать, если нужно отобразить данные за нестандартный период? Например, с 15 марта по 10 апреля 2026 года? Здесь поможет пользовательский автофильтр.

Инструкция:

  1. Кликните по стрелке фильтра в столбце с датами.
  2. Выберите Числовые фильтры → Настраиваемый фильтр (или Фильтры по дате → Настраиваемый фильтр в новых версиях).
  3. В открывшемся окне укажите условия. Например:
    • 📅 Больше или равно: 15.03.2026
    • 📅 ИМеньше или равно: 10.04.2026
  • Нажмите ОК.
  • Такой фильтр поддерживает до двух условий одновременно (с операторами И/ИЛИ). Например, можно отобразить данные за январь ИЛИ декабрь 2023 года:

    • 📅 Первое условие: Больше или равно 01.01.2023 И Меньше или равно 31.01.2023
    • 📅 Второе условие (оператор ИЛИ): Больше или равно 01.12.2023 И Меньше или равно 31.12.2023
    📊 Какой формат дат вы используете чаще всего?
    ДД.ММ.ГГГГ
    ММ/ДД/ГГГГ
    ДД-МММ-ГГ (например, 01-янв-24)
    Другой

    Профи-фишка: Если нужно фильтровать по дню недели (например, только понедельники), используйте формулу =ТЕКСТ(A2;"dddd")="понедельник" в расширенном фильтре (об этом — в следующем разделе).

    3. Расширенный фильтр: когда автофильтра недостаточно

    Автофильтр ограничен двумя условиями и не умеет работать с формулами. Если вам нужно:

    • 📌 Фильтровать по нескольким критериям (например, дата + категория + сумма).
    • 📌 Использовать формулы в условиях (например,"даты старше 30 дней").
    • 📌 Сохранять результаты фильтрации в новом месте (не скрывая оригинальные данные).

    — приходит на помощь расширенный фильтр.

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

    1. Создайте диапазон критериев (обычно над или рядом с таблицей). Например:
      
      

      A1:"Дата" | B1:"Категория" | C1:"Сумма"

      A2:">01.01.2026" | B2:"Электроника" | C2:">1000"

      Здесь мы ищем записи, где дата позже 1 января 2026, категория —"Электроника", а сумма больше 1000.

    2. Перейдите на вкладку ДанныеСортировка и фильтрРасширенный фильтр.
    3. Укажите:
      • 📍 Исходный диапазон — ваша таблица с данными.
      • 📍 Диапазон условий — ячейки с критериями (в нашем примере A1:C2).
      • 📍 Отметьте Скопировать результат в другое место, если нужно сохранить отфильтрованные данные отдельно.
  • Нажмите ОК.
  • Пример с формулой: чтобы отобразить просроченные задачи (даты раньше сегодняшней), в ячейке критерия укажите:

    =A2

    где A2 — первая ячейка столбца с датами.

    Как работает формула TSEGODNYA

    Функция ТСЕГОДНЯ (или TODAY в английской версии) возвращает текущую дату и обновляется автоматически при каждом открытии файла. Это значит, что фильтр с такой формулой будет всегда актуальным — не нужно вручную менять даты!

    Тип критерия Пример записи Результат
    Диапазон дат >=01.01.2026
    <=31.01.2026
    Данные за январь 2026
    Конкретные даты 05.05.2026
    10.05.2026
    Только записи от 5 и 10 мая
    Динамическая дата =A2>ТСЕГОДНЯ-30 Данные за последние 30 дней
    День недели =ТЕКСТ(A2;"dddd")="среда" Все среды в таблице
    ⚠️ Внимание: Если при применении расширенного фильтра вы видите ошибку #ЗНАЧ!, проверьте:
    • 🔹 Совпадают ли заголовки столбцов в исходной таблице и диапазоне критериев.
    • 🔹 Нет ли пустых строк в диапазоне условий.
    • 🔹 Правильно ли указаны абсолютные ссылки (например, $A$2 вместо A2).

    4. Фильтрация по датам с помощью сводных таблиц

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

    Как создать сводную таблицу с фильтром по дате:

    1. Выделите исходную таблицу (включая заголовки).
    2. Перейдите на вкладку ВставкаСводная таблица.
    3. В открывшемся окне укажите, куда поместить сводную таблицу (на новый лист или в текущий).
    4. В панели Поля сводной таблицы перетащите:
      • 📅 Столбец с датами в область Строки.
      • 📊 Данные для анализа (например, суммы продаж) в область Значения.
  • Кликните правой кнопкой по дате в сводной таблице → Группировать → выберите период (дни, месяцы, кварталы).
  • Используйте срезы (вкладка Анализ сводной таблицыВставить срез), чтобы добавить интерактивные фильтры.
  • Пример: У вас есть данные о продажах за 3 года. Сводная таблица позволит:

    • 📈 Сгруппировать продажи по кварталам и сравнить динамику.
    • 🎯 Отфильтровать только те кварталы, где продажи превысили целевой показатель.
    • 📊 Построить график прямо в сводной таблице (вкладка АнализСводная диаграмма).

    Преимущество сводных таблиц в том, что они динамически обновляются при изменении исходных данных. Достаточно кликнуть правой кнопкой по таблице и выбрать Обновить.

    5. Условное форматирование: визуальная фильтрация дат

    Иногда нужно не скрывать данные, а выделить их — например, просроченные задачи или пиковые дни продаж. Здесь поможет условное форматирование.

    Как выделить ячейки по дате:

    1. Выделите столбец с датами.
    2. Перейдите на вкладку ГлавнаяУсловное форматированиеСоздать правило.
    3. Выберите Использовать формулу для определения форматируемых ячеек.
    4. Введите формулу. Примеры:
      • 🔴 Для просроченных задач: =A2
      • 🟢 Для дат в текущем месяце: =И(МЕСЯЦ(A2)=МЕСЯЦ(ТСЕГОДНЯ); ГОД(A2)=ГОД(ТСЕГОДНЯ))
      • 🟡 Для выходных дней: =ИЛИ(ДЕНЬНЕД(A2)=7; ДЕНЬНЕД(A2)=1) (7 — воскресенье, 1 — понедельник в некоторых локалях).
  • Задайте формат (например, красный фон для просроченных дат).
  • Нажмите ОК.
  • Такой подход позволяет визуально анализировать данные без скрытия строк. Например, в отчёте о продажах можно сразу увидеть:

    • 📅 Красным — дни с нулевыми продажами.
    • 📅 Зелёным — дни с рекордами.
    • 📅 Жёлтым — выходные.

    Для более сложных правил используйте комбинации функций:

    • ДЕНЬНЕД — возвращает номер дня недели (1–7).
    • МЕСЯЦ — номер месяца (1–12).
    • ГОД — год.
    • СЕГОДНЯ — текущая дата.

    6. Фильтрация дат с помощью Power Query (для больших данных)

    Если вы работаете с большими таблицами (десятки тысяч строк) или данными из внешних источников (например, SQL, CSV), обычные фильтры Excel могут тормозить. В этом случае используйте Power Query — инструмент для преобразования и очистки данных.

    Инструкция по фильтрации дат в Power Query:

    1. Выделите таблицу → вкладка ДанныеИз таблицы/диапазона (в группе Получить и преобразовать данные).
    2. Откроется редактор Power Query. Выделите столбец с датами.
    3. Кликните по стрелке фильтра в заголовке столбца → выберите нужный критерий (например, После и укажите дату).
    4. Для сложных фильтров используйте Добавить столбец → Пользовательский столбец. Например, чтобы создать флаг для просроченных задач:
      if [Дата] < DateTime.LocalNow then"Просрочено" else"Активно"
    5. Нажмите Закрыть и загрузить, чтобы вернуть отфильтрованные данные в 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).
    • 🔹 Решение: Замените ссылки на абсолютные (с символом $) или обновите правила вручную (Управление правилами → Изменить правило).
    ⚠️ Внимание: Если вы импортируете данные из внешних источников (например, или SQL), даты могут приходить в нестандартном формате. Всегда проверяйте их корректность через Формат ячеек перед фильтрацией.

    8. Автоматизация: как сделать фильтры динамическими

    Ручная фильтрация утомительна, если её приходится повторять ежедневно. К счастью, в Excel можно автоматизировать процесс с помощью макросов или динамических диапазонов.

    Способ 1: Динамические именованные диапазоны

    Создайте именованный диапазон, который автоматически обновляется при изменении данных:

    1. Перейдите на вкладку ФормулыДиспетчер имёнСоздать.
    2. Задайте имя (например, ДатаОтчета).
    3. В поле Диапазон введите формулу:
      =ФИЛЬТР(Таблица1[Дата]; Таблица1[Дата]>=ТСЕГОДНЯ-30)

      Здесь Таблица1[Дата] — столбец с датами, а ТСЕГОДНЯ-30 отбирает последние 30 дней.

    4. Теперь используйте это имя в формулах или сводных таблицах — оно будет обновляться автоматически.

    Способ 2: Макрос для быстрой фильтрации

    Запишите простой макрос, который применяет фильтр по текущему месяцу:

    1. Нажмите Alt + F11, чтобы открыть редактор VBA.
    2. Вставьте новый модуль (Insert → Module).
    3. Скопируйте код:
      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

    4. Закройте редактор и назначьте макрос на кнопку (Вставка → Кнопка в старой версии или Разработчик → Вставить → Кнопка).

    Способ 3: Power Query с параметрами

    Если вы используете Power Query, можно создать параметр для даты и связать его с фильтром:

    1. В редакторе Power Query перейдите на вкладку Управление параметрамиСоздать параметр.
    2. Задайте имя (например, ДатаНачала) и тип Дата/время.
    3. В фильтре столбца с датами выберите Дата/время фильтры → После и укажите ваш параметр.
    4. Теперь при обновлении запроса можно менять дату в параметре, не редактируя сам фильтр.

    Автоматизация экономит время и снижает риск ошибок. Например, ежемесячный отчёт можно настроить так, чтобы он самостоятельно обновлялся при открытии файла — достаточно добавить макрос в событие Workbook_Open.

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

    Можно ли фильтровать даты по времени (часам и минутам)?

    Да, но нужно учитывать, что Excel хранит дату и время как одно число (дробная часть — время). Например, чтобы отфильтровать записи с 9:00 до 18:00:

    1. Используйте пользовательский фильтр с условиями:
      • 🕘 Больше или равно: 01.01.1900 9:00
      • 🕒 И меньше или равно: 01.01.1900 18:00
  • Или примените формулу в расширенном фильтре: =И(ВРЕМЯ(A2)>=ВРЕМЯ(9;0;0); ВРЕМЯ(A2)<=ВРЕМЯ(18;0;0)).
  • Обратите внимание: если в ячейке только время без даты, Excel воспринимает его как дату 01.01.1900.

    Как фильтровать даты по неделям (например, только чётные недели)?

    Для этого используйте функцию НОМНЕДЕЛИ в пользовательском столбце или условном форматировании:

    1. Добавьте вспомогательный столбец с формулой: =НОМНЕДЕЛИ(A2;2) (где 2 — система нумерации недель, начиная с понедельника).
    2. Примените фильтр к этому столбцу: чётные недели — =ЧЁТН(B2), нечётные — =НЕЧЁТ(B2).

    Альтернатива: в Power Query добавьте столбец с номером недели и отфильтруйте его.

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

    Вероятные причины:

    • 🔹 В столбце смешаны форматы дат (например, текст и настоящие даты). Проверьте через Формат ячеек.
    • 🔹 В данных есть скрытые символы (пробелы, переносы строк). Используйте СЖПРОБЕЛЫ и ПЕЧСИМВ для