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

Работа с датами в Microsoft Excel — одна из самых востребованных задач при анализе данных. Нужно ли вам отфильтровать продажи за последний месяц, выделить просроченные задачи или автоматически рассчитать сроки выполнения проектов — условия по датам помогают сэкономить часы ручной работы. Но как правильно их настроить, чтобы не получить ошибку #ЗНАЧ! или не пропустить важные записи?

В этой статье мы разберём 5 практических способов работы с условиями по датам — от базовых функций ЕСЛИ до продвинутых инструментов вроде Power Query и условного форматирования. Вы узнаете, как сравнивать даты, учитывать текущую дату, работать с диапазонами и даже автоматизировать отчёты. Все примеры приведены с пояснениями и скриншотами, чтобы вы могли повторить их в своей таблице.

1. Базовые условия с функцией ЕСЛИ: сравнение дат

Функция ЕСЛИ (или IF в английской версии) — самый простой способ поставить условие по дате. Она позволяет проверять, соответствует ли значение в ячейке заданному критерию, и возвращать разные результаты в зависимости от ответа. Например, вы можете пометить задачи как «Просрочено», если их дедлайн уже наступил.

Базовый синтаксис функции:

=ЕСЛИ(логическое_выражение; значение_если_истина; значение_если_ложь)

Пример: предположим, в ячейке A2 указана дата завершения задачи (15.10.2026), а в ячейке B2 нужно вывести статус. Формула будет такой:

=ЕСЛИ(A2
  • 📅 ТЕКУЩАЯ ДАТА: функция СЕГОДНЯ() (или TODAY()) автоматически подставляет сегодняшнюю дату и обновляется при каждом открытии файла.
  • СРАВНЕНИЕ: можно использовать знаки =, <, <=, >, >= для проверки дат.
  • 🔄 ДИНАМИЧНОСТЬ: если дата в A2 изменится, статус в B2 обновится автоматически.
⚠️ Внимание: функция СЕГОДНЯ() не фиксирует дату навсегда — она всегда показывает текущую. Если вам нужно зафиксировать дату (например, для отчёта), используйте комбинацию Ctrl + ; (точка с запятой) для вставки статической даты.

Рассмотрим более сложный пример: проверка, попадает ли дата в определённый диапазон (например, текущий месяц). Формула будет такой:

=ЕСЛИ(И(A2>=ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());1); A2<=ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ())+1;0)); "Текущий месяц"; "Другой период")
📊 Как часто вы работаете с датами в Excel?
Ежедневно
Несколько раз в неделю
Редее, чем раз в месяц
Никогда

2. Условное форматирование: визуальное выделение дат

Если вам нужно не просто проверить дату, а визуально выделить ячейки, которые ей соответствуют, используйте условное форматирование. Этот инструмент позволяет автоматически окрашивать ячейки в зависимости от заданных правил. Например, вы можете сделать так, чтобы все просроченные задачи становились красными, а актуальные — зелёными.

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

  1. Выделите диапазон ячеек с датами (например, A2:A100).
  2. Перейдите на вкладку ГлавнаяУсловное форматированиеСоздать правило.
  3. Выберите Форматировать только ячейки, которые содержат.
  4. В поле Форматировать только ячейки с укажите условие, например: Значение меньше чем =СЕГОДНЯ().
  5. Нажмите Формат, выберите цвет заполнения (например, красный) и сохраните правило.

Теперь все даты, которые меньше сегодняшней, будут подсвечиваться красным. Аналогично можно создать правила для:

  • 🟢 Даты в будущем (например, больше чем =СЕГОДНЯ()) — зелёный цвет.
  • 🟡 Даты в текущей неделе (используйте формулу =И(A2>=СЕГОДНЯ()-НЕДЕЛЯ(СЕГОДНЯ();2);A2<=СЕГОДНЯ()+7-НЕДЕЛЯ(СЕГОДНЯ();2))) — жёлтый цвет.
  • 🔵 Конкретных дат (например, равно =ДАТА(2026;12;31)) — синий цвет.
