Мастер работы с датами в Excel: от простого вычитания до расчета стажа
Чтобы посчитать разницу между двумя датами в Excel, используйте функцию =DAYS(конец; начало) для получения количества дней или простое вычитание =B1-A1. Для расчета стажа в годах и месяцах применяется скрытая функция =DATEDIF(начало; конец; "Y"), а для исключения выходных — =NETWORKDAYS. Все эти инструменты позволяют автоматизировать расчеты сроков, возрастов и длительности проектов за секунды.
Работа с временными интервалами — одна из самых частых задач в таблицах. Будь то расчет зарплаты, контроль дедлайнов или анализ длительности сделок, понимание механики дат сэкономит вам часы ручной работы. В этом руководстве мы разберем основные и продвинутые методы вычислений.
Как Excel понимает даты: фундамент расчетов
Прежде чем использовать формулы, важно понять, как программа хранит эту информацию. Для Excel дата — это не текст «10 января», а порядковый номер дня, начиная с 1 января 1900 года (это число 1).
- 01.01.1900 = 1
- 09.04.2026 ≈ 45756
- Время хранится как дробная часть числа (0.5 — это полдень, 12:00).
Проверка формата: Если при вводе формулы вычисления не работают, а ячейка отображает странное число (например, 44927), измените формат ячейки на «Дата». Нажмите Ctrl+1 → вкладка «Число» → выберите нужный формат даты.
Если ячейка отформатирована как «Текст», математические операции с ней невозможны. Убедитесь, что даты выровнены по правому краю ячейки — это верный признак того, что Excel распознал их как числа.
Базовые способы вычисления разницы в днях
Самый простой сценарий — узнать, сколько дней прошло между двумя событиями.
1. Функция DAYS
Эта функция появилась в Excel 2013 и стала стандартом для простых расчетов. Она возвращает целое количество дней.
Синтаксис: =DAYS(конечная_дата; начальная_дата)
Пример:
- Ячейка A1:
01.01.2026- Ячейка B1:
09.04.2026- Формула:
=DAYS(B1; A1)- Результат: 98
Обратите внимание на порядок аргументов: сначала дата окончания, затем начала. Если перепутать, результат будет отрицательным.
2. Прямое вычитание
Классический метод, работающий во всех версиях Excel. Поскольку даты — это числа, их можно просто вычесть.
Формула: =B1 - A1
Результат будет идентичен функции DAYS. Преимущество метода — универсальность. Недостаток — если в ячейках указано время (например, 09.01.2026 10:00 и 10.01.2026 09:00), результат может быть дробным (0.95 дня). Чтобы получить целое число дней, оберните формулу в функцию округления вниз: =ЦЕЛОЕ(B1 - A1).
Расчет стажа и возраста: магия DATEDIF
Когда нужно узнать не просто дни, а полный стаж («3 года 5 месяцев»), обычное вычитание не подойдет. Здесь на помощь приходит функция DATEDIF. Она официально не отображается в подсказках мастера функций, но полностью поддерживается программой.
Синтаксис: =DATEDIF(начальная_дата; конечная_дата; "единица_измерения")
Третий аргумент определяет, что именно считать:
| Код | Что возвращает | Пример использования |
|---|---|---|
| "Y" | Полные годы | Возраст человека |
| "M" | Полные месяцы | Длительность подписки |
| "D" | Полные дни | Просрочка платежа |
| "YM" | Месяцы без учета лет | Остаток месяцев после полных лет |
| "MD" | Дни без учета лет и месяцев | Остаток дней после полных месяцев |
| "YD" | Дни без учета лет | Дней до следующего юбилея |
Формула полного стажа:
Чтобы получить красивую строку вида «5 лет 3 мес. 12 дн.», объедините три вызова функции:
=DATEDIF(A1;B1;"Y") & " лет " & DATEDIF(A1;B1;"YM") & " мес. " & DATEDIF(A1;B1;"MD") & " дн."
Этот метод идеален для кадрового делопроизводства и расчета возраста на конкретную дату.
Учет выходных и праздников: NETWORKDAYS
В бизнес-планировании часто требуется знать количество рабочих дней, исключая субботы, воскресенья и государственные праздники.
Стандартная рабочая неделя (Пн–Пт)
Используйте функцию РАБДНИ (в английской версии NETWORKDAYS).
Синтаксис: =РАБДНИ(начало; конец; [праздники])
- Начало, Конец: Диапазон дат.
- Праздники: Необязательный диапазон ячеек, где перечислены даты праздничных дней.
Пример: Рассчитаем рабочие дни с 1 марта по 9 мая 2026 года. В диапазоне D1:D3 записаны праздники: 08.03, 01.05, 09.05. Формула:
=РАБДНИ("01.03.2026"; "09.05.2026"; D1:D3)
Функция автоматически исключит все субботы и воскресенья внутри периода, а также даты из списка праздников.
Нестандартный график (NETWORKDAYS.INTL)
Если ваши выходные — это, например, пятница и суббота (как в некоторых восточных странах) или только воскресенье, используйте РАБДНИ.ИНТЛ (NETWORKDAYS.INTL).
Синтаксис: =РАБДНИ.ИНТЛ(начало; конец; [код_выходных]; [праздники])
Аргумент [код_выходных] позволяет задать любой режим:
1или пропуск — Сб, Вс (стандарт)2— Вс, Пн7— Только Вс11— Только Сб- И другие коды от 1 до 17.
Сравнение методов расчета
Выбор инструмента зависит от вашей конкретной задачи.
| Задача | Рекомендуемая функция | Почему |
|---|---|---|
| Простое кол-во дней | DAYS или B1-A1 | Быстро, понятно, работает везде |
| Возраст / Стаж (годы, месяцы) | DATEDIF | Единственный способ получить разбивку по периодам |
| Срок выполнения проекта | РАБДНИ | Исключает выходные, реалистичная оценка |
| Точность до часов/минут | Вычитание с форматом времени | Сохраняет дробную часть суток |
| Сложный график смен | РАБДНИ.ИНТЛ | Гибкая настройка выходных дней |
Ловушка региональных настроек:
В русской локализации разделитель аргументов в формулах — точка с запятой (;), а в английской — запятая (,). Также названия функций отличаются: DAYS → КОЛВОДНЕЙ (в старых версиях) или остается DAYS, DATEDIF → РАЗНДАТ. Если формула выдает ошибку #ИМЯ?, проверьте название функции на вашем языке интерфейса.
Частые ошибки и их решение
Даже опытные пользователи сталкиваются с проблемами при работе со временем. Вот чек-лист для исправления ошибок:
-
Ошибка #ЗНАЧ!
- Причина: Одна из дат записана как текст (например, «10.01.2026 » с лишним пробелом или апострофом в начале).
- Решение: Выделите столбец с датами → вкладка «Данные» → «Текст по столбцам» → кнопка «Готово». Это принудительно конвертирует текст в даты.
-
Результат выглядит как число (44562)
- Причина: Ячейке присвоен «Общий» числовой формат вместо «Дата».
- Решение: Нажмите
Ctrl+1и выберите формат «Дата».
-
Отрицательный результат при расчете возраста
- Причина: Дата рождения стоит позже текущей даты (опечатка в годе) или аргументы в
DATEDIFперепутаны местами. - Решение: Проверьте порядок ячеек: сначала ранняя дата, потом поздняя.
- Причина: Дата рождения стоит позже текущей даты (опечатка в годе) или аргументы в
-
Проблема 1900/1904 года
- Причина: Файл создан на Mac (где отсчет идет с 1904 года), а открыт на Windows. Даты сдвигаются на 4 года (1462 дня).
- Решение: Файл → Параметры → Дополнительно → раздел «При пересчете этой книги» → снимите галочку «Использовать систему дат 1904».
Ответы на популярные вопросы (FAQ)
Как посчитать количество полных месяцев между датами?
Используйте формулу =DATEDIF(A1; B1; "M"). Она вернет целое число месяцев, игнорируя оставшиеся дни.
Можно ли прибавить к дате определенное количество дней?
Да, это самая простая операция. Если в ячейке A1 дата, формула =A1 + 30 прибавит 30 дней. Не забудьте применить к ячейке с формулой формат «Дата».
Как выделить просроченные задачи цветом?
Используйте условное форматирование. Выделите столбец с датами → Главная → Условное форматирование → Правила выделения ячеек → Меньше... → Введите формулу =СЕГОДНЯ(). Все даты, которые меньше сегодняшней (прошедшие), окрасятся в выбранный цвет.
Работает ли DATEDIF в новых версиях Excel 365?
Да, функция продолжает работать, несмотря на то, что Microsoft не добавляет её в список подсказок. Она считается устаревшей, но надежной для обратной совместимости. Для новых проектов рекомендуется осваивать комбинации функций ГОД, МЕСЯЦ и ДЕНЬ, однако DATEDIF остается самым компактным решением для стажа.