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

Фильтрация данных по временным интервалам в Microsoft Excel — одна из самых востребованных операций при работе с отчётами, журналами событий или временными рядами. Вы когда-нибудь пытались выделить записи за конкретный час, найти пиковые нагрузки по дням недели или проанализировать динамику продаж в определённом квартале? Без правильных инструментов это превращается в рутинную работу с ручным просмотром тысяч строк.

К счастью, Excel предлагает минимум 7 способов фильтрации по времени — от базового автофильтра до продвинутых формул и Power Query. Главная проблема: большинство пользователей ограничиваются стандартными настройками, не подозревая о скрытых возможностях. Например, знали ли вы, что можно фильтровать данные по часам и минутам даже если в ячейках записаны полные даты? Или что условное форматирование поможет визуально выделить временные аномалии за секунды?

В этой статье мы разберём все актуальные методы — от простых до профессиональных, — с учётом нюансов разных версий Excel (включая Excel 365 и Excel 2021). Вы научитесь фильтровать не только по датам, но и по времени суток, рабочим/выходным дням, а также создавать динамические фильтры, которые обновляются автоматически.

1. Базовая фильтрация по дате и времени через автофильтр

Начнём с самого очевидного — встроенного автофильтра. Этот метод подходит для 90% задач, когда нужно быстро отсеять данные по дате или времени без формул. Главное преимущество: не требует знания функций и работает во всех версиях Excel начиная с 2007 года.

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

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

Вот что можно сделать через стандартный фильтр:

  • 📅 Фильтрация по датам: "Равно...", "До...", "После...", "Между...", "Последние 7 дней" и т.д.
  • ⏰ Фильтрация по времени: "Утро" (до 12:00), "День" (12:00–17:00), "Вечер" (после 17:00) — если в ячейках записано время.
  • 📊 Группировка: по годам, кварталам, месяцам или дням (полезно для сводных таблиц).

Нюанс с временными данными: если в ячейке записана полная дата с временем (например, 15.05.2026 14:30), то при фильтрации по времени Excel будет учитывать только временную часть. То есть фильтр "После 12:00" покажет все записи, где время больше полудня, независимо от даты.

⚠️ Внимание: Если после применения фильтра данные не отображаются, проверьте формат ячеек. Частая ошибка — когда даты хранятся как текст (например, после импорта из CSV). Исправьте формат через Главная → Формат → Формат ячеек → Дата/Время.
📊 Как часто вы используете фильтрацию по времени в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

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

Стандартные фильтры не всегда гибкие. Например, как отфильтровать записи за последний час рабочего дня (с 17:00 до 18:00) или выделить все транзакции, совершённые в первые 10 минут каждого часа? Здесь поможет пользовательский автофильтр.

Инструкция:

  1. Активируйте фильтр для столбца с временем (как в предыдущем разделе).
  2. В меню фильтра выберите Числовые фильтры → Настраиваемый фильтр (да, даже для времени!).
  3. В открывшемся окне укажите условия. Например, для фильтрации с 17:00 до 18:00:
    =ВРЕМЯ(17;0;0)  И  <=ВРЕМЯ(18;0;0)

Другие полезные примеры пользовательских фильтров:

  • ⏱️ Первые 15 минут часа: =ВРЕМЯ(ЧАС(A2);0;0) И <=ВРЕМЯ(ЧАС(A2);15;0) (где A2 — ячейка с временем).
  • 🌙 Ночное время (с 22:00 до 6:00): используйте два условия с оператором ИЛИ:
    =ВРЕМЯ(22;0;0)  ИЛИ  <=ВРЕМЯ(6;0;0)
  • 📅 Выходные дни: =ДЕНЬНЕД(A2)>5 (где 1=понедельник, 7=воскресенье).

Критическая деталь: при фильтрации по времени в пользовательском фильтре всегда используйте функцию ВРЕМЯ(), даже если в ячейках хранятся полные даты. В противном случае Excel будет сравнивать даты целиком, а не только временную часть.