Тип условия Формула для правила Пример применения
Просроченные даты =A2<СЕГОДНЯ() Выделение задолженностей по платежам
Даты в будущем =A2>СЕГОДНЯ() Пометка предстоящих событий
Даты в текущем месяце =И(МЕСЯЦ(A2)=МЕСЯЦ(СЕГОДНЯ()); ГОД(A2)=ГОД(СЕГОДНЯ())) Анализ месячных продаж
Выходные дни =ИЛИ(НЕДЕЛЯ(A2;2)>5; ДЕНЬНЕД(A2;2)>5) Пометка нерабочих дней в календаре

3. Фильтрация данных по датам: от простого к сложному

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

Автофильтр подходит для базовых задач:

  1. Выделите заголовок столбца с датами и нажмите ДанныеФильтр.
  2. Нажмите на стрелку вниз в заголовке столбца и выберите Фильтры по дате.
  3. Укажите нужный период: Завтра, На следующей неделе, В этом месяце или Настраиваемый фильтр.

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

  1. Создайте отдельный диапазон критериев (например, в ячейках D1:E2):

D1: "Дата" | E1: "День недели"

D2: ">="&СЕГОДНЯ()-30 | E2: "<>Выходной"

  1. В ячейке E2 используйте формулу =ЕСЛИ(ИЛИ(НЕДЕЛЯ(D2;2)>5; ДЕНЬНЕД(D2;2)>5); "Выходной"; ""), где D2 — ссылка на первую ячейку с датой в вашем диапазоне.
  2. Перейдите в ДанныеРасширенный фильтр и укажите исходный диапазон и диапазон критериев.
⚠️ Внимание: при использовании расширенного фильтра убедитесь, что заголовки в диапазоне критериев полностью совпадают с заголовками в исходных данных. Даже лишний пробел может привести к ошибке.

Выделите столбец с датами и проверьте их формат (должен быть Дата, а не Текст)|Убедитесь, что в данных нет пустых ячеек или ошибочных значений (например, 01.13.2026)|Создайте отдельный диапазон для критериев фильтрации (если используете расширенный фильтр)|Проверьте, что в критериях указаны корректные операторы сравнения (>=, <= и т.д.)

-->

4. Функции для работы с датами: ДАТА, ДЕНЬНЕД, МЕСЯЦ и другие

Excel предлагает десятки функций для манипуляции датами. Знание этих функций позволяет создавать гибкие условия, которые учитывают не только конкретные даты, но и дни недели, кварталы, рабочие/выходные дни. Рассмотрим самые полезные из них:

  • 📅 ДАТА(год; месяц; день) — создаёт дату из отдельных компонентов. Пример: =ДАТА(2026; 12; 31) вернёт 31.12.2026.
  • 📆 ДЕНЬ(дата) — возвращает день месяца. Пример: =ДЕНЬ(ДАТА(2026;12;31)) вернёт 31.
  • 🗓️ МЕСЯЦ(дата) — возвращает номер месяца (1–12).
  • 🕒 ГОД(дата) — возвращает год.
  • 🔄 ДЕНЬНЕД(дата; [тип_возврата]) — возвращает день недели (1–7). Параметр тип_возврата определяет, с какого дня начинается неделя (по умолчанию — воскресенье).
  • РАЗНДАТ(начальная_дата; конечная_дата; единица) — вычисляет разницу между датами в годах ("y"), месяцах ("m") или днях ("d").

Пример использования: предположим, вам нужно проверить, попадает ли дата в ячейке A2 на выходной (субботу или воскресенье). Формула будет такой:

=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A2;2)>5; ДЕНЬНЕД(A2;2)=1); "Выходной"; "Рабочий день")

Здесь ДЕНЬНЕД(A2;2) возвращает номер дня недели, где 1 — понедельник, а 7 — воскресенье. Условие >5 проверяет субботу (6) и воскресенье (7), а =1 — ещё раз воскресенье (на случай, если тип возврата другой).

