Как сравнить даты в двух ячейках Excel: 5 проверенных методов с примерами

Сравнение дат в Microsoft Excel — одна из самых востребованных операций при работе с отчётами, графиками выполнения задач или анализом временных интервалов. Казалось бы, что может быть проще: взять две ячейки с датами и определить, какая из них раньше или позже. Но на практике пользователи сталкиваются с ошибками формата, некорректными результатами вычитания или проблемами при использовании функций ЕСЛИ. Почему так происходит?

Дело в том, что Excel хранит даты не как текст, а как числовые значения — количество дней, прошедших с 1 января 1900 года (в Windows) или 1904 года (в Mac). Например, дата «15 мая 2026» для программы — это число 45415. Эта особенность открывает широкие возможности для вычислений, но требует понимания базовых принципов. Без них даже простая разница между двумя датами может превратиться в головоломку с неожиданными результатами вроде «######» или отрицательных чисел.

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

——— • ——— • ———

1. Базовое сравнение дат: операторы «>», «<» и «=»

Самый простой способ сравнить две даты — использовать стандартные операторы сравнения прямо в формуле. Excel воспринимает даты как числа, поэтому с ними работают все математические правила.

Допустим, у вас в ячейке A2 дата начала проекта («10.05.2026»), а в B2 — дата завершения («20.05.2026»). Чтобы узнать, закончился ли проект, введите в C2:

=B2<=СЕГОДНЯ()

Эта формула вернёт ИСТИНА, если текущая дата позже или равна дате в B2. Аналогично работают другие операторы:

  • 📅 =A2>B2 — проверяет, начался ли проект позже, чем закончился (ошибка логики).
  • =A2=B2 — сравнивает, совпадают ли даты (например, для проверки дубликатов).
  • 📊 =B2-A2 — вычисляет разницу в днях между датами.

Если вам нужно учитывать часы и минуты, используйте формат дд.мм.гггг чч:мм или функцию ВРЕМЯЗНАЧ.

2. Функция ЕСЛИ: условное сравнение с текстовым результатом

Операторы сравнения возвращают только ИСТИНА/ЛОЖЬ, что не всегда удобно. Чтобы получить осмысленный текст (например, «Просрочено» или «В срок»), используйте функцию ЕСЛИ.

Пример: в ячейке A2 дедлайн задачи («15.05.2026»), а в B2 нужно вывести статус:

=ЕСЛИ(A2<СЕГОДНЯ(); "Просрочено"; "В срок")

Расширенный вариант с учётом будущих дат:

=ЕСЛИ(A2<СЕГОДНЯ(); "Просрочено"; ЕСЛИ(A2=СЕГОДНЯ(); "Сегодня"; "Впереди"))

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

  • 🔍 СЕГОДНЯ() — всегда возвращает текущую дату (обновляется при пересчёте листа).
  • 📅 ДАТАЗНАЧ() — преобразует текст в формате даты в числовой формат (полезно для импортированных данных).
  • ⚠️ ЕНД() — проверяет ячейку на ошибки перед сравнением.
📊 Какой формат дат вы используете чаще?
ДД.ММ.ГГГГ
ММ/ДД/ГГГГ
ДД-ММ-ГГ
Другой

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

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

Как настроить:

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

Для более сложных условий (например, выделение дат в интервале «завтра ±3 дня») используйте формулу в правиле:

=И(A2>=СЕГОДНЯ(); A2<=СЕГОДНЯ()+3)
Цель Формула для условного форматирования Пример визуализации
Просроченные задачи =A2<СЕГОДНЯ() Красный фон
Дата сегодня =A2=СЕГОДНЯ() Жёлтый фон
События на этой неделе =И(A2>=СЕГОДНЯ(); A2<=СЕГОДНЯ()+7) Зелёный текст
Выходные дни =ИЛИ(ДЕНЬНЕД(A2)=7; ДЕНЬНЕД(A2)=1) Синий шрифт
Почему условное форматирование не работает?

Убедитесь, что ячейки имеют формат Дата, а не Текст. Если даты хранятся как текст (например, после импорта из CSV), используйте функцию ДАТАЗНАЧ для преобразования.

4. Расчёт разницы между датами: функции РАЗНДАТ и ДНИ

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

Функция ДНИ (или DAYS в английской версии) возвращает разницу в днях:

=ДНИ(дата_окончания; дата_начала)

Пример: =ДНИ(B2; A2) вернёт количество дней между A2 и B2.

Для более сложных вычислений (месяцы, годы) используйте РАЗНДАТ:

=РАЗНДАТ(A2; B2; "d") 

=РАЗНДАТ(A2; B2; "m")

=РАЗНДАТ(A2; B2; "y")

Обратите внимание: РАЗНДАТ — это функция совместимости, и её синтаксис отличается от стандартных формул. Аргументы разделяются точкой с запятой, а единицы измерения указываются в кавычках.

⚠️ Внимание: Функция РАЗНДАТ не документирована в официальной справке Excel, но работает во всех версиях. В Excel 365 для тех же целей рекомендуют использовать ДНИ, ДНИ360 или комбинацию ГОД/МЕСЯЦ/ДЕНЬ.

Ячейки имеют формат Дата|Формула возвращает положительное число|Учтена временная зона (если важно)|Проверены крайние случаи (например, 29 февраля)

-->

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

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

  • 🔄 Power Query — инструмент для очистки и преобразования данных. Позволяет добавлять столбцы с разницей между датами, фильтровать записи по временным интервалам и даже объединять таблицы по датам.
  • 📊 Сводные таблицы — помогают группировать данные по годам, кварталам или месяцам и анализировать тренды.
  • 🤖 VBA-макросы — для создания пользовательских функций (например, сравнения дат с учётом праздников).

Пример использования Power Query:

  1. Выделите исходные данные и нажмите Данные → Из таблицы/диапазона.
  2. В открывшемся редакторе выберите столбец с датой, затем Добавить столбец → Пользовательский столбец.
  3. Введите формулу для расчёта разницы (например, = Date.From([Дата2]) - Date.From([Дата1])).
  4. Нажмите Закрыть и загрузить — результат появится на новом листе.

Преимущество этого метода — автоматическое обновление при изменении исходных данных. Достаточно кликнуть «Обновить» на вкладке Данные.

6. Типичные ошибки и как их избежать

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

  • 🗓️ Текст вместо даты: Если дата импортирована из CSV или введена вручную как текст (например, «01.05.2026»), Excel не сможет её сравнить. Используйте ДАТАЗНАЧ или преобразуйте столбец через Текст по столбцам.
  • Игнорирование времени: Формат дд.мм.гггг обрезает часы и минуты. Если важно время, используйте дд.мм.гггг чч:мм или функцию ВРЕМЯ.
  • 🌍 Региональные настройки: В американском Excel дата «05.06.2026» интерпретируется как 5 июня, а в российском — как 6 мая. Проверяйте формат в Файл → Параметры → Язык.
  • 🔢 Отрицательные результаты: Если формула =B2-A2 возвращает «######», значит, разница отрицательная. Используйте АБС или проверяйте порядок ячеек.
⚠️ Внимание: Функция СЕГОДНЯ() обновляется при каждом открытии файла или пересчёте листа. Если вам нужна фиксированная дата (например, дата создания отчёта), используйте СЕЙЧАС() и преобразуйте результат в значение через Специальная вставка → Значения.

Для диагностики ошибок используйте ТИП (проверяет тип данных) и ЕНД (выявляет ошибки в ячейках):

=ЕСЛИ(ТИП(A2)=1; "Дата"; "Не дата")

=ЕСЛИ(ЕНД(A2); "Ошибка"; "ОК")

7. Практический пример: отслеживание дедлайнов в проекте

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

Задача Дедлайн (D2) Дней до дедлайна (E2) Статус (F2)
Отчёт по продажам 15.05.2026 =МАКС(D2-СЕГОДНЯ(); 0) =ЕСЛИ(D2<СЕГОДНЯ(); "Просрочено"; ЕСЛИ(D2=СЕГОДНЯ(); "Сегодня"; "Осталось " & E2 & " дн."))
Обновление сайта 20.05.2026 =МАКС(D3-СЕГОДНЯ(); 0) =ЕСЛИ(D3<СЕГОДНЯ(); "Просрочено"; ЕСЛИ(D3=СЕГОДНЯ(); "Сегодня"; "Осталось " & E3 & " дн."))

Формула в столбце E использует МАКС, чтобы избежать отрицательных значений. В столбце F — вложенные ЕСЛИ для гибкого отображения статуса.

Для удобства добавьте условное форматирование к столбцу F:

  • Красный текст для «Просрочено».
  • Жёлтый фон для «Сегодня».
  • Зелёный текст для «Осталось..».

Часто задаваемые вопросы

Как сравнить дату с временем (например, 15.05.2026 14:30)?

Используйте формат дд.мм.гггг чч:мм и функцию ВРЕМЯЗНАЧ для извлечения времени. Пример:

=ЕСЛИ(A2+B2>СЕГОДНЯ()+ВРЕМЯЗНАЧ("18:00"); "После 18:00"; "До 18:00")

Где A2 — дата, B2 — время в формате чч:мм.

Почему формула =B2-A2 возвращает ###### вместо числа?

Это означает, что:

  1. Результат отрицательный (например, дата в B2 раньше, чем в A2). Решение: используйте АБС(B2-A2).
  2. Ширина столбца недостаточна. Растяните его или измените формат ячейки на Общий.
  3. Одна из ячеек содержит текст. Проверьте формат через Формат ячеек → Число.
Как сравнить даты без учёта года (например, только месяц и день)?

Используйте функции МЕСЯЦ и ДЕНЬ:

=И(МЕСЯЦ(A2)=МЕСЯЦ(B2); ДЕНЬ(A2)=ДЕНЬ(B2))

Для сравнения только месяцев:

=МЕСЯЦ(A2)=МЕСЯЦ(B2)
Можно ли сравнить даты в Excel Online и Google Таблицах?

Да, синтаксис формул практически идентичен. Отличия:

  • В Google Таблицах разделитель аргументов — запятая (=IF(A2).
  • Функция РАЗНДАТ работает в обеих платформах, но в Excel Online может требовать ручного ввода.
  • Условное форматирование в Google Таблицах настраивается через Формат → Условное форматирование.
Как сравнить дату с сегодняшним днём, исключая выходные?

Используйте комбинацию ДЕНЬНЕД (возвращает день недели, где 1 — воскресенье, 7 — суббота) и РАБДЕНЬ:

=ЕСЛИ(И(A2<СЕГОДНЯ(); ДЕНЬНЕД(A2)<>7; ДЕНЬНЕД(A2)<>1); "Просрочено в рабочий день"; "ОК")

Для расчёта рабочих дней между датами:

=РАБДЕНЬ(A2; B2)