Проверьте формат ячеек (должен быть "Время" или "Дата")

Убедитесь, что в столбце нет пустых ячеек

Используйте функцию ВРЕМЯ() для сравнения временных интервалов

Тестируйте фильтр на копии данных-->

3. Фильтрация по времени с помощью формул

Когда автофильтр бессилен (например, нужно отфильтровать данные по динамическому интервалу или применить сложную логику), на помощь приходят формулы. Рассмотрим три ключевых подхода:

3.1. Фильтр с функцией ФИЛЬТР (Excel 365 и 2021)

Самый современный способ — использовать динамическую формулу массива ФИЛЬТР. Она автоматически обновляет результат при изменении исходных данных.

Пример: отфильтруем записи за сегодняшний день из столбца A2:A100 (даты) и вернём соответствующие значения из B2:B100:

=ФИЛЬТР(B2:B100; A2:A100=СЕГОДНЯ(); "Нет данных")

3.2. Фильтрация по часам с функцией ЕСЛИОШИБКА

Если нужно вывести данные только за определённый час (например, с 14:00 до 15:00), используйте:

=ЕСЛИОШИБКА(ФИЛЬТР(B2:B100; ЧАС(A2:A100)=14); "Нет записей")

3.3. Фильтр по рабочим дням

Чтобы исключить выходные, комбинируйте ФИЛЬТР с ДЕНЬНЕД:

=ФИЛЬТР(B2:B100; (ДЕНЬНЕД(A2:A100;2)<6); "Выходной")

Здесь ДЕНЬНЕД(...,2) возвращает 1 для понедельника и 7 для воскресенья, а условие <6 отсеивает субботу и воскресенье.

⚠️ Внимание: Формулы массива (вроде ФИЛЬТР) могут значительно замедлить работу книги, если применяются к большим диапазонам (10 000+ строк). В таких случаях лучше использовать Power Query (см. раздел 5).
Задача Формула Пример результата
Данные за сегодня =ФИЛЬТР(B2:B100; A2:A100=СЕГОДНЯ()) Все записи с текущей датой
Записи с 9:00 до 12:00 =ФИЛЬТР(B2:B100; (ВРЕМЯ(9;0;0)<=A2:A100)*(A2:A100<=ВРЕМЯ(12;0;0))) Утренние транзакции
Выходные дни =ФИЛЬТР(B2:B100; ДЕНЬНЕД(A2:A100;2)>5) Записи за субботу и воскресенье
Последний час каждого дня =ФИЛЬТР(B2:B100; МИНУТЫ(A2:A100)>=59) Записи с 23:59

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

Иногда достаточно просто выделить ячейки, соответствующие временному критерию, не скрывая остальные данные. Для этого идеально подходит условное форматирование.

Пример 1: Выделение записей за последний час

  1. Выделите диапазон с данными (например, A2:B100).
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу для определения форматируемых ячеек.
  4. Введите формулу:
    =И($A2>=СЕГОДНЯ()+ВРЕМЯ(ЧАС(СЕЙЧАС());0;0); $A2<=СЕЙЧАС())

    Здесь $A2 — первая ячейка столбца с датой/временем.

  5. Задайте формат (например, зелёный фон) и нажмите ОК.

Пример 2: Цветовая шкала по времени суток

  • 🌅 Утро (6:00–12:00): жёлтый фон.
  • 🌇 День (12:00–18:00): оранжевый фон.
  • 🌃 Вечер (18:00–24:00): синий фон.
  • 🌙 Ночь (0:00–6:00): тёмно-серый фон.

Для этого создайте 4 отдельных правила условного форматирования с формулами:

=И(ЧАС($A2)>=6; ЧАС($A2)<12)  

=И(ЧАС($A2)>=12; ЧАС($A2)<18)

=И(ЧАС($A2)>=18; ЧАС($A2)<24)

=ИЛИ(ЧАС($A2)<6; ЧАС($A2)=0)

