Как фильтровать даты в Excel: от базовых методов до продвинутых техник

Почему фильтрация дат в Excel требует особого подхода

Данные с датами — основа аналитики в Microsoft Excel и Google Sheets. От финансовых отчётов до логистических графиков: без точной фильтрации по датам невозможно построить корректные выводы. Однако многие пользователи сталкиваются с проблемами: почему автофильтр не показывает все записи за квартал? Как исключить выходные дни из анализа? Или почему формула ФИЛЬТР возвращает ошибку #ЗНАЧ! при работе с диапазоном дат?

Дело в том, что Excel воспринимает даты не как текст, а как числовые значения (количество дней с 1 января 1900 года). Эта особенность открывает широкие возможности для фильтрации, но требует знания нюансов. Например, попытка отфильтровать даты как текст ("01.01.2026" вместо 45292) приведёт к ошибкам. В этой статье разберём 7 рабочих методов — от простых до автоматизированных — с учётом типичных ошибок и лайфхаков для ускорения работы.

Метод 1: Автофильтр — быстрый способ для новичков

Самый доступный инструмент — встроенный автофильтр. Он подходит для одноразовой фильтрации без формул. Чтобы его активировать:

  1. Выделите заголовок столбца с датами (например, A1 с названием "Дата").
  2. Перейдите на вкладку ДанныеФильтр (или нажмите Ctrl+Shift+L).
  3. Нажмите на стрелку вниз в ячейке с датой и выберите Фильтры по дате.

Здесь доступны готовые варианты:

  • 📅 Завтра/Сегодня/Вчера — динамические фильтры, обновляющиеся при пересчёте листа.
  • 📊 Этот квартал/год — автоматически определяет текущий период.
  • 🔍 Настраиваемый фильтр — для ручного ввода диапазона (например, ">=01.01.2026" и "<=31.03.2026").
  • 🗑️ Первые/Последние 10... — фильтрация по относительному количеству записей.

Ограничение метода: автофильтр не сохраняет настройки при закрытии файла. Для постоянных фильтров используйте расширенный фильтр или таблицы Excel.

Метод 2: Расширенный фильтр — для сложных условий

Когда нужно отфильтровать данные по нескольким критериям (например, даты и суммы продаж), автофильтр бессилен. Здесь поможет расширенный фильтр:

  1. Создайте диапазон условий над или рядом с таблицей. Например:
    A1: "Дата" | B1: "Сумма"
    

    A2: ">01.01.2026" | B2: ">1000"

  2. Выделите исходную таблицу (включая заголовки).
  3. Перейдите в ДанныеСортировка и фильтрДополнительно.
  4. В поле Исходный диапазон укажите адрес таблицы, в Диапазон условий — адрес созданных критериев.
  5. Выберите Фильтровать список на месте или Скопировать результат в другое место.

Преимущество метода: можно комбинировать условия с логическими операторами (И, ИЛИ). Например, чтобы показать записи за январь 2026 ИЛИ март 2026, создайте два блока условий:

ДатаДата
>=01.01.2026<=31.01.2026
>=01.03.2026<=31.03.2026

Метод 3: Фильтрация по динамическим диапазонам (ТДАТА, СЕГОДНЯ)

Для анализа "плавающих" периодов (например, "последние 30 дней" или "текущий месяц") используйте функции даты в комбинации с автофильтром или формулами. Ключевые функции:

  • 📅 =СЕГОДНЯ() — возвращает текущую дату (обновляется при пересчёте).
  • 🗓️ =ТДАТА() — текущие дата и время (точнее, чем СЕГОДНЯ).
  • 🔄 =ДАТАМЕС(СЕГОДНЯ();-1) — первый день предыдущего месяца.
  • 📊 =КОНМЕСЯЦА(СЕГОДНЯ();0) — последний день текущего месяца.

Пример: чтобы отфильтровать записи за последнюю неделю, создайте столбец с формулой:

=И(A2>=СЕГОДНЯ()-7; A2<=СЕГОДНЯ())

Затем примените автофильтр к этому столбцу, выбрав значение ИСТИНА.

📊 Какой метод фильтрации дат вы используете чаще?
Автофильтр
Расширенный фильтр
Формулы (ФИЛЬТР, ЕСЛИ)
Условное форматирование
Сводные таблицы

Критическая ошибка: функции СЕГОДНЯ() и ТДАТА() не фиксируются при копировании как значения. Если вам нужно "заморозить" текущую дату, используйте Специальная вставка → Значения (Ctrl+Alt+V → В).

Метод 4: Формулы ФИЛЬТР и ЕСЛИ для гибкой выборки

В Excel 365 и Excel 2021 появилась революционная функция ФИЛЬТР, которая заменяет многие старые методы. Синтаксис:

=ФИЛЬТР(диапазон; условие1; [условие2]; ...)

Примеры использования:

  • 📌 Все даты за 2026 год:
    =ФИЛЬТР(A2:B100; ГОД(A2:A100)=2026)
  • 📌 Дата + сумма > 5000:
    =ФИЛЬТР(A2:C100; (A2:A100>=ДАТА(2026;1;1))*(C2:C100>5000))
  • 📌 Последняя запись в таблице:
    =ИНДЕКС(ФИЛЬТР(A2:B100; A2:A100<>""); СТРОКА()-1; 2)

Для старых версий Excel используйте комбинацию ЕСЛИ + ИНДЕКС + ПОИСКПОЗ:

=ЕСЛИОШИБКА(ИНДЕКС($B$2:$B$100; ПОИСКПОЗ(ИСТИНА; --($A$2:$A$100>=ДАТА(2026;1;1)); 0)); "")
Почему функция ФИЛЬТР возвращает #ЗНАЧ!?

