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

Введение: Почему условия по датам — это must-have навык в Excel

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

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

1. Базовые условия с функцией ЕСЛИ (IF)

Начнём с самого простого: функции ЕСЛИ (IF в английской версии). Она позволяет проверять даты на соответствие заданным критериям и возвращать разные результаты. Например, вы можете автоматически помечать просроченные задачи или классифицировать транзакции по периодам.

Синтаксис функции:

=ЕСЛИ(логическое_выражение; значение_если_истина; значение_если_ложь)
  • 📅 Пример 1: Проверка, попадает ли дата в текущий месяц. Формула вернёт "Да" или "Нет":
    =ЕСЛИ(МЕСЯЦ(A2)=МЕСЯЦ(СЕГОДНЯ()); "Да"; "Нет")
  • Пример 2: Определение просроченных задач (даты в колонке A, сегодняшняя дата сравнивается с дедлайном):
    =ЕСЛИ(A2<СЕГОДНЯ(); "Просрочено"; "В срок")
  • 📊 Пример 3: Разделение данных по кварталам. Здесь используем вложенные ЕСЛИ:
    =ЕСЛИ(МЕСЯЦ(A2)<=3; "Q1"; ЕСЛИ(МЕСЯЦ(A2)<=6; "Q2"; ЕСЛИ(МЕСЯЦ(A2)<=9; "Q3"; "Q4")))
⚠️ Внимание: Функция СЕГОДНЯ() (TODAY()) — волатильная. Она пересчитывается при каждом открытии файла или изменении данных. Если вам нужна фиксированная дата (например, для отчёта на конец месяца), используйте конкретное значение типа "31.12.2026".

Убедитесь, что ячейки с датами имеют формат "Дата" (не "Текст")|Используйте СЕГОДНЯ() для динамических сравнений|Для статических отчётов фиксируйте дату вручную|Проверяйте вложенные ЕСЛИ на лишние скобки-->

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

Когда нужно быстро выделить важные даты — например, приближающиеся дедлайны или выходные дни — условное форматирование становится незаменимым инструментом. Оно позволяет автоматически окрашивать ячейки в зависимости от их значений, не изменяя сами данные.

Алгоритм настройки:

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

3. Фильтрация данных по датам

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

Базовый фильтр:

  • 🔍 Выделите заголовок столбца с датами и нажмите Данные → Фильтр.
  • 📅 Кликните на стрелку фильтра в колонке с датами и выберите Фильтры по дате.
  • 📊 Укажите период: "Завтра", "На следующей неделе", "Пользовательский фильтр" (для произвольного диапазона).

Для сложных условий (например, "даты между 01.01.2026 и 31.03.2026 И сумма больше 1000") используйте расширенный фильтр:

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

    Дата Сумма

    >=01.01.2026 >1000

    <=31.03.2026
  2. Перейдите в Данные → Сортировка и фильтр → Расширенный фильтр.
  3. Укажите исходный диапазон и диапазон критериев, выберите "Скопировать результат в другое место" при необходимости.

Стандартный фильтр по датам|Расширенный фильтр с несколькими условиями|Условное форматирование|Формулы (ФИЛЬТР, ЕСЛИОШИБКА)|Не фильтрую данные-->

⚠️ Внимание: При использовании расширенного фильтра убедитесь, что заголовки критериев в точности совпадают с заголовками исходной таблицы. Excel чувствителен к регистру и пробелам! Например, "Дата продажи" и "дата продажи" будут восприняты как разные поля.

4. Продвинутые формулы: ДВССЫЛ, ИНДЕКС-ПОИСКПОЗ и массивы

Когда стандартных функций недостаточно, на помощь приходят динамические формулы массивов и комбинации функций. Они позволяют анализировать даты в связке с другими данными, создавать динамические отчёты и обрабатывать большие объёмы информации.

Рассмотрим несколько примеров:

  • 🔄 Динамический диапазон дат: Формула вернёт все даты между двумя заданными значениями (например, в столбце A):
    =ФИЛЬТР(A2:A100; (A2:A100>=D1)*(A2:A100<=D2))

    где D1 и D2 — ячейки с начальной и конечной датами.

  • 📈 Сумма по периоду: Подсчёт продаж за текущий месяц (даты в A2:A100, суммы в B2:B100):
    =СУММЕСЛИМН(B2:B100; A2:A100; ">="&ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(СЕГОДНЯ()); 1); A2:A100; "<="&КОНМЕСЯЦА(СЕГОДНЯ(); 0))
  • 🔍 Поиск последней даты: Найдёт самую позднюю дату в диапазоне:
    =МАКС(ЕСЛИ(A2:A100<>""; A2:A100))

    (вводится как формула массива — завершайте нажатием Ctrl+Shift+Enter в старых версиях Excel).

Как работают формулы массивов?

