Как посчитать разницу между датами в Excel: от дней до лет

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

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

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

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

1. Простой вычитание: разница в днях

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

Допустим, у вас в ячейке A1 дата начала проекта — 15.05.2026, а в B1 — дата окончания — 30.06.2026. Чтобы найти разницу, введите в ячейку C1 формулу:

=B1-A1
Excel автоматически отобразит результат в формате даты. Чтобы увидеть количество дней, измените формат ячейки C1 на общий или числовой:
  • 🖱️ Выделите ячейку C1, нажмите правой кнопкой мыши → Формат ячеек.
  • 📊 Вкладка Число → выберите Общий или Числовой.
  • ✅ Нажмите ОК — теперь вы увидите число 46 (количество дней между датами).

Этот метод подходит для любых дат, даже если они в разных форматах (например, 15/05/2026 и 2026-06-30). Главное, чтобы Excel распознал их как даты, а не как текст.

⚠️ Внимание: Если после вычитания вы видите странное число вроде 45389, значит, одна из ячеек имеет текстовый формат. Исправьте это с помощью функции =ДАТАЗНАЧ() (о ней — в следующем разделе).

2. Функция ДАТАЗНАЧ: если даты хранятся как текст

Частая проблема: вы импортировали данные из другой программы (например, или Google Sheets), и даты отображаются как текст — например, "15.05.2026" с апострофом или без него. В этом случае простое вычитание не сработает, и Excel вернет ошибку #ЗНАЧ!.

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

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

Если ваши даты хранятся в ячейках A1 и B1, формула будет такой:

=ДАТАЗНАЧ(B1) - ДАТАЗНАЧ(A1)

Обратите внимание: ДАТАЗНАЧ работает только с форматами дат, которые распознает Excel. Например, "15-05-2026" или "15/05/2026" подойдут, а "15 мая 2026" — нет.

Формат текста Распознается ДАТАЗНАЧ? Пример
ДД.ММ.ГГГГ ✅ Да "15.05.2026"
ДД/ММ/ГГГГ ✅ Да "15/05/2026"
ГГГГ-ММ-ДД ✅ Да "2026-05-15"
15 мая 2026 ❌ Нет "15 мая 2026"
Май 15, 2026 ❌ Нет "Май 15, 2026"
⚠️ Внимание: Если после применения ДАТАЗНАЧ вы видите ошибку #ЗНАЧ!, проверьте региональные настройки Excel. В некоторых странах разделителем даты служит не точка, а запятая или слеш.

3. Функция РАЗНДАТ: разница в годах, месяцах и днях

Если вам нужно узнать не только количество дней, но и полных лет, месяцев или недель между датами, используйте функцию =РАЗНДАТ() (или =DATEDIF() в английской версии). Это одна из самых мощных функций для работы с датами, но она имеет необычный синтаксис и не отображается в списке мастер-функций.

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

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

Где единица_измерения — это код, который определяет, что именно вы хотите посчитать:

  • 📅 "y" — полные годы между датами.
  • 📆 "m" — полные месяцы (без учета годов).
  • 📌 "d" — дни (игнорируя месяцы и годы).
  • 📊 "ym" — месяцы между датами, без учета лет (например, разница между 01.01.2026 и 15.03.2026 вернет 2).
  • 📈 "yd" — дни между датами, как если бы они были в одном году (полезно для расчета дней с начала года).
  • 🔄 "md" — разница в днях, игнорируя месяцы и годы (например, между 15.05.2026 и 20.05.2026 вернет 5).

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

=РАЗНДАТ(A1; B1; "y")  

=РАЗНДАТ(A1; B1; "m")

=РАЗНДАТ(A1; B1; "d")

=РАЗНДАТ(A1; B1; "ym")

Важно: функция РАЗНДАТ всегда округляет результат в меньшую сторону. Например, если между датами 1 год и 11 месяцев, она вернет 1 (а не 2).

Убедитесь, что обе даты в формате даты, а не текста|Проверьте порядок дат: начальная дата должна быть раньше конечной|Используйте правильный код единицы измерения ("y", "m", "d" и т.д.)|Если результат неверный, проверьте региональные настройки-->

4. Учет рабочих дней: функция ЧИСТРАБДНИ

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

Для этого в Excel есть функция =ЧИСТРАБДНИ() (или =NETWORKDAYS()):

=ЧИСТРАБДНИ(начальная_дата; конечная_дата; [праздники])

Необязательный аргумент [праздники] — это диапазон ячеек с датами праздников, которые тоже нужно исключить. Например:

=ЧИСТРАБДНИ(A1; B1; D1:D5)

Где D1:D5 — список праздничных дат (например, 01.01.2026, 07.01.2026 и т.д.).

Если праздников нет, просто опустите третий аргумент:

=ЧИСТРАБДНИ(A1; B1)

По умолчанию ЧИСТРАБДНИ считает выходными субботу и воскресенье. Если у вас другой график (например, выходной — пятница), используйте функцию =ЧИСТРАБДНИ.МЕЖД() (или =NETWORKDAYS.INTL()), где можно задать свои выходные дни.

⚠️ Внимание: Если конечная дата раньше начальной, ЧИСТРАБДНИ вернет ошибку #ЧИСЛО!. Проверьте порядок дат в формуле.
Как учитывать праздники в разных странах?

В Excel нет встроенного списка праздников для каждой страны, но вы можете:

1. Скачать календарь праздников для вашей страны (например, с сайта правительства или календарных сервисов).

2. Вставить даты праздников в отдельный столбец на листе.

3. Ссылаться на этот диапазон в функции ЧИСТРАБДНИ.

Пример для России: в диапазоне D1:D10 перечислите даты вроде 01.01.2026, 07.01.2026, 23.02.2026 и т.д.

5. Разница в часах, минутах и секундах

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

Допустим, в ячейке A115.05.2026 14:30 (дата и время начала), а в B115.05.2026 16:45 (дата и время окончания). Формула остается прежней:

=B1-A1

Но теперь измените формат ячейки с результатом:

  • 🖱️ Правой кнопкой по ячейке → Формат ячеек.
  • 🕒 Выберите категорию Время.
  • ⏱️ Укажите нужный формат (например, 37:30:55 для отображения часов, минут и секунд).

Если разница превышает 24 часа, стандартный формат времени покажет только остаток (например, 2:30 вместо 26:30). Чтобы исправить это, создайте пользовательский формат:

[ч]:мм:сс

Где квадратные скобки вокруг ч указывают Excel, что нужно отображать полное количество часов, а не только остаток от деления на 24.

Для расчета разницы в минутах или секундах умножьте результат на соответствующее число:

= (B1-A1) * 1440  

= (B1-A1) * 86400

6. Автоматизация: динамический расчет дат

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

Примеры динамических формул:

  • 📅 Дней до дедлайна:
    =B1 - СЕГОДНЯ()

    (где B1 — дата дедлайна).

  • 📊 Прошло дней с начала проекта:
    =СЕГОДНЯ() - A1

    (где A1 — дата начала).

  • Процент выполнения по времени:
    = (СЕГОДНЯ() - A1) / (B1 - A1)

    (возвращает долю от 0 до 1, которую можно отформатировать как процент).

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

  • 🖱️ Перейдите в Формулы → Параметры вычислений.
  • 🔄 Выберите Автоматически (если стоит Вручную, формулы не будут обновляться без вашего участия).
⚠️ Внимание: Функция СЕГОДНЯ() обновляется при каждом открытии файла или пересчете. Если вы отправляете файл коллеге, он увидит актуальную дату на его компьютере, а не ту, которая была у вас. Чтобы зафиксировать дату, замените СЕГОДНЯ() на конкретное значение (нажмите F9 в режиме редактирования формулы).

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

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

Ошибка Причина Решение
#ЗНАЧ! Ячейка содержит текст, а не дату. Используйте =ДАТАЗНАЧ() или измените формат ячейки на Дата.
#ИМЯ? Опечатка в названии функции (например, =РАЗНДАТА вместо =РАЗНДАТ). Проверьте синтаксис функции. В английской версии Excel используется =DATEDIF.
Неправильный результат (например, отрицательное число дней) Начальная дата позже конечной. Поменяйте местами даты в формуле или используйте =АБС(разница) для модуля.
Результат в формате даты (например, 45389) Ячейка с результатом имеет формат Дата. Измените формат на Общий или Числовой.
#ЧИСЛО! в ЧИСТРАБДНИ Конечная дата раньше начальной. Проверьте порядок дат или используйте =АБС(ЧИСТРАБДНИ(...)).

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

=ДАТА(2026; 5; 15)  

Где аргументы: год; месяц; день.

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

Можно ли посчитать разницу между датой и временем?

Да! Если в ячейках указаны и дата, и время (например, 15.05.2026 14:30), просто вычтите одну ячейку из другой и отформатируйте результат как Время или [ч]:мм:сс (для отображения полных часов).

Пример:

=B1-A1

где A1 = 15.05.2026 10:00, B1 = 16.05.2026 12:30. Результат: 26:30 (26 часов 30 минут).

Как посчитать возраст человека по дате рождения?

Используйте функцию =РАЗНДАТ() с кодом "y" для полных лет:

=РАЗНДАТ(A1; СЕГОДНЯ(); "y")

где A1 — дата рождения.

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

=РАЗНДАТ(A1; СЕГОДНЯ(); "y") & " лет, " & РАЗНДАТ(A1; СЕГОДНЯ(); "ym") & " мес., " & РАЗНДАТ(A1; СЕГОДНЯ(); "md") & " дн."

Почему РАЗНДАТ не работает в Excel 365?

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

Если вы видите ошибку, проверьте:

  • Правильность написания (в английской версии — DATEDIF).
  • Формат ячеек с датами (должен быть Дата, не Текст).
  • Порядок дат (начальная дата должна быть раньше конечной).

Как посчитать количество недель между датами?

Разделите разницу в днях на 7:

=ЦЕЛОЕ((B1-A1)/7)

где ЦЕЛОЕ округляет результат до целого числа недель.

Если нужно учитывать неполные недели, используйте:

= (B1-A1)/7

и отформатируйте ячейку как дробное число (например, 4,57 недель).

Можно ли исключить из расчета конкретные дни недели (например, среду)?

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

1. Создайте столбец с датами, которые нужно исключить (например, все среды в диапазоне).

2. Используйте формулу:

=ЧИСТРАБДНИ.МЕЖД(A1; B1; 1; D1:D100)

где 1 — код для исключения субботы и воскресенья, а D1:D100 — диапазон с датами среды.

Для автоматического заполнения диапазона средами используйте функцию =ЕСЛИ(ДЕНЬНЕД(диапазон_дат;2)=3; диапазон_дат; "").