Наиболее частая причина — несовпадение размеров диапазонов. Например, если в формуле =ФИЛЬТР(A2:A100; B2:B50="Да") второй диапазон (B2:B50) короче первого (A2:A100), Excel вернёт ошибку. Все диапазоны в ФИЛЬТР должны быть одинаковой длины.

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

Если нужно выделить даты, а не скрыть, используйте условное форматирование. Алгоритм:

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

    Убедитесь, что ячейки имеют формат "Дата" (Ctrl+1)

    Проверьте отсутствие пустых ячеек в диапазоне

    Отсортируйте данные по дате для наглядности

    Создайте резервную копию файла перед массовыми изменениями-->

    ⚠️

    Внимание: Условное форматирование не фильтрует данные, а только визуально их выделяет. Чтобы работать с отфильтрованным набором, используйте комбинацию с автофильтром: сначала примените форматирование, затем отфильтруйте по цвету ячейки (Фильтр по цвету).

    Метод 6: Сводные таблицы для анализа временных рядов

    Для группировки дат по месяцам, кварталам или годам сводные таблицы — оптимальный инструмент. Пошаговая инструкция:

    1. Выделите исходную таблицу (включая заголовки).
    2. Нажмите ВставкаСводная таблица.
    3. В поле Строки перетащите столбец с датами.
    4. Щёлкните правой кнопкой по любой дате в сводной таблице → Группировать.
    5. Выберите интервал группировки: Дни, Месяцы, Кварталы или Годы.
    6. Дополнительные возможности:

      • 📈 Динамические названия: Используйте срезы (Вставка → Срез) для интерактивной фильтрации.
      • 🔍 Вычисляемые поля: Добавьте столбец с формулой (например, =СУММ(Продажи)/30 для среднедневного объёма).
      • 📊 Графики: На основе сводной таблицы строятся динамические графики, обновляющиеся при изменении фильтров.

    ⚠️

    Внимание: При группировке дат в сводной таблице Excel создаёт скрытые столбцы с границами интервалов. Если исходные данные обновляются, группировку нужно пересоздавать вручную (или использовать Power Query для автоматизации).

    Метод 7: Power Query для автоматизации фильтрации

    Для обработки больших массивов данных (тысячи строк) или регулярных отчётов Power Query (вкладка ДанныеПолучить данные) экономит часы работы. Пример: импорт данных с фильтрацией по дате:

    1. Загрузите данные в Power Query (ДанныеИз таблицы/диапазона).
    2. Выделите столбец с датами, нажмите на стрелку в заголовке → Фильтры по дате.
    3. Выберите нужный диапазон (например, После и укажите 01.01.2026).
    4. Добавьте дополнительные шаги (например, удаление пустых строк или замена форматов).
    5. Нажмите Закрыть и загрузить, чтобы вернуть отфильтрованные данные в Excel.

    Преимущества Power Query:

    • 🔄 Автоматизация: Запрос сохраняется и обновляется при изменении исходных данных (ДанныеОбновить все).
    • 📂 Множественные источники: Можно объединять данные из нескольких файлов или баз.
    • 🛠️ Предварительная обработка: Исправление ошибок в датах (например, текст "31.02.2026" → корректная дата).

    Пример кода на языке M для фильтрации дат в Power Query:

    let
    

    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],

    ФильтрДаты = Table.SelectRows(Источник, each [Дата] >= #date(2026, 1, 1) and [Дата] <= #date(2026, 3, 31))

    in

    ФильтрДаты

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

    Почему автофильтр не показывает все даты за месяц?

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

    1. Ячейки отформатированы как текст. Проверьте формат (Ctrl+1) и при необходимости используйте =ДАТАЗНАЧ(A1) для преобразования.
    2. В данных есть скрытые символы (пробелы, переносы). Используйте =ПЕЧСИМВ(A1) для очистки.
    3. Диапазон фильтра не включает все строки. Расширьте таблицу до последней заполненной ячейки (Ctrl+Shift+↓).
    Как отфильтровать даты без учёта времени?

    Если в ячейках хранятся дата и время (например, 01.01.2026 14:30), используйте:

    • Формулу: =ЦЕЛОЕ(A1) для извлечения только даты.
    • Автофильтр с условием: =01.01.2026" (Excel проигнорирует время).
    • Формат ячеек: выберите формат "Дата" без отображения времени.
    Можно ли фильтровать даты по дню недели?

    Да, с помощью функции ДЕНЬНЕД:

    1. Создайте вспомогательный столбец с формулой =ДЕНЬНЕД(A1; 2) (2 — понедельник=1, воскресенье=7).
    2. Примените автофильтр к этому столбцу, выбрав нужный номер дня.

    Для условного форматирования выходных используйте формулу: =ИЛИ(ДЕНЬНЕД(A1)=7; ДЕНЬНЕД(A1)=1).

    Как сохранить фильтр для повторного использования?

    Способы сохранения настроек:

    • 📋 Таблицы Excel: Преобразуйте диапазон в таблицу (Ctrl+T). Фильтры сохранятся при открытии файла.
    • 🖼️ Срезы: Создайте срез для сводной таблицы (Вставка → Срез).
    • 📁 Шаблоны: Сохраните файл как шаблон (.xltx) с предварительно настроенными фильтрами.
    Почему функция ФИЛЬТР не работает в моей версии Excel?

    Функция ФИЛЬТР доступна только в:

    • Excel 365 (подписка Microsoft 365).
    • Excel 2021 (однократная покупка).
    • Excel для веб (онлайн-версия).

    Для Excel 2019 и старше используйте альтернативы:

    =ИНДЕКС($B$2:$B$100; ПОИСКПОЗ(ИСТИНА; --($A$2:$A$100>=ДАТА(2026;1;1)); 0))