Работа с датами в Microsoft Excel — одна из самых востребованных задач, с которой сталкиваются бухгалтеры, менеджеры проектов, логисты и даже обычные пользователи. Хотите узнать, сколько дней осталось до дедлайна? Нужно рассчитать срок действия договора или определить рабочие дни между двумя датами? Всё это можно сделать с помощью встроенных функций программы — и сегодня мы разберём 7 проверенных способов, как в Excel высчитать дату с учётом разных сценариев.
Многие ошибочно думают, что для работы с датами нужны глубокие знания программирования. На самом деле, даже новичок сможет освоить базовые функции за 10-15 минут. Главное — понимать, что Excel хранит даты как числа (где 1 соответствует 1 января 1900 года), а время — как дробную часть. Это знание поможет избежать ошибок при вычислениях. Далее вы найдёте пошаговые инструкции с формулами, примерами и визуальными таблицами, которые упростят работу с календарём в электронных таблицах.
———
1. Базовые принципы: как Excel работает с датами
Прежде чем переходить к формулам, важно разобраться, как Excel интерпретирует даты. Программа использует серийный номер даты — это количество дней, прошедших с 1 января 1900 года. Например, дата 01.01.2026 в Excel хранится как число 45292. Такое представление позволяет легко выполнять арифметические операции: прибавлять дни, вычитать месяцы или сравнивать даты между собой.
Чтобы увидеть серийный номер любой даты, достаточно изменить формат ячейки на Общий:
- Выделите ячейку с датой.
- Нажмите правой кнопкой мыши и выберите
Формат ячеек. - Перейдите на вкладку
Числои выберите форматОбщий.
Это полезно знать, если вы работаете с формулами, где требуется преобразовать текст в дату или наоборот. Например, функция =ДАТАЗНАЧ("01.01.2026") вернёт серийный номер, который Excel распознаёт как дату.
⚠️
Внимание: В Excel для Mac система отсчёта начинается с 1 января 1904 года, а не 1900. Это может привести к расхождению в 4 года при импорте данных из других источников. Чтобы избежать ошибок, проверьте настройки в Параметры Excel → Дополнительно → При переходе на эту книгу → Дата 1904.
2. Как прибавить или вычесть дни к дате
Самая простая операция — сдвиг даты на определённое количество дней. Для этого не нужны сложные функции: достаточно использовать арифметические действия. Например, чтобы узнать дату через 15 дней от сегодняшнего дня, введите:
=СЕГОДНЯ()+15
А если нужно прибавить дни к конкретной дате (например, 10.05.2026), используйте формулу:
=ДАТА(2026;5;10)+30
где 30 — количество дней, которые вы хотите добавить.
Для вычитания дней используйте знак -:
=ДАТА(2026;5;10)-7
🔹 Практические примеры:
- 📅 Срок оплаты счёта:
=ДАТА(2026;3;15)+14(14 дней на оплату). - ⏳ Остаток до дедлайна:
=ДАТА(2026;6;30)-СЕГОДНЯ()(сколько дней осталось до 30 июня). - 📦 Срок доставки:
=СЕГОДНЯ()+5(доставка через 5 рабочих дней).
3. Работа с месяцами и годами: функция ДАТА()
Чтобы прибавить или вычесть месяцы, используйте функцию =ДАТА(). Её синтаксис:
=ДАТА(год; месяц; день)
Где:
- год — год даты (может быть четырёхзначным или двухзначным, например, 24 для 2026).
- месяц — номер месяца (от 1 до 12).
- день — день месяца (от 1 до 31).
🔹 Пример 1: Прибавить 3 месяца к дате 15.02.2026:
=ДАТА(2026; 2+3; 15)
Результат: 15.05.2026.
🔹 Пример 2: Вычесть 1 год и 2 месяца из текущей даты:
=ДАТА(ГОД(СЕГОДНЯ())-1; МЕСЯЦ(СЕГОДНЯ())-2; ДЕНЬ(СЕГОДНЯ()))
⚠️
Внимание: Если при вычитании месяцев результат выходит за пределы года (например,МЕСЯЦ(СЕГОДНЯ())-2для января даст-1), Excel автоматически скорректирует год. Но лучше использовать функцию=ДАТАМЕС()(см. следующий раздел), чтобы избежать ошибок.
☑️ Проверка формулы перед использованием
4. Функция ДАТАМЕС(): универсальный инструмент для месяцев
Функция =ДАТАМЕС() специально создана для добавления или вычитания месяцев к дате. Её преимущество — автоматическая корректировка года при переходе через границы месяца. Синтаксис:
=ДАТАМЕС(начальная_дата; количество_месяцев)
🔹 Примеры:
- 📅 Продление абонемента:
=ДАТАМЕС("15.03.2026"; 6)(прибавить 6 месяцев). - 📉 Истечение гарантии:
=ДАТАМЕС(СЕГОДНЯ(); -12)(вычесть 1 год). - 📈 Квартальный отчёт:
=ДАТАМЕС("31.12.2023"; 3)(дату через квартал).
💡 Секретный приём: Чтобы прибавить годы, умножьте количество лет на 12. Например, прибавить 2 года:
=ДАТАМЕС("10.10.2026"; 2*12)
5. Разница между датами: функция РАЗНДАТ()
Функция =РАЗНДАТ() позволяет вычислить разницу между двумя датами в днях, месяцах или годах. Это незаменимый инструмент для расчёта стажа, сроков выполнения задач или возраста. Синтаксис:
=РАЗНДАТ(начальная_дата; конечная_дата; единица_измерения)
Где единица_измерения может принимать значения:
- "d" — дни,
- "m" — месяцы,
- "y" — годы.
🔹 Примеры использования:
| Задача | Формула | Результат (для дат 01.01.2020 и 15.05.2026) |
|---|---|---|
| Количество полных лет | =РАЗНДАТ("01.01.2020"; "15.05.2026"; "y") |
4 |
| Количество месяцев между датами | =РАЗНДАТ("01.01.2020"; "15.05.2026"; "m") |
52 |
| Количество дней | =РАЗНДАТ("01.01.2020"; "15.05.2026"; "d") |
1586 |
⚠️
Внимание: ФункцияРАЗНДАТ()не учитывает високосные годы при расчёте в месяцах. Например, разница между28.02.2023и28.02.2026в месяцах будет12, хотя фактически прошло 12 месяцев и 1 день (из-за 29 февраля 2026). Для точных расчётов используйте комбинацию сДАТАМЕС().
Используйте формулу:
где Как посчитать возраст с учётом дня рождения?
=ЕСЛИ(ИЛИ(МЕСЯЦ(СЕГОДНЯ())>МЕСЯЦ(A2); И(МЕСЯЦ(СЕГОДНЯ())=МЕСЯЦ(A2); ДЕНЬ(СЕГОДНЯ())>=ДЕНЬ(A2))); РАЗНДАТ(A2; СЕГОДНЯ(); "y"); РАЗНДАТ(A2; СЕГОДНЯ(); "y")-1)A2 — ячейка с датой рождения. Формула проверяет, прошёл ли день рождения в этом году.
6. Рабочие дни: функция ЧИСТРАБДНИ()
Если вам нужно высчитать дату с учётом только рабочих дней (исключая выходные и праздники), используйте функцию =ЧИСТРАБДНИ(). Она идеально подходит для расчёта сроков выполнения задач, доставки или производственных графиков. Синтаксис:
=ЧИСТРАБДНИ(начальная_дата; количество_дней; [праздники])
Где [праздники] — необязательный диапазон ячеек с датами праздников.
🔹 Пример: Рассчитать дату завершения проекта через 10 рабочих дней с учётом новогодних каникул:
=ЧИСТРАБДНИ(СЕГОДНЯ(); 10; B2:B5)
где B2:B5 — ячейки с датами праздников (например, 01.01.2026, 02.01.2026 и т.д.).
📌 Важно: По умолчанию ЧИСТРАБДНИ() считает субботу и воскресенье выходными. Если у вас другой график (например, рабочая суббота), используйте функцию =ЧИСТРАБДНИ.МЕЖД(), где можно указать собственные выходные дни.
7. Продвинутые техники: динамические даты и условная логика
Для сложных расчётов можно комбинировать функции дат с условной логикой (ЕСЛИ), поиском (ВПР) или массивами. Рассмотрим несколько примеров:
🔹 Пример 1: Автоматическое определение квартала
=ЕСЛИ(МЕСЯЦ(A2)<=3; "Q1"; ЕСЛИ(МЕСЯЦ(A2)<=6; "Q2"; ЕСЛИ(МЕСЯЦ(A2)<=9; "Q3"; "Q4")))
где A2 — ячейка с датой.
🔹 Пример 2: Проверка просрочки платежа
=ЕСЛИ(СЕГОДНЯ()>A2; "Просрочено"; "Активно")
где A2 — дата оплаты.
🔹 Пример 3: Расчёт даты следующего рабочего дня после праздников
=ЕСЛИ(ЧИСТРАБДНИ(СЕГОДНЯ();1;B2:B10)=0; ЧИСТРАБДНИ(СЕГОДНЯ();2;B2:B10); ЧИСТРАБДНИ(СЕГОДНЯ();1;B2:B10))
Эта формула проверяет, является ли завтра рабочим днём. Если нет (например, из-за праздников), она возвращает следующий рабочий день.
📊 Таблица комбинаций функций для сложных задач:
| Задача | Формула | Пояснение |
|---|---|---|
| Последний день месяца | =ДАТА(ГОД(A2); МЕСЯЦ(A2)+1; 0) |
Возвращает 31.01.2026 для любой даты января 2026 |
| Первый день квартала | =ДАТА(ГОД(A2); ОКРВНИЗ(МЕСЯЦ(A2)/3;0)*3+1; 1) |
Для 15.05.2026 вернёт 01.04.2026 |
| Количество будних дней между датами | =ЧИСТРАБДНИ(A2; B2; C2:C10)-1 |
Вычитаем 1, чтобы не учитывать начальную дату |
FAQ: Ответы на частые вопросы
🔹 Как в Excel посчитать количество дней между двумя датами, исключая выходные?
Используйте функцию =ЧИСТРАБДНИ(начальная_дата; конечная_дата; [праздники]). Если праздников нет, оставьте третий аргумент пустым. Например:
=ЧИСТРАБДНИ("01.01.2026"; "31.01.2026")
вернёт количество рабочих дней в январе 2026 года (исключая субботы и воскресенья).
🔹 Почему функция РАЗНДАТ возвращает неверное количество месяцев?
Функция РАЗНДАТ считает полные месяцы между датами, игнорируя дни. Например, разница между 31.01.2026 и 01.03.2026 в месяцах будет 1, хотя фактически прошло 1 месяц и 1 день. Для точного расчёта комбинируйте РАЗНДАТ с проверкой дней:
=РАЗНДАТ(A2; B2; "m") & " мес. " & РАЗНДАТ(A2; B2; "md") & " дн."
🔹 Можно ли в Excel автоматически обновлять дату при открытии файла?
Да, для этого используйте комбинацию функций СЕГОДНЯ() и ТДАТА() (последняя обновляется при каждом изменении файла). Однако автоматическое обновление при открытии требует макросов. Вставьте этот код в модуль VBA:
Private Sub Workbook_Open()
Sheets("Лист1").Range("A1").Value = Date
End Sub
где Лист1 — название вашего листа, а A1 — ячейка для даты.
🔹 Как преобразовать текст в дату (например, "15 мая 2026")?
Используйте функцию =ДАТАЗНАЧ() для форматов типа DD.MM.YYYY или DD/MM/YYYY. Для нестандартных форматов (например, "15 мая 2026") применяйте комбинацию функций:
=ДАТА(ПРАВСИМВ(A2;4); ПОИСКПОЗ(ЛЕВСИМВ(A2;3); {"янв";"фев";"мар";"апр";"мая";"июн";"июл";"авг";"сен";"окт";"ноя";"дек";}0); ЧИСЛОТЕКСТ(ЛЕВСИМВ(A2;2)))
где A2 — ячейка с текстом "15 мая 2026".
🔹 Почему Excel показывает дату как ######?
Это происходит в трёх случаях:
- Ширина столбца слишком мала — расширьте его.
- Результат формулы — отрицательная дата (например, вычитание большего количества дней, чем содержится в дате). Используйте
=ЕСЛИОШИБКА()для обработки. - Неправильный формат ячейки — измените его на
Дата.