Как сравнить даты в Excel: больше или меньше — формулы и практические примеры

Сравнение дат в Microsoft Excel — одна из самых востребованных операций при работе с отчётами, графиками и аналитикой. Выяснить, прошёл ли срок действия договора, отследить просроченные платежи или отсортировать события по хронологии — всё это требует умения корректно сравнивать даты на условия «больше» или «меньше». Но многие пользователи сталкиваются с ошибками: Excel воспринимает даты как текст, игнорирует формат ячеек или выдаёт неверные результаты при использовании функций.

В этой статье вы найдёте 5 проверенных способов сравнения дат — от простых формул до автоматизированных инструментов. Мы разберём, почему нельзя сравнивать даты как текст, как избежать ошибок с форматами и какие функции (ЕСЛИ, И, РАЗНДАТ) ускорят вашу работу. А для наглядности приведём реальные примеры из бухгалтерии, логистики и HR-аналитики.

Если вы никогда не работали с датами в Excel, начните с первого раздела — там объяснено, как программа хранит даты и почему 15.05.2026 для неё не то же самое, что текст "15.05.2026". Опытные пользователи могут сразу перейти к формулам или условному форматированию.

Как Excel хранит даты: почему «15.05» ≠ «15 мая»

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

  • 📅 01.01.1900 = 1
  • 📅 15.05.2026 = 45415 (для Windows)
  • 📅 31.12.2026 = 45684

Это означает, что когда вы вводите 15.05.2026 в ячейку, Excel автоматически преобразует её в число 45415 и отображает в привычном формате. Сравнивать даты как текст нельзя — например, "15.05" (текст) всегда будет «меньше» "02.06" (тоже текст), потому что сравнение идёт посимвольно, а не по календарной логике.

Чтобы проверить, как Excel воспринимает вашу дату, выделите ячейку и посмотрите на строку формул. Если там отображается число (например, 45415), значит, формат корректный. Если виден текст ("15.05.2026") — ячейка хранит строку, и сравнения не сработают.

⚠️ Внимание: Если вы импортировали даты из CSV или другой программы, они могли сохраниться как текст. Чтобы исправить это, выделите столбец и выберите Данные → Текст по столбцам → Готово (Excel автоматически распознает даты).
📊 Как часто вы работаете с датами в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

Формулы для сравнения дат: ЕСЛИ, И, ИЛИ

Самый универсальный способ сравнить даты — использовать логические функции. Они позволяют проверять условия типа «если дата А больше даты Б, то...». Рассмотрим основные варианты.

1. Простое сравнение с ЕСЛИ

Формула проверяет, выполнено ли условие, и возвращает одно из двух значений:

=ЕСЛИ(A2>B2; "Просрочено"; "В срок")

Где:

  • 📌 A2 — ячейка с текущей датой (например, сегодня).
  • 📌 B2 — ячейка с датой дедлайна.
  • 📌 "Просрочено" — текст, который отобразится, если A2 > B2.

2. Сложные условия с И и ИЛИ

Если нужно проверить несколько условий одновременно, комбинируйте функции:

=ЕСЛИ(И(A2>B2; C2="Да"); "Штраф"; "Без штрафа")

Здесь проверяется, что дата в A2 позже даты в B2 и в ячейке C2 стоит «Да».

3. Сравнение с сегодняшней датой

Чтобы сравнить дату с текущим днём, используйте функцию СЕГОДНЯ():