Ещё один полезный пример: расчёт количества рабочих дней между двумя датами (исключая выходные). Для этого используйте функцию ЧИСТРАБДНИ:

=ЧИСТРАБДНИ(A2; B2)

Где A2 — начальная дата, а B2 — конечная. Если нужно исключить ещё и праздники, укажите их в третьем аргументе как диапазон ячеек.

Как Excel хранит даты?

Внутри Excel даты хранятся как числа, где 1 соответствует 1 января 1900 года. Например, 45000 — это 11 марта 2023 года. Это позволяет легко выполнять арифметические операции: прибавлять или вычитать дни, месяцы, годы. Чтобы увидеть числовое представление даты, измените формат ячейки на Общий.

5. Продвинутые условия: Power Query и сводные таблицы

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

Power Query позволяет:

  • 🔍 Фильтровать данные по датам ещё на этапе загрузки.
  • 📊 Группировать записи по месяцам, кварталам или годам.
  • 🔄 Автоматически обновлять данные при изменении источника.

Пример: импорт данных из таблицы и фильтрация по текущему году:

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

Сводные таблицы удобны для анализа данных по периодам. Например, чтобы посчитать сумму продаж по месяцам:

  1. Выделите исходные данные и нажмите ВставкаСводная таблица.
  2. В поле Строки перетащите столбец с датами.
  3. Нажмите правой кнопкой на любой ячейке в столбце с датами и выберите Группировать.
  4. Укажите параметры группировки: Месяцы или Кварталы.
  5. В поле Значения перетащите столбец с суммами продаж.

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

6. Ошибки при работе с датами и как их избежать

Даже опытные пользователи Excel иногда сталкиваются с ошибками при работе с датами. Вот самые распространённые проблемы и способы их решения:

Ошибка Причина Решение
#ЗНАЧ! в формулах с датами Ячейка содержит текст вместо даты (например, "15.10.2026" как текст). Проверьте формат ячейки (должен быть Дата). Используйте =ДАТАЗНАЧ(A2), чтобы преобразовать текст в дату.
Некорректная сортировка дат Дата хранится как текст (например, "октябрь 15, 2026"). Преобразуйте текст в дату с помощью ДАТАЗНАЧ или функции ТЕКСТ.ПОСЛЕ/ЛЕВСИМВ для извлечения дня, месяца, года.
Функция СЕГОДНЯ() не обновляется В настройках книги отключено автоматическое пересчёты формул. Перейдите в ФормулыПараметры вычисленийАвтоматически.
Условное форматирование не применяется Формат ячейки установлен как Текст или дата введена некорректно. Проверьте формат ячейки и исправьте дату. Используйте CTRL + 1 для открытия окна формата.

Ещё одна типичная ошибка — неверное использование функций для работы с датами. Например, многие пользователи пытаются вычесть одну дату из другой напрямую, не зная о функции РАЗНДАТ. Результат может быть неточным из-за особенностей хранения дат в Excel. Правильный способ:

=РАЗНДАТ(A2; B2; "d")  // Разница в днях

=РАЗНДАТ(A2; B2; "m") // Разница в месяцах

=РАЗНДАТ(A2; B2; "y") // Разница в годах

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

=ЦЕЛОЕ(РАЗНДАТ(A2; B2; "y"))

7. Автоматизация отчётов: динамические диапазоны и именованные формулы

Если вы регулярно создаёте отчёты по датам (например, ежемесячные продажи), полезно настроить динамические диапазоны и именованные формулы. Это позволит автоматически обновлять данные без ручного вмешательства.

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

Предположим, у вас есть таблица с датами в столбце A, и вы хотите всегда видеть данные за последний месяц. Создайте именованный диапазон:

  1. Перейдите на вкладку ФормулыДиспетчер имёнСоздать.
  2. В поле Имя введите ПоследнийМесяц.
  3. В поле Диапазон введите формулу:
=ФИЛЬТР(A2:A100; (МЕСЯЦ(A2:A100)=МЕСЯЦ(СЕГОДНЯ()))*(ГОД(A2:A100)=ГОД(СЕГОДНЯ())))

