Прежде чем считать разницу между датами, убедитесь, что ячейки с датами отформатированы правильно. В большинстве случаев Excel распознает дату автоматически при вводе, однако если ячейка остается в текстовом формате, никакие формулы работать не будут. Чтобы задать формат вручную, выделите нужные ячейки, нажмите Ctrl + 1, перейдите на вкладку «Число», выберите «Дата» и нажмите «ОК».
Подробнее: Изменение формата ячеек в Excel
Варианты решения:
Способ 1: Простое вычитание дат
Самый быстрый способ узнать количество дней между двумя датами: обычная формула вычитания. Внутри Excel любая дата хранится как целое число: например, 01.01.2025 соответствует числу 45658, а 20.03.2025 соответствует числу 45736. Разность двух таких чисел и дает количество прошедших дней. Предположим, в столбце A находятся начальные даты, в столбце B конечные, а результаты нужно вывести в столбце C.
- Выделите ячейку C2 и убедитесь, что ее формат задан как «Общий» или «Числовой». Посмотреть и изменить формат можно в группе «Число» на вкладке «Главная». Если ячейке присвоен формат «Дата», результат тоже отобразится как дата, например «19.01.1900» вместо нужного числа.
- Введите формулу
=B2-A2и нажмите Enter. В ячейке появится количество дней между датами. - Протяните формулу вниз на остальные строки диапазона (до C6), чтобы применить ее ко всем парам дат сразу.
В формуле =B2-A2 из значения в столбце B вычитается значение в столбце A, поэтому более поздняя дата должна находиться в B. Если даты стоят в обратном порядке, результат окажется отрицательным, что в большинстве задач служит сигналом ошибки в исходных данных.
Тот же принцип работает, когда одна из дат не фиксирована, а привязана к текущему дню. Функция СЕГОДНЯ() возвращает сегодняшнюю дату и автоматически обновляется при каждом открытии файла. Формула =СЕГОДНЯ()-A2 покажет, сколько дней прошло с даты в A2, а =B2-СЕГОДНЯ() покажет, сколько дней осталось до даты в B2. Если результат отрицательный, срок уже истек.
Способ 2: Функция РАЗНДАТ
Функция РАЗНДАТ позволяет вычислять разницу между датами не только в днях, но и в месяцах, годах и их комбинациях. В отличие от простого вычитания, она дает возможность, например, узнать, сколько полных лет и месяцев прошло между датами, что удобно при расчете стажа, возраста или сроков договоров. Функция не задокументирована и не появляется ни в мастере функций, ни в подсказках при вводе: она унаследована из совместимости со старыми табличными редакторами и по-прежнему работает в Excel, однако вводить ее нужно вручную, зная точный синтаксис:
=РАЗНДАТ(начальная_дата; конечная_дата; единица)
Параметр «единица» определяет, в каком виде будет выведен результат:
| Единица | Что возвращает |
|---|---|
"d" |
Полное количество дней между датами |
"m" |
Полное количество месяцев |
"y" |
Полное количество лет |
"yd" |
Разница в днях так, как если бы обе даты находились в одном году (годы не учитываются) |
"md" |
Дни между датами без учета месяцев и лет |
"ym" |
Месяцы между датами без учета лет |
Для подсчета обычной разницы в днях используется единица "d", результат будет таким же, как при простом вычитании. Комбинируя единицы в нескольких ячейках, можно получить разбивку вида «2 г. 3 мес. 18 дн.»: для этого в отдельных ячейках прописывают РАЗНДАТ с "y", "ym" и "md" соответственно.
- Кликните по ячейке C2 и введите формулу
=РАЗНДАТ(A2;B2;"d"). Обратите внимание на порядок аргументов: в отличие от простого вычитания, здесь первой стоит начальная дата, а конечная идет второй. Если перепутать их местами, функция вернет ошибку #ЧИСЛО. - Нажмите Enter, в ячейке отобразится количество дней. Протяните формулу на весь диапазон C2:C6.
Если в ячейке вместо числа появляется ошибка #ЧИСЛО, это почти всегда означает, что дата в столбце A позже даты в столбце B. Проверьте исходные данные и при необходимости поменяйте аргументы местами.
Способ 3: Включительный подсчет дней
Оба предыдущих способа считают количество прошедших дней, не включая начальный день в итог. Например, разница между 1 марта и 5 марта по формуле составит 4, хотя фактически задействованы пять дней: 1-е, 2-е, 3-е, 4-е и 5-е. Такая логика стандартна для математического вычитания, однако в ряде задач, например при расчете аренды, командировок, сроков действия документов, требуется считать оба крайних дня.
Чтобы включить оба дня в результат, к любой из формул выше достаточно добавить +1:
=B2-A2+1
или
=РАЗНДАТ(A2;B2;"d")+1
Если в таблице некоторые ячейки могут быть пустыми и лишний +1 в таких строках дает некорректный результат, оберните формулу в проверку:
=ЕСЛИ(И(A2"";B2"");B2-A2+1;"")