=ЕСЛИ(A2<СЕГОДНЯ(); "Прошло"; "Актуально")
ФормулаПримерРезультат
=A2>B215.05.2026 > 10.05.2026ИСТИНА
=ЕСЛИ(A2<=B2; "OK"; "")12.05.2026 <= 15.05.2026"OK"
=И(A2>B2; A215.05.2026 > 10.05.2026 И 15.05.2026 < 20.05.2026ИСТИНА
⚠️ Внимание: Функция СЕГОДНЯ() обновляется при каждом открытии файла. Если вам нужна фиксированная дата (например, для архива), используйте CTRL+; (горячие клавиши для вставки текущей даты как значения).

Ячейки с датами имеют формат "Дата" (не текст)

В формулах используются правильные операторы (> < >= <=)

Для текущей даты применена функция СЕГОДНЯ(), а не фиксированное значение

Проверены граничные случаи (например, даты равны)

-->

Функция РАЗНДАТ: сравнение с учётом дней, месяцев, лет

Иногда недостаточно просто узнать, какая дата больше — нужно посчитать разницу в днях, месяцах или годах. Для этого предназначена функция РАЗНДАТ (в английской версии — DATEDIF), которая скрыта в интерфейсе Excel, но работает корректно.

Синтаксис:

=РАЗНДАТ(начальная_дата; конечная_дата; единица_измерения)

Где единица_измерения может быть:

  • 📅 "D" — разница в днях.
  • 📅 "M" — разница в полных месяцах.
  • 📅 "Y" — разница в полных годах.

Примеры:

=РАЗНДАТ(B2; СЕГОДНЯ(); "D")  // Сколько дней прошло с даты в B2

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

Чтобы сравнить даты с учётом разницы, комбинируйте РАЗНДАТ с ЕСЛИ:

=ЕСЛИ(РАЗНДАТ(A2; СЕГОДНЯ(); "D") > 30; "Просрочено более месяца"; "")
Почему РАЗНДАТ не видна в списке функций?

Функция РАЗНДАТ — наследие ранних версий Excel и не отображается в мастер-функциях. Однако она полностью работоспособна. Введите её вручную или используйте английский вариант DATEDIF (работает и в русской версии).

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

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

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

  1. Выделите диапазон с датами (например, A2:A100).
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите Форматировать только ячейки, которые содержат.
  4. В поле «Форматировать только ячейки с» укажите:
    • 📅 Значение ячейки > СЕГОДНЯ() — для будущих дат.
    • 📅 Значение ячейки < СЕГОДНЯ() — для просроченных.
  • Задайте цвет заполнения (например, красный для просрочки, зелёный для актуальных).
  • Преимущество этого метода — наглядность: вы сразу увидите все критичные даты без дополнительных столбцов с формулами. Минус — форматирование не обновляется в реальном времени (нужно пересчитывать лист или открывать файл заново).

    Фильтрация и сортировка по датам

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

    • 🔍 Автофильтр (для простых условий).
    • 🔍 Расширенный фильтр (для сложных критериев).
    • 🔍 Сортировку (по возрастанию/убыванию).

    Пример фильтрации:

    1. Выделите заголовок таблицы и нажмите Данные → Фильтр.
    2. Нажмите на стрелку в столбце с датами и выберите Фильтры по дате.
    3. Укажите условие, например:
      • 📅 Раньше... — для дат до определённого дня.
      • 📅 Между... — для диапазона дат.

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

    | A | B |

    |-------|---------------|

    1 | Дата | >01.01.2026 | ← диапазон критериев

    Затем выберите Данные → Расширенный фильтр и укажите этот диапазон.

    ⚠️ Внимание: При фильтрации дат убедитесь, что в критериях используется тот же формат, что и в исходных данных. Например, если в таблице даты в формате ДД.ММ.ГГГГ, а в критериях вы указали ММ/ДД/ГГГГ, фильтр не сработает.

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

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

    1. Даты как текст

    Если дата введена как текст (например, через апостроф: '15.05.2026), формулы не сработают. Решение: преобразовать текст в дату с помощью ДАТАЗНАЧ:

    =ДАТАЗНАЧ("15.05.2026")

    2. Разные форматы дат

    Excel может воспринимать 15.05.2026 и 15/05/2026 как разные значения. Решение: унифицируйте формат через Формат ячеек → Дата.

    3. Ошибка #ЗНАЧ! при сравнении

    Возникает, если в ячейке пусто или некорректный тип данных. Решение: используйте ЕЧИСТ или ЕОШИБКА для проверки:

    =ЕСЛИ(И(НЕ(ЕЧИСТ(A2)); НЕ(ЕОШИБКА(A2))); ЕСЛИ(A2>B2; "Да"; "Нет"); "")

    4. Проблемы с СЕГОДНЯ()

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

    ОшибкаПричинаРешение
    #ЗНАЧ!Ячейка содержит текст вместо датыИспользовать ДАТАЗНАЧ или изменить формат
    Некорректная сортировкаДаты введены как текстПреобразовать в формат "Дата"
    Формула возвращает ЛОЖЬ при явном соблюдении условияРазные форматы дат (например, ДД.ММ vs ММ/ДД)Унифицировать формат через Формат ячеек

    Практические примеры: бухгалтерия, логистика, HR

    Разберём, как сравнение дат применяется в реальных задачах.

    1. Бухгалтерия: контроль оплаты счетов

    Допустим, у вас таблица с датами оплаты (столбец B) и сроками (столбец C). Формула для выделения просроченных:

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

    2. Логистика: сроки доставки

    Сравните планируемую дату доставки (A2) с фактической (B2):

    =ЕСЛИ(A2

    3. HR: стаж сотрудников

    Чтобы посчитать стаж в годах и месяцах:

    =РАЗНДАТ(C2; СЕГОДНЯ(); "Y") & " лет, " & РАЗНДАТ(C2; СЕГОДНЯ(); "YM") & " мес."

    Где C2 — дата приёма на работу.

    4. Маркетинг: акции и скидки

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

    =ЕСЛИ(И(СЕГОДНЯ()>=A2; СЕГОДНЯ()<=B2); "Акция действует"; "")

    Частые вопросы по сравнению дат в Excel

    Можно ли сравнить дату с временем (например, 15.05.2026 14:30)?

    Да, Excel хранит дату и время как одно число (дробная часть — время). Чтобы сравнить только дату без времени, используйте ЦЕЛОЕ():

    =ЕСЛИ(ЦЕЛОЕ(A2) > ЦЕЛОЕ(B2); "Да"; "Нет")

    Или функцию ДЕНЬ()/МЕСЯЦ()/ГОД() для выделения компонентов.

    Почему формула =A2>B2 возвращает ЛОЖЬ, хотя дата в A2 явно позже?

    Скорее всего, одна из ячеек содержит текст или даты в разных форматах. Проверьте:

    1. Формат ячеек (CTRL+1 → Дата).
    2. Отображение в строке формул (должно быть число, например 45415, а не текст).
    3. Если проблема остаётся, используйте =ДАТАЗНАЧ(A2) > ДАТАЗНАЧ(B2).

    Как сравнить даты в двух таблицах?

    Используйте ВПР, ИНДЕКС+ПОИСКПОЗ или XLOOKUP (в новых версиях Excel). Пример:

    =ВПР(A2; Лист2!A:B; 2; ЛОЖЬ) > B2

    Где Лист2!A:B — диапазон с датами для сравнения.

    Можно ли сравнить даты в Power Query?

    Да, в Power Query добавьте пользовательский столбец с условием. Например:

    = if [Дата1] > [Дата2] then "Да" else "Нет"

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

    Как сравнить даты в Google Таблицах?

    Принцип тот же, но есть нюансы:

    • 📌 Функция РАЗНДАТ называется DATEDIF (вводится вручную).
    • 📌 Для текущей даты используйте TODAY() (аналог СЕГОДНЯ()).
    • 📌 Условное форматирование настраивается через Формат → Условное форматирование.