Теперь вы можете использовать ПоследнийМесяц в других формулах, и он будет автоматически обновляться.

Способ 2: Динамические массивы (Excel 365)

В новых версиях Excel (2019 и новее) доступны динамические массивы, которые позволяют создавать автоматически расширяемые диапазоны. Например, чтобы вывести все даты за текущий год:

=ФИЛЬТР(A2:A100; ГОД(A2:A100)=ГОД(СЕГОДНЯ()))

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

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

Если вам нужно создавать отчёты за произвольные периоды (например, за выбранный пользователем месяц), настройте параметр в Power Query:

  1. В редакторе Power Query перейдите на вкладку ГлавнаяУправление параметрамиСоздать параметр.
  2. Укажите имя параметра (например, ВыбранныйМесяц) и тип Целое число.
  3. В формуле фильтрации используйте этот параметр:
= Table.SelectRows(#"Предыдущий шаг", each Date.Month([Дата]) = ВыбранныйМесяц)

Теперь при каждом обновлении данных вы сможете вводить номер месяца вручную, и отчёт будет пересчитываться автоматически.

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

Как в Excel сравнить дату с сегодняшней?

Используйте функцию СЕГОДНЯ() в комбинации с операторами сравнения. Например, чтобы проверить, прошла ли дата в ячейке A2, используйте формулу:

=ЕСЛИ(A2<СЕГОДНЯ(); "Прошло"; "Ещё нет")

Если нужно сравнить только день и месяц (игнорируя год), используйте:

=ЕСЛИ(И(ДЕНЬ(A2)=ДЕНЬ(СЕГОДНЯ()); МЕСЯЦ(A2)=МЕСЯЦ(СЕГОДНЯ())); "Сегодня"; "Другой день")
Почему Excel не распознаёт мою дату?

Чаще всего это происходит из-за неверного формата ячейки. Проверьте следующее:

  • Формат ячейки должен быть Дата, а не Текст или Общий.
  • Дата должна быть введена в одном из стандартных форматов (например, 15.10.2026 или 15-окт-2026).
  • Если дата хранится как текст, используйте =ДАТАЗНАЧ(A2) для преобразования.

Также убедитесь, что в настройках региональных параметров Windows установлен правильный формат даты (например, ДД.ММ.ГГГГ для России).

Как посчитать количество дней между двумя датами, исключая выходные?

Используйте функцию ЧИСТРАБДНИ:

=ЧИСТРАБДНИ(A2; B2)

Где A2 — начальная дата, а B2 — конечная. Если нужно исключить ещё и праздники, укажите их в третьем аргументе как диапазон ячеек:

=ЧИСТРАБДНИ(A2; B2; D2:D10)

Где D2:D10 — диапазон с датами праздников.

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

Да, для работы с временем используйте функции ВРЕМЯ, ЧАС, МИНУТЫ и СЕКУНДЫ. Например, чтобы проверить, попадает ли время в ячейке A2 в интервал с 9:00 до 18:00:

=ЕСЛИ(И(ЧАС(A2)>=9; ЧАС(A2)<18); "Рабочее время"; "Нерабочее время")

Если в ячейке хранится дата и время одновременно, используйте ВРЕМЯЗНАЧ для извлечения времени:

=ЕСЛИ(ВРЕМЯЗНАЧ(A2)>=ВРЕМЯ(9;0;0); "После 9:00"; "До 9:00")
Как автоматически обновлять даты при открытии файла?

Функции СЕГОДНЯ() и ТДАТА() (текущие дата и время) обновляются автоматически при каждом открытии файла или пересчёте формул. Если обновление не происходит:

  • Проверьте настройки пересчёта: ФормулыПараметры вычисленийАвтоматически.
  • Если файл открыт долгое время, нажмите F9 для принудительного пересчёта.
  • Для фиксации текущей даты (чтобы она не менялась) используйте комбинацию CTRL + ; (вставка статической даты).