Такая конструкция вернет пустую строку вместо ошибочного единичного значения, если одна из дат не заполнена.
Способ 4: Подсчет рабочих дней с помощью функции ЧИСТРАБДНИ
Функция ЧИСТРАБДНИ вычисляет количество рабочих дней в указанном периоде, автоматически исключая субботы и воскресенья. Дополнительно ей можно передать список праздничных дат, которые тоже будут исключены из подсчета. Синтаксис функции:
=ЧИСТРАБДНИ(нач_дата; кон_дата; [праздники])
Третий аргумент необязателен: если за рассматриваемый период нет праздников или они вас не интересуют, его можно опустить.
- Кликните по ячейке C2 и начните вводить формулу. Если праздники не учитываются, достаточно написать
=ЧИСТРАБДНИ(A2;B2)и нажать Enter. - Если нужно исключить праздничные дни, заранее внесите их в отдельный диапазон таблицы, например E2:E10, и добавьте его третьим аргументом:
=ЧИСТРАБДНИ(A2;B2;$E$2:$E$10). Знак доллара фиксирует ссылку на диапазон праздников при протягивании формулы. - Протяните формулу на диапазон C2:C6, где каждая строка покажет количество рабочих дней для соответствующей пары дат.
Функцию ЧИСТРАБДНИ также можно найти через мастер функций: нажмите кнопку «Вставить функцию» рядом со строкой формул, в категории «Дата и время» выберите «ЧИСТРАБДНИ» и заполните аргументы в открывшемся окне.
Обратите внимание, что функция учитывает оба крайних дня, если они рабочие: период с понедельника по пятницу даст результат 5, а не 4. В этом ее принципиальное отличие от простого вычитания дат. Если ваши выходные приходятся не на субботу и воскресенье, а на другие дни недели, используйте расширенную версию =ЧИСТРАБДНИ.МЕЖД(A2;B2;схема), где второй числовой аргумент задает схему выходных: значение 2 соответствует воскресенью и понедельнику, значение 7 соответствует пятнице и субботе, а значения 11–17 позволяют задать один выходной день в неделю.
Способ 5: Вычисление даты через заданное количество рабочих дней
Если стоит обратная задача и нужно не посчитать дни между двумя датами, а определить, на какую дату приходится дедлайн через N рабочих дней, используется функция РАБДЕНЬ. Это удобно при расчете сроков исполнения документов, поставок, ответов на запросы и других процессов, привязанных к рабочему календарю. Синтаксис:
=РАБДЕНЬ(нач_дата; количество_дней; [праздники])
Функция прибавляет к начальной дате указанное количество рабочих дней и возвращает результирующую дату, пропуская выходные. Праздники передаются так же, как в ЧИСТРАБДНИ: ссылкой на диапазон.
- Предположим, в ячейке A2 стоит дата начала, а в D2 нужно вывести дату дедлайна через 20 рабочих дней. Кликните по D2 и введите формулу
=РАБДЕНЬ(A2;20). - Нажмите Enter. Убедитесь, что ячейка D2 имеет формат «Дата», иначе результат отобразится как число. Если нужно учесть праздники, добавьте третий аргумент:
=РАБДЕНЬ(A2;20;$E$2:$E$10). - Чтобы отсчет шел назад, укажите отрицательное количество дней:
=РАБДЕНЬ(A2;-20)вернет дату за 20 рабочих дней до начальной.
Важный нюанс: начальная дата в РАБДЕНЬ не входит в счет рабочих дней. Если в A2 стоит понедельник и вы пишете
=РАБДЕНЬ(A2;1), результатом будет вторник, а не сам понедельник. При расчете дедлайнов это нужно учитывать заранее, чтобы не получить дату на один день раньше нужной. Для нестандартного рабочего графика предусмотрена расширенная версия=РАБДЕНЬ.МЕЖД(A2;20;схема), которая принимает те же схемы выходных, что и ЧИСТРАБДНИ.МЕЖД.
Дополнительные сведения и частые вопросы
При работе с датами в Excel нередко возникают вопросы, которые напрямую связаны с особенностями хранения дат в программе. Ниже собраны наиболее частые из них.
- Ячейка показывает дату вместо числа. Если ячейка с результатом отформатирована как «Дата», Excel отобразит число прошедших дней как дату от своей точки отсчета: вместо числа 5 вы увидите «05.01.1900», вместо числа 32 появится «01.02.1900» и так далее. Выделите ячейку, откройте окно форматирования через Ctrl + 1 и установите формат «Общий» или «Числовой».
- РАЗНДАТ возвращает ошибку #ЧИСЛО. Функция РАЗНДАТ не умеет работать с отрицательными интервалами: если начальная дата в ячейке A2 позже конечной в B2, результатом будет ошибка #ЧИСЛО. Проверьте порядок дат в исходных данных. Простое вычитание
=B2-A2в такой ситуации вернет отрицательное число, а не ошибку, что иногда удобнее. - Даты до 1 января 1900 года не поддерживаются. Внутренняя система дат Excel начинается с 01.01.1900. Любые даты раньше этой отметки программа не сможет обработать корректно: они либо будут восприняты как текст, либо вызовут ошибку в формулах. Для работы с историческими датами потребуются сторонние надстройки или специализированные инструменты.
- Учет даты и времени одновременно. Если ячейки содержат не только дату, но и время, например «02.03.2026 14:25» и «05.03.2025 19:30», простое вычитание по-прежнему работает. Результат окажется дробным числом: целая часть соответствует количеству суток, а дробная часть соответствует доле суток. Умножив результат на 24, получите разницу в часах, а умножив на 1440, получите разницу в минутах.
- Разбивка дней по месяцам внутри периода. Если нужно узнать, сколько дней периода приходится на каждый конкретный месяц, универсальной встроенной функции для этого нет. Решение строится через комбинацию РАЗНДАТ, ДАТА и КОНМЕСЯЦА: для каждого месяца вычисляется пересечение с заданным периодом. Такая формула требует ручной настройки под конкретную структуру таблицы.
lumpics.ru















































спасибо большое, все получилось!
Молодцы, лучшая статья и самая доходчивая.
Респект!