Фильтрация данных по временным интервалам в Microsoft Excel — одна из самых востребованных операций при работе с отчётами, журналами событий или временными рядами. Вы когда-нибудь пытались выделить записи за конкретный час, найти пиковые нагрузки по дням недели или проанализировать динамику продаж в определённом квартале? Без правильных инструментов это превращается в рутинную работу с ручным просмотром тысяч строк.
К счастью, Excel предлагает минимум 7 способов фильтрации по времени — от базового автофильтра до продвинутых формул и Power Query. Главная проблема: большинство пользователей ограничиваются стандартными настройками, не подозревая о скрытых возможностях. Например, знали ли вы, что можно фильтровать данные по часам и минутам даже если в ячейках записаны полные даты? Или что условное форматирование поможет визуально выделить временные аномалии за секунды?
В этой статье мы разберём все актуальные методы — от простых до профессиональных, — с учётом нюансов разных версий Excel (включая Excel 365 и Excel 2021). Вы научитесь фильтровать не только по датам, но и по времени суток, рабочим/выходным дням, а также создавать динамические фильтры, которые обновляются автоматически.
1. Базовая фильтрация по дате и времени через автофильтр
Начнём с самого очевидного — встроенного автофильтра. Этот метод подходит для 90% задач, когда нужно быстро отсеять данные по дате или времени без формул. Главное преимущество: не требует знания функций и работает во всех версиях Excel начиная с 2007 года.
Чтобы активировать фильтр:
- Выделите заголовок столбца с датой/временем (например,
A1с названием "Дата продажи"). - Перейдите на вкладку
Данные→ нажмитеФильтр(или используйте горячие клавишиCtrl+Shift+L). - Щёлкните по стрелке фильтра в заголовке столбца и выберите
Фильтры по дате(илиФильтры по времени, если в ячейках только время).
Вот что можно сделать через стандартный фильтр:
- 📅 Фильтрация по датам: "Равно...", "До...", "После...", "Между...", "Последние 7 дней" и т.д.
- ⏰ Фильтрация по времени: "Утро" (до 12:00), "День" (12:00–17:00), "Вечер" (после 17:00) — если в ячейках записано время.
- 📊 Группировка: по годам, кварталам, месяцам или дням (полезно для сводных таблиц).
Нюанс с временными данными: если в ячейке записана полная дата с временем (например, 15.05.2026 14:30), то при фильтрации по времени Excel будет учитывать только временную часть. То есть фильтр "После 12:00" покажет все записи, где время больше полудня, независимо от даты.
⚠️ Внимание: Если после применения фильтра данные не отображаются, проверьте формат ячеек. Частая ошибка — когда даты хранятся как текст (например, после импорта из CSV). Исправьте формат через Главная → Формат → Формат ячеек → Дата/Время.
2. Продвинутая фильтрация: пользовательский автофильтр
Стандартные фильтры не всегда гибкие. Например, как отфильтровать записи за последний час рабочего дня (с 17:00 до 18:00) или выделить все транзакции, совершённые в первые 10 минут каждого часа? Здесь поможет пользовательский автофильтр.
Инструкция:
- Активируйте фильтр для столбца с временем (как в предыдущем разделе).
- В меню фильтра выберите
Числовые фильтры→Настраиваемый фильтр(да, даже для времени!). - В открывшемся окне укажите условия. Например, для фильтрации с 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: Выделение записей за последний час
- Выделите диапазон с данными (например,
A2:B100). - Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите
Использовать формулу для определения форматируемых ячеек. - Введите формулу:
=И($A2>=СЕГОДНЯ()+ВРЕМЯ(ЧАС(СЕЙЧАС());0;0); $A2<=СЕЙЧАС())Здесь
$A2— первая ячейка столбца с датой/временем. - Задайте формат (например, зелёный фон) и нажмите
ОК.
Пример 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+.
Пошаговая инструкция для фильтрации по времени:
- Выделите исходные данные и перейдите на вкладку
Данные→Из таблицы/диапазона(в Excel 2016–2019) илиПолучить данные → Из таблицы/диапазона(в Excel 365). - В открывшемся редакторе Power Query выделите столбец с датой/временем.
- Нажмите на стрелку фильтра в заголовке столбца и выберите:
- 📅 Фильтры по дате: "Между", "После", "В этом квартале" и т.д.
- ⏰ Фильтры по времени: "Утро", "День", "Вечер" (если в данных есть временная часть).
- ⚙️ Пользовательский фильтр: для сложных условий (например,
#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. Создайте сводную таблицу
- Выделите исходные данные (включая заголовки).
- Перейдите на вкладку
Вставка→Сводная таблица. - Укажите, куда поместить таблицу (на новый лист или существующий).
Шаг 2. Настройте группировку по времени
- Перетащите столбец с датой/временем в область
СтрокиилиСтолбцы. - Щёлкните правой кнопкой по любому элементу в столбце дат и выберите
Группировка. - В открывшемся окне укажите интервалы группировки:
- 📅 По дням, месяцам, кварталам или годам.
- ⏰ По часам, минутам или секундам (если в данных есть временная часть).
- Нажмите
ОК— данные будут сгруппированы.
Шаг 3. Добавляем фильтры
Чтобы отфильтровать сводную таблицу по временному интервалу:
- Перетащите столбец с датой в область
Фильтры. - Щёлкните по стрелке фильтра и выберите нужный диапазон (например, "Между" для указания начальной и конечной даты).
Продвинутый приём: если нужно анализировать данные по дням недели, добавьте в исходные данные вспомогательный столбец с формулой =ТЕКСТ(A2;"ДДДД") (где A2 — ячейка с датой). Затем используйте этот столбец в сводной таблице для группировки по понедельникам, вторникам и т.д.
| Тип группировки | Пример применения | Формула для вспомогательного столбца |
|---|---|---|
| По часам | Анализ пиковой нагрузки на сайт | =ЧАС(A2) |
| По дням недели | Продажи по будням vs выходным | =ТЕКСТ(A2;"ДДДД") |
| По неделям | Еженедельная динамика | =НОМНЕДЕЛИ(A2) |
| По кварталам | Квартальная отчётность | =ТЕКСТ(A2;"к\"к\") |
7. Динамические фильтры с использованием таблиц Excel
Если ваши данные оформлены как таблица Excel (Ctrl+T), фильтрация становится гибкой и динамичной. Вот почему это удобно:
- 🔄 Фильтры автоматически применяются к новым строкам.
- 📌 Настройки фильтров сохраняются при сортировке.
- 🔗 Легко связать с другими инструментами (сводные таблицы, Power Query).
Как создать динамический фильтр по времени:
- Преобразуйте диапазон в таблицу: выделите данные и нажмите
Ctrl+T(илиГлавная → Форматировать как таблицу). - Добавьте срезы для удобной фильтрации:
- Выделите таблицу → вкладка
Конструктор→Вставить срезы. - Отметьте столбец с датой/временем и нажмите
ОК. - В появившемся срезе выберите нужные временные интервалы (например, конкретный месяц или час).
- Выделите таблицу → вкладка
=И(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))
Затем фильтруйте по этому столбцу. Формула отбрасывает секунды, оставляя только часы и минуты.
🔄 Как сделать так, чтобы фильтр обновлялся автоматически при изменении данных?
Есть три способа:
- Таблицы Excel: преобразуйте диапазон в таблицу (
Ctrl+T), фильтры будут применены к новым строкам. - Power Query: при обновлении данных в источнике фильтры применяются заново.
- 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.