Как в 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.