Формулы массивов обрабатывают несколько значений одновременно, а не по одному. Например, конструкция {=СУММ(ЕСЛИ(A2:A100>D1; B2:B100))} проверяет каждую дату в A2:A100 на условие "больше D1" и суммирует соответствующие значения из B2:B100. В новых версиях Excel (365, 2021) фигурные скобки добавляются автоматически, в старых — их нужно вводить вручную через Ctrl+Shift+Enter.

Критическая особенность: В Excel 365 и Excel 2021 появились динамические массивы — функции вроде ФИЛЬТР, СОРТ и УНИК, которые автоматически "проливаются" на соседние ячейки. Это упрощает работу с датами, но может конфликтовать с традиционными формулами массивов. Всегда проверяйте версию Excel перед использованием сложных конструкций!

5. Работа с рабочими и выходными днями

Анализ дат часто требует учёта рабочих и выходных дней — например, для расчёта сроков доставки или планирования задач. В Excel для этого есть специализированные функции:

  • 📅 РАБДЕНЬ() (WORKDAY) — добавляет рабочие дни к дате, игнорируя выходные и праздники.
    =РАБДЕНЬ(A2; 10)

    вернёт дату через 10 рабочих дней от A2.

  • 🏢 РАБДЕНЬ.МЕЖД() (WORKDAY.INTL) — то же, но с настройкой выходных (например, для стран с пятницей и субботой).
    =РАБДЕНЬ.МЕЖД(A2; 5; 11)

    где 11 — код для выходных "пятница-суббота".

  • 🎉 ЧИСТРАБДНИ() (NETWORKDAYS) — считает количество рабочих дней между двумя датами.
    =ЧИСТРАБДНИ(A2; B2)

Для учёта праздников создайте отдельный диапазон с датами (например, D1:D10) и укажите его третьим аргументом:

=РАБДЕНЬ(A2; 14; D1:D10)
Функция Пример Результат
РАБДЕНЬ(A2; 5) Если A2 = 01.06.2026 (суббота) 07.06.2026 (через 5 рабочих дней)
ЧИСТРАБДНИ(A2; B2) A2 = 01.06.2026, B2 = 10.06.2026 7 (рабочих дней)
РАБДЕНЬ.МЕЖД(A2; 3; 11) A2 = 01.06.2026 (суббота), выходные — пятница-суббота 06.06.2026 (через 3 рабочих дня)

6. Ошибки и ловушки при работе с датами

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

  • 🚫 Текст вместо даты: Если Excel воспринимает дату как текст (выровнена по левому краю), используйте ДАТАЗНАЧ() для преобразования:
    =ДАТАЗНАЧ(A2)

    или примените формат "Дата" вручную (Ctrl+1).

  • ⚠️ Ошибка #ЧИСЛО!: Возникает при некорректных вычислениях с датами (например, вычитание текста из даты). Проверьте форматы ячеек и используйте ЕСЛИОШИБКА:
    =ЕСЛИОШИБКА(B2-A2; "Ошибка даты")
  • 🔄 Проблемы с временными зонами: Excel не поддерживает временные зоны напрямую. Если вам нужно работать с UTC или локальным временем, используйте дополнительные столбцы для корректировки:
    =A2 + (3/24)

    (добавляет 3 часа к дате в A2).

  • 📅 Переход на новый год: Формулы вроде =МЕСЯЦ(A2)+1 дадут ошибку для декабря (вернёт 13). Используйте ДАТА():
    =ДАТА(ГОД(A2); МЕСЯЦ(A2)+1; ДЕНЬ(A2))
⚠️ Внимание: В Excel даты хранятся как числа, где 1 соответствует 1 января 1900 года. Это означает, что вы можете выполнять с датами арифметические операции (например, =B2-A2 для расчёта разницы в днях). Однако нельзя просто так складывать даты с текстом или логическими значениями — это приведёт к ошибкам.

FAQ: Частые вопросы по условиям с датами в Excel

Как в Excel выделить все даты, которые приходятся на понедельник?

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

=ДЕНЬНЕД(A1; 2)=1

где 2 — параметр для недели, начинающейся с понедельника (1 = воскресенье).

Можно ли в Excel создать условие для дат, которые попадают на последний день месяца?

Да, с помощью функции КОНМЕСЯЦА():

=ЕСЛИ(A2=КОНМЕСЯЦА(A2; 0); "Последний день"; "")

Формула сравнивает дату в A2 с последним днём её месяца.

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

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

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

Для учёта праздников добавьте третий аргумент с диапазоном праздничных дат.

Почему моя формула с датами возвращает ошибку #ЗНАЧ?

Скорее всего, Excel воспринимает ваши "даты" как текст. Проверьте формат ячеек (Ctrl+1) и при необходимости преобразуйте данные с помощью ДАТАЗНАЧ() или ЗНАЧЕН().

Как автоматически обновлять отчёт с датами при открытии файла?

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