Как вычитать даты в Excel

Вручную считать количество дней между датами удобно только для единичных случаев. При большом объёме данных это потребует много времени и увеличит риск ошибок. К счастью, Excel предоставляет набор формул и приёмов, которые помогают быстро и надежно вычитать даты и получать нужные интервалы.
Краткий обзор подходов
- Для вычитания дней чаще всего достаточно простой арифметики с датами: A2 - B2 или A2 + (-N).
- Для вычитания месяцев удобно использовать функцию EDATE, которая корректно обрабатывает разные длины месяцев.
- Для вычитания лет применяют комбинацию DATE и YEAR/MONTH/DAY, чтобы сохранить день и месяц.
- Для одновременной коррекции лет, месяцев и дней используют составную формулу на основе DATE(YEAR(…)+…, MONTH(…)+…, DAY(…)+…).
Важно: перед применением формул убедитесь, что формат ячеек соответствует Дата или Число. На Mac нажмите ⌘+1, на Windows — CTRL+1.
1. Вычитание месяцев с помощью EDATE
EDATE — простая и надёжная функция для сдвига даты на заданное число месяцев. Она корректно учитывает разные длины месяцев и високосные годы.
Пример использования:
- Введите начальную дату в ячейку A2 (например, 2025-03-15).
- Введите число месяцев для вычитания в ячейку B2 как отрицательное значение (например, -6 чтобы отнять 6 месяцев).
- В ячейку C2 вставьте формулу:
=EDATE(A2,B2)- Скопируйте формулу вниз по столбцу для остальных строк.
EDATE полезна, когда нужен сдвиг именно на целое число месяцев. Если вам нужно получить количество месяцев между датами (интервал), используйте функцию DATEDIF с единицей “m”.
2. Вычитание дней (простая арифметика)
Самый простой случай — вычитание или добавление дней. Excel хранит даты как числа, поэтому арифметика над ними работает напрямую.
Пример:
- Введите начальную дату в A2.
- Введите отрицательное число дней в B2 (например, -10 чтобы отнять 10 дней).
- В C2 используйте формулу:
=A2+B2Эта формула сработает быстро для единичных и массовых корректировок.
Кейсы, когда это удобно:
- Подвинуть дедлайн назад на N дней.
- Получить дату напоминания за несколько дней до события.
Если требуется визуально отмечать изменённые строки, добавьте столбец со статусом и маркером (например, значок галочки).
3. Вычитание лет с сохранением дня и месяца
Чтобы отнять годы, сохранив день и месяц исходной даты, комбинируйте функции DATE, YEAR, MONTH и DAY.
Формула:
=DATE(YEAR(A2)+B2,MONTH(A2),DAY(A2))Где B2 — отрицательное число лет (например, -3 чтобы отнять 3 года).
Пошагово:
- В A2 — исходная дата.
- В B2 — количество лет для вычитания (отрицательное число).
- В C2 — вставьте формулу выше и скопируйте вниз.
Замечание: если исходная дата — 29 февраля, то при переносе на невисокосный год Excel преобразует дату на 1 марта или на 28 февраля в зависимости от версии и настроек. Проверяйте такие граничные случаи.
4. Одновременное вычитание лет, месяцев и дней
Чтобы менять несколько компонентов даты одновременно (годы, месяцы, дни), используйте составную формулу:
=DATE(YEAR(A2)+B2,MONTH(A2)+C2,DAY(A2)+D2)Где в B2, C2 и D2 находятся корректировки для лет, месяцев и дней (можно отрицательные значения).
Позиционные шаги:
- A2 — исходная дата.
- B2 — корректировка по годам (например, -1).
- C2 — корректировка по месяцам (например, -3).
- D2 — корректировка по дням (например, -7).
- E2 — формула выше; скопируйте для остальных строк.
Эта формула автоматически нормализует составляющие: если месяцы выходят за пределы 1–12, Excel подстроит год; если дни перекрывают границы месяца, Excel также корректирует дату.
Когда эти формулы не подходят: типичные ограничения и ошибки
- Формула A2+B2 работает только если B2 — число дней. Для месяцев/лет она некорректна.
- EDATE корректно перемещает по месяцам, но не подойдёт, если нужно считать разницу в месяцах между двумя датами (в этом случае — DATEDIF).
- DATE(YEAR(…)+…) может дать неожиданный результат для 29 февраля при переносе на невисокосный год.
- Если даты представлены текстом, сначала преобразуйте их в формат Дата с помощью DATEVALUE или TEXT->Дата (Функция ДАТАЗНАЧЕН).
Альтернативные подходы и дополнительные приёмы
- DATEDIF(A2,B2,”d”) — возвращает количество дней между датами; “m” — число полных месяцев; “y” — полных лет.
- NETWORKDAYS(start,end,holidays) — считает рабочие дни, исключая выходные и необязательные праздничные даты.
- WORKDAY(start,days,holidays) — добавляет/вычитает рабочие дни и возвращает дату финиша.
Практическая методика: как подготовить таблицу для массовых операций
- Создайте столбцы: Исходная дата (A), Годы (B), Месяцы (C), Дни (D), Результат (E).
- Задайте формат столбца A и E как Дата (CTRL+1 / ⌘+1).
- В колонках B–D используйте числа (минус для вычитания).
- В E2 вставьте формулу =DATE(YEAR(A2)+B2,MONTH(A2)+C2,DAY(A2)+D2) и протяните вниз.
- Проверьте выборочные строки вручную и сохраните копию файла перед массовыми изменениями.
Критерии приёмки
- Формула корректно вычисляет ожидаемые значения для 10 тестовых случаев, включая переход через год и високосный год.
- Формат результата — Дата, отображаемая в нужном локальном виде (дд.мм.гггг или другой по настройке).
- Для рабочих дней — учтены праздники, если использована NETWORKDAYS или WORKDAY.
Роль-based checklist — кому что проверить
- Аналитик: проверить корректность формул на 10 крайних кейсах.
- Бухгалтер: убедиться, что формат даты соответствует учётной политике.
- Менеджер проекта: подтвердить сроки после массовых корректировок.
- Разработчик макросов: при необходимости автоматизировать применение формул.
Проверочные сценарии (test cases)
- Ввод: A2=2020-02-29, B2=-1 (годы) → Ожидаем: 2019-02-28 или 2019-03-01 (проверьте поведение и согласуйте с требованиями).
- Ввод: A2=2021-03-31, C2=-1 (месяцы через EDATE) → Ожидаем: 2021-02-28 или корректный вариант в зависимости от логики смещения.
- Ввод: A2=2025-01-10, D2=-15 (дни) → Ожидаем: 2024-12-26.
Быстрый справочник (cheat sheet)
- Вычитать дни: =A2 + (-N) или =A2 - N
- Вычитать месяцы: =EDATE(A2, -N)
- Вычитать годы: =DATE(YEAR(A2)-N, MONTH(A2), DAY(A2))
- Одновременно: =DATE(YEAR(A2)+B2, MONTH(A2)+C2, DAY(A2)+D2)
- Разница (дни/месяцы/годы): =DATEDIF(A2, B2, “d”/“m”/“y”)
- Рабочие дни: =NETWORKDAYS(start, end, holidays)
Decision flowchart — какую формулу выбрать
flowchart TD
A[Нужно сдвинуть дату?] -->|Да: на дни| B[Используйте =A+/-N]
A -->|Да: на месяцы| C[Используйте =EDATE'A, N']
A -->|Да: на годы| D[Используйте =DATE'YEAR'A'+N,MONTH'A',DAY'A'']
A -->|Да: комбинированно| E[Используйте =DATE'YEAR'A'+B,MONTH'A'+C,DAY'A'+D']
A -->|Нужно узнать разницу| F[Используйте =DATEDIF'A,B,'d'/'m'/'y'']Советы по локализации и форматам
- Формат отображения дат в Excel зависит от региональных настроек системы и настроек книги. После вычислений проверьте представление дат.
- При экспорте в CSV используйте формат ISO (гггг‑мм‑дд), чтобы сохранить однозначность.
Итог
Excel предоставляет гибкие средства для вычитания дат — от простых арифметических операций до специализированных функций для рабочих дней и сдвигов по месяцам. Выберите формулу под задачу, проверьте граничные случаи (високосные года, 29 февраля, концы месяцев) и всегда сохраняйте резервную копию перед массовыми изменениями.
Ключевые проверки: формат ячеек, тестовые случаи на краевых датах, корректность при переносе через месяцы и годы.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента