Сравнение дат в Excel: формулы, примеры и лайфхаки для точных расчётов

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

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

Почему Excel воспринимает даты как числа (и как это использовать)

Прежде чем сравнивать даты, важно понять, как Excel их хранит. Внутри программы любая дата — это просто число, где 1 соответствует 1 января 1900 года (в Windows) или 1904 года (на Mac). Например, дата 15.05.2026 для Excel — это число 45415. Такой подход позволяет выполнять математические операции: вычитать даты, прибавлять дни или находить разницу.

Это знание полезно, когда нужно:

  • 📅 Преобразовать текстовый формат даты (например, "15 мая") в числовой для расчётов — используйте функцию =ДАТАЗНАЧ().
  • ⏳ Вычислить количество дней между событиями — достаточно вычесть одну дату из другой: =B2-A2.
  • 🔍 Найти даты, попадающие в определённый диапазон, с помощью фильтров или функции =И().

Однако здесь кроется первая ловушка: если ячейка отформатирована как текст, Excel воспринимает "15.05.2026" не как дату, а как строку. Чтобы избежать ошибок, всегда проверяйте формат ячейки (Главная → Формат → Формат ячеек) или используйте функцию =ДАТА() для явного создания даты.

📊 Как часто вы работаете с датами в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

Базовые способы сравнения дат: равенство, "больше/меньше"

Самый простой способ сравнить две даты — использовать стандартные операторы: = (равно), > (больше), < (меньше). Эти операторы работают так же, как и с числами, потому что даты в Excel — это числа в глубине.

Примеры формул:

  • 🔹 Проверка равенства: =A2=B2 — вернёт ИСТИНА, если даты совпадают.
  • 🔹 Сравнение "больше/меньше": =A2>B2 — проверит, является ли дата в A2 более поздней.
  • 🔹 Диапазон дат: =И(A2>=ДАТА(2026;1;1); A2<=ДАТА(2026;12;31)) — определит, попадает ли дата в 2026 год.

Если одна дата в формате ДД.ММ.ГГГГ, а другая — ММ/ДД/ГГ, Excel может воспринять их как разные значения, даже если календарные даты совпадают. Чтобы избежать этого, используйте функцию =ДАТА() для унификации:

=ДАТА(ГОД(A2); МЕСЯЦ(A2); ДЕНЬ(A2)) = ДАТА(ГОД(B2); МЕСЯЦ(B2); ДЕНЬ(B2))

Сравнение дат с учётом времени (если оно есть)

Если в ваших данных даты содержат время (например, 15.05.2026 14:30), стандартные операторы сравнения могут давать неожиданные результаты. Например, 15.05.2026 00:00 и 15.05.2026 23:59 для Excel — разные значения, хотя календарная дата одна.

Чтобы сравнить только даты, игнорируя время, используйте одну из этих функций:

  • 🕒 =ЦЕЛОЕ(A2) = ЦЕЛОЕ(B2) — отсекает дробную часть (время).
  • 📆 =ДЕНЬ(A2)=ДЕНЬ(B2); МЕСЯЦ(A2)=МЕСЯЦ(B2); ГОД(A2)=ГОД(B2) — сравнивает по компонентам.
  • 🔄 =ОКРВНИЗ(A2;1) = ОКРВНИЗ(B2;1) — округляет до полных дней.

Для обратной задачи — сравнения с учётом времени — используйте стандартные операторы, но убедитесь, что формат ячеек включает время (Формат ячеек → Все форматы → ДД.ММ.ГГГГ ЧЧ:ММ).

Что делать, если дата и время в разных ячейках?

Если дата и время хранятся отдельно (например, в A2 дата, а в B2 время), объедините их с помощью формулы:

=A2 + ВРЕМЯ(ЧАС(B2); МИНУТЫ(B2); СЕКУНДЫ(B2))

Это создаст полноценную метку времени для дальнейшего сравнения.

Вычисление разницы между датами: дни, месяцы, годы

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

Задача Функция Пример Результат для 01.01.2026 и 15.05.2026
Разница в днях =B2-A2 =ДАТА(2026;5;15)-ДАТА(2026;1;1) 135
Разница в месяцах =РАЗНДАТ() =РАЗНДАТ(A2;B2;"m") 4
Разница в годах =РАЗНДАТ() =РАЗНДАТ(A2;B2;"y") 0
Полных лет (с учётом дня рождения) =ЦЕЛОЕ(ГОДРАЗН()) =ЦЕЛОЕ(ГОДРАЗН(A2;B2;1)) 0

Функция =РАЗНДАТ() особенно полезна, так как позволяет указать единицу измерения:

  • "d" — дни,
  • "m" — месяцы,
  • "y" — годы.

Однако у неё есть ограничение: если начальная дата позже конечной, результат будет отрицательным. Чтобы избежать ошибок, используйте =АБС(РАЗНДАТ(..)).

Продвинутые приёмы: сравнение с учётом выходных и праздников

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

Пример формулы для расчёта рабочих дней между 01.01.2026 и 15.05.2026 с учётом праздников (перечислены в диапазоне D2:D10):

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

Где D2:D10 — список дат праздников (например, 1 января, 8 марта и т.д.).

Для сравнения дат с учётом рабочих дней используйте комбинацию функций:

=ЕСЛИ(ЧИСТРАБДНИ(A2; B2) > 5; "Срок превышен"; "В норме")

Эта формула проверит, прошло ли между датами больше 5 рабочих дней.

Если вам нужно найти ближайший рабочий день к заданной дате, используйте:

=ЕСЛИ(ДЕНЬНЕД(A2;2)>5; A2+8-ДЕНЬНЕД(A2;2); A2)

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

📌 Убедитесь, что все даты в одном формате

📌 Создайте отдельный список праздников в диапазоне ячеек

📌 Проверьте региональные настройки (в некоторых странах выходные — пятница/суббота)

📌 Используйте ЧИСТРАБДНИ.МЕЖД для интервалов времени-->

Сравнение дат в условном форматировании и фильтрах

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

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

  1. Выделите диапазон с датами (например, A2:A100).
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу для определения форматируемых ячеек.
  4. Введите формулу, например:
    =A2

    для выделения просроченных дат.

  5. Задайте формат (цвет заливки, шрифта) и нажмите ОК.

Для фильтрации данных по датам используйте автофильтр:

  1. Выделите заголовок столбца с датами.
  2. Нажмите Данные → Фильтр.
  3. Раскройте выпадающий список в заголовке столбца и выберите Фильтры по дате.
  4. Укажите условие (например, "до сегодняшнего дня" или "последняя неделя").

=И(A2<>""; A2>=ТЕКУЩДАТА()-30)

Это исключит пустые ячейки и выделит только актуальные даты.-->

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

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

⚠️ Внимание: Если формула возвращает #ЗНАЧ!, вероятнее всего, одна из ячеек содержит текст вместо даты. Используйте =ЕЧИСЛО() или =ДАТАЗНАЧ() для проверки.

Другие распространённые проблемы:

  • 🗓️ Неправильный региональный формат: Excel может путать день и месяц в датах типа 05.06.2026 (5 июня или 6 мая?). Всегда проверяйте настройки региона (Файл → Параметры → Язык).
  • Игнорирование времени: Если в данных есть время, но вы сравниваете только даты, используйте =ЦЕЛОЕ() или =ОКРВНИЗ().
  • 🔢 Ошибки в РАЗНДАТ: Функция не работает с отрицательными интервалами. Для обратного отсчёта (например, дней до события) используйте =АБС(РАЗНДАТ(..)).
  • 📊 Проблемы с сортировкой: Даты в текстовом формате сортируются как строки (по алфавиту), а не по хронологии. Преобразуйте их в числовой формат с помощью =ДАТАЗНАЧ().
⚠️ Внимание: При импорте данных из внешних источников (CSV, базы данных) даты часто превращаются в текст. Чтобы исправить это, выделите столбец и используйте Данные → Текст по столбцам, выбрав формат "Дата" на последнем шаге.

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

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

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

  • =A2=ТЕКУЩДАТА() — проверка на сегодняшнюю дату.
  • =A2>ТЕКУЩДАТА() — дата в будущем.
  • =РАЗНДАТ(A2;ТЕКУЩДАТА();"d") — количество дней с заданной даты до сегодня.
Почему формула =A2=B2 возвращает ЛОЖЬ, хотя даты выглядят одинаково?

Вероятные причины:

  1. В одной из ячеек время (например, 00:00:01), а в другой — нет. Используйте =ЦЕЛОЕ(A2)=ЦЕЛОЕ(B2).
  2. Разные форматы отображения (например, ДД.ММ.ГГГГ vs ММ/ДД/ГГ). Преобразуйте обе даты в числовой формат с помощью =ДАТА().
  3. Одна из "дат" на самом деле текст. Проверьте с помощью =ТИП(A2) (должен вернуть 1 для чисел).
Как посчитать количество дней между датами без учёта выходных?

Используйте функцию =ЧИСТРАБДНИ(начальная_дата; конечная_дата; [праздники]). Пример:

=ЧИСТРАБДНИ(ДАТА(2026;1;1); ДАТА(2026;5;15); D2:D10)

Где D2:D10 — диапазон с датами праздников. Если праздников нет, оставьте третий аргумент пустым.

Можно ли сравнить даты в Excel Online и Google Sheets?

Да, большинство функций работают одинаково, но есть нюансы:

  • В Google Sheets функция РАЗНДАТ называется DATEDIF (англ. версия).
  • Формулы условного форматирования в Excel Online ограничены — некоторые сложные правила могут не работать.
  • В Google Sheets для текущей даты используется =TODAY() (аналог =СЕГОДНЯ()).
Как автоматически обновлять даты при открытии файла?

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

  1. Нажмите Ctrl + ; (точка с запятой) — это вставит статическую дату.
  2. Или скопируйте ячейку с =ТЕКУЩДАТА() и вставьте как Значения (Правка → Специальная вставка → Значения).