Работа с датами в Microsoft Excel — одна из самых востребованных задач при анализе данных, составлении отчётов или планировании. Кажется, что сравнить две даты проще простого, но на практике пользователи сталкиваются с ошибками формата, некорректными результатами или неочевидными нюансами вроде учёта выходных дней. Эта статья поможет разобраться, как правильно сравнивать даты в Excel — от базовых операций до продвинутых формул с условиями.
Вы узнаете, какие функции использовать для проверки равенства дат, как вычислять разницу в днях/месяцах/годах, а также научитесь применять сравнение в фильтрах, условном форматировании и сводных таблицах. Особое внимание уделено типичным ошибкам, которые портят результаты даже опытным пользователям. Все примеры сопровождаются скриншотами (в текстовом формате) и готовыми формулами для копирования.
Почему Excel воспринимает даты как числа (и как это использовать)
Прежде чем сравнивать даты, важно понять, как Excel их хранит. Внутри программы любая дата — это просто число, где 1 соответствует 1 января 1900 года (в Windows) или 1904 года (на Mac). Например, дата 15.05.2026 для Excel — это число 45415. Такой подход позволяет выполнять математические операции: вычитать даты, прибавлять дни или находить разницу.
Это знание полезно, когда нужно:
- 📅 Преобразовать текстовый формат даты (например, "15 мая") в числовой для расчётов — используйте функцию
=ДАТАЗНАЧ(). - ⏳ Вычислить количество дней между событиями — достаточно вычесть одну дату из другой:
=B2-A2. - 🔍 Найти даты, попадающие в определённый диапазон, с помощью фильтров или функции
=И().
Однако здесь кроется первая ловушка: если ячейка отформатирована как текст, Excel воспринимает "15.05.2026" не как дату, а как строку. Чтобы избежать ошибок, всегда проверяйте формат ячейки (Главная → Формат → Формат ячеек) или используйте функцию =ДАТА() для явного создания даты.
Базовые способы сравнения дат: равенство, "больше/меньше"
Самый простой способ сравнить две даты — использовать стандартные операторы: = (равно), > (больше), < (меньше). Эти операторы работают так же, как и с числами, потому что даты в 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)
Эта формула вернёт дату следующего понедельника, если исходная дата приходится на выходной.
📌 Убедитесь, что все даты в одном формате
📌 Создайте отдельный список праздников в диапазоне ячеек
📌 Проверьте региональные настройки (в некоторых странах выходные — пятница/суббота)
📌 Используйте ЧИСТРАБДНИ.МЕЖД для интервалов времени-->
Сравнение дат в условном форматировании и фильтрах
Визуализировать результаты сравнения дат помогает условное форматирование. Например, можно выделить красным все просроченные задачи или зелёным — выполненные в срок.
Алгоритм настройки:
- Выделите диапазон с датами (например,
A2:A100). - Перейдите на вкладку
Главная → Условное форматирование → Создать правило. - Выберите
Использовать формулу для определения форматируемых ячеек. - Введите формулу, например:
=A2для выделения просроченных дат.
- Задайте формат (цвет заливки, шрифта) и нажмите
ОК.
Для фильтрации данных по датам используйте автофильтр:
- Выделите заголовок столбца с датами.
- Нажмите
Данные → Фильтр. - Раскройте выпадающий список в заголовке столбца и выберите
Фильтры по дате. - Укажите условие (например, "до сегодняшнего дня" или "последняя неделя").
=И(A2<>""; A2>=ТЕКУЩДАТА()-30)
Это исключит пустые ячейки и выделит только актуальные даты.-->
Типичные ошибки и как их избежать
Даже опытные пользователи Excel допускают ошибки при работе с датами. Вот самые распространённые:
⚠️ Внимание: Если формула возвращает#ЗНАЧ!, вероятнее всего, одна из ячеек содержит текст вместо даты. Используйте=ЕЧИСЛО()или=ДАТАЗНАЧ()для проверки.
Другие распространённые проблемы:
- 🗓️ Неправильный региональный формат: Excel может путать день и месяц в датах типа
05.06.2026(5 июня или 6 мая?). Всегда проверяйте настройки региона (Файл → Параметры → Язык). - ⏰ Игнорирование времени: Если в данных есть время, но вы сравниваете только даты, используйте
=ЦЕЛОЕ()или=ОКРВНИЗ(). - 🔢 Ошибки в
РАЗНДАТ: Функция не работает с отрицательными интервалами. Для обратного отсчёта (например, дней до события) используйте=АБС(РАЗНДАТ(..)). - 📊 Проблемы с сортировкой: Даты в текстовом формате сортируются как строки (по алфавиту), а не по хронологии. Преобразуйте их в числовой формат с помощью
=ДАТАЗНАЧ().
⚠️ Внимание: При импорте данных из внешних источников (CSV, базы данных) даты часто превращаются в текст. Чтобы исправить это, выделите столбец и используйте Данные → Текст по столбцам, выбрав формат "Дата" на последнем шаге.
FAQ: Ответы на частые вопросы
Как сравнить дату в Excel с сегодняшним днём?
Используйте функцию =ТЕКУЩДАТА() (обновляется при каждом открытии файла) или =СЕГОДНЯ() (синоним). Примеры:
=A2=ТЕКУЩДАТА()— проверка на сегодняшнюю дату.=A2>ТЕКУЩДАТА()— дата в будущем.=РАЗНДАТ(A2;ТЕКУЩДАТА();"d")— количество дней с заданной даты до сегодня.
Почему формула =A2=B2 возвращает ЛОЖЬ, хотя даты выглядят одинаково?
Вероятные причины:
- В одной из ячеек время (например,
00:00:01), а в другой — нет. Используйте=ЦЕЛОЕ(A2)=ЦЕЛОЕ(B2). - Разные форматы отображения (например,
ДД.ММ.ГГГГvsММ/ДД/ГГ). Преобразуйте обе даты в числовой формат с помощью=ДАТА(). - Одна из "дат" на самом деле текст. Проверьте с помощью
=ТИП(A2)(должен вернуть1для чисел).
Как посчитать количество дней между датами без учёта выходных?
Используйте функцию =ЧИСТРАБДНИ(начальная_дата; конечная_дата; [праздники]). Пример:
=ЧИСТРАБДНИ(ДАТА(2026;1;1); ДАТА(2026;5;15); D2:D10)
Где D2:D10 — диапазон с датами праздников. Если праздников нет, оставьте третий аргумент пустым.
Можно ли сравнить даты в Excel Online и Google Sheets?
Да, большинство функций работают одинаково, но есть нюансы:
- В Google Sheets функция
РАЗНДАТназываетсяDATEDIF(англ. версия). - Формулы условного форматирования в Excel Online ограничены — некоторые сложные правила могут не работать.
- В Google Sheets для текущей даты используется
=TODAY()(аналог=СЕГОДНЯ()).
Как автоматически обновлять даты при открытии файла?
Функции =ТЕКУЩДАТА() и =СЕГОДНЯ() обновляются автоматически при каждом открытии файла или пересчёте формул (Формулы → Вычислить сейчас). Если нужно зафиксировать текущую дату однократно, используйте:
- Нажмите
Ctrl + ;(точка с запятой) — это вставит статическую дату. - Или скопируйте ячейку с
=ТЕКУЩДАТА()и вставьте какЗначения(Правка → Специальная вставка → Значения).