Преимущество этого метода: данные остаются видимыми, но критические временные интервалы сразу бросаются в глаза. Это особенно полезно для журналов событий, где важно оперативно реагировать на записи в нерабочее время.

Как применить условное форматирование к новой строке автоматически?

Используйте таблицу Excel (Ctrl+T). Условное форматирование, применённое к таблице, автоматически распространится на новые строки. Альтернатива — использовать диапазон с запасом (например, A2:B1000 вместо A2:B100).

5. Power Query: фильтрация больших массивов данных

Если вы работаете с десятками тысяч строк (например, логами сервера или историей транзакций), автофильтр и формулы станут тормозить. Здесь на помощь приходит Power Query — инструмент для обработки и трансформации данных, встроенный в Excel 2016+.

Пошаговая инструкция для фильтрации по времени:

  1. Выделите исходные данные и перейдите на вкладку Данные → Из таблицы/диапазона (в Excel 2016–2019) или Получить данные → Из таблицы/диапазона (в Excel 365).
  2. В открывшемся редакторе Power Query выделите столбец с датой/временем.
  3. Нажмите на стрелку фильтра в заголовке столбца и выберите:
    • 📅 Фильтры по дате: "Между", "После", "В этом квартале" и т.д.
    • ⏰ Фильтры по времени: "Утро", "День", "Вечер" (если в данных есть временная часть).
    • ⚙️ Пользовательский фильтр: для сложных условий (например, #datetime(2026,5,15,14,0,0) <= [Дата] and [Дата] <= #datetime(2026,5,15,15,0,0) для фильтрации с 14:00 до 15:00 15 мая 2026).
  • После настройки фильтров нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.
  • Преимущества Power Query:

    • ⚡ Обрабатывает миллионы строк без зависаний.
    • 🔄 Сохраняет шаги трансформации: при обновлении исходных данных фильтры применяются автоматически.
    • 📊 Позволяет объединять данные из нескольких источников перед фильтрацией.
    ⚠️ Внимание: В Power Query даты и время указываются в формате #datetime(год, месяц, день, час, минута, секунда). Если вы скопируете дату из Excel в фильтр, она не сработает — нужно вручную прописать конструкцию #datetime.

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

    Сводные таблицы (PivotTable) — мощный инструмент для анализа временных данных, особенно когда нужно группировать записи по периодам (часы, дни, месяцы). Вот как настроить фильтрацию:

    Шаг 1. Создайте сводную таблицу

    1. Выделите исходные данные (включая заголовки).
    2. Перейдите на вкладку Вставка → Сводная таблица.
    3. Укажите, куда поместить таблицу (на новый лист или существующий).

    Шаг 2. Настройте группировку по времени

    • Перетащите столбец с датой/временем в область Строки или Столбцы.
    • Щёлкните правой кнопкой по любому элементу в столбце дат и выберите Группировка.
    • В открывшемся окне укажите интервалы группировки:
      • 📅 По дням, месяцам, кварталам или годам.
      • ⏰ По часам, минутам или секундам (если в данных есть временная часть).
    • Нажмите ОК — данные будут сгруппированы.

    Шаг 3. Добавляем фильтры

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

    1. Перетащите столбец с датой в область Фильтры.
    2. Щёлкните по стрелке фильтра и выберите нужный диапазон (например, "Между" для указания начальной и конечной даты).

    Продвинутый приём: если нужно анализировать данные по дням недели, добавьте в исходные данные вспомогательный столбец с формулой =ТЕКСТ(A2;"ДДДД") (где A2 — ячейка с датой). Затем используйте этот столбец в сводной таблице для группировки по понедельникам, вторникам и т.д.

    Тип группировки Пример применения Формула для вспомогательного столбца
    По часам Анализ пиковой нагрузки на сайт =ЧАС(A2)
    По дням недели Продажи по будням vs выходным =ТЕКСТ(A2;"ДДДД")
    По неделям Еженедельная динамика =НОМНЕДЕЛИ(A2)
    По кварталам Квартальная отчётность =ТЕКСТ(A2;"к\"к\")

    7. Динамические фильтры с использованием таблиц Excel

    Если ваши данные оформлены как таблица Excel (Ctrl+T), фильтрация становится гибкой и динамичной. Вот почему это удобно:

    • 🔄 Фильтры автоматически применяются к новым строкам.
    • 📌 Настройки фильтров сохраняются при сортировке.
    • 🔗 Легко связать с другими инструментами (сводные таблицы, Power Query).

    Как создать динамический фильтр по времени:

    1. Преобразуйте диапазон в таблицу: выделите данные и нажмите Ctrl+T (или Главная → Форматировать как таблицу).
    2. Добавьте срезы для удобной фильтрации:
      • Выделите таблицу → вкладка Конструктор → Вставить срезы.
      • Отметьте столбец с датой/временем и нажмите ОК.
      • В появившемся срезе выберите нужные временные интервалы (например, конкретный месяц или час).
  • Для фильтрации по текущему дню/неделе/месяцу добавьте вспомогательный столбец с формулой:
    =И(A2>=СЕГОДНЯ(); A2<СЕГОДНЯ()+1)  

    Затем отфильтруйте таблицу по этому столбцу (значение ИСТИНА).

  • Пример использования: предположим, у вас есть журнал звонков колл-центра с временем начала разговора. С помощью срезов вы можете:

    • 📞 Отобразить звонки только в пиковые часы (например, с 10:00 до 12:00).
    • 📅 Проанализировать динамику по дням недели (больше звонков в пятницу?).
    • ⏳ Выделить звонки длительностью более 5 минут (если есть столбец с продолжительностью).
    ⚠️ Внимание: Если в таблице есть пустые ячейки в столбце с временем, Excel может неправильно применить фильтр. Заполните пробелы значением по умолчанию (например, 0:00) или используйте формулу =ЕСЛИ(A2="";0;A2).

    FAQ: Частые вопросы по фильтрации времени в Excel

    🔍 Почему фильтр по времени не работает, если в ячейках есть дата и время?

    Проблема в том, что Excel хранит дату и время как одно число (дату — целая часть, время — дробная). При фильтрации через автофильтр программа сравнивает полные значения. Решения:

    • Используйте пользовательский фильтр с функцией ВРЕМЯ() (см. раздел 2).
    • Добавьте вспомогательный столбец, извлекающий только время: =A2-ЦЕЛОЕ(A2).
    ⏳ Как отфильтровать данные за последние 30 минут?

    Используйте формулу в пользовательском фильтре:

    =A2 >= СЕЙЧАС()-ВРЕМЯ(0;30;0)

    Для динамического обновления нажмите Данные → Обновить все (или используйте Power Query с параметром текущего времени).

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

    Да. Сначала округлите время до минут с помощью вспомогательного столбца:

    =ОКРВНИЗ(A2;1/(24*60))

    Затем фильтруйте по этому столбцу. Формула отбрасывает секунды, оставляя только часы и минуты.

    🔄 Как сделать так, чтобы фильтр обновлялся автоматически при изменении данных?

    Есть три способа:

    1. Таблицы Excel: преобразуйте диапазон в таблицу (Ctrl+T), фильтры будут применены к новым строкам.
    2. Power Query: при обновлении данных в источнике фильтры применяются заново.
    3. VBA: напишите макрос, который запускается при изменении листа (событие Worksheet_Change).
    🕒 Почему при фильтрации по времени показываются записи за полночь (00:00)?

    Это происходит потому, что Excel воспринимает 00:00 как начало новых суток. Чтобы исключить полночь из фильтра (например, при анализе "ночного" времени с 22:00 до 6:00), используйте два условия с оператором ИЛИ:

    =ИЛИ(ВРЕМЯ(22;0;0)<=A2; A2<=ВРЕМЯ(6;0;0))

    Или разбейте фильтрацию на два этапа: сначала исключите записи с 00:00 до 6:00, затем добавьте интервал с 22:00 до 23:59.