Расчет интервалов времени и возраста в Excel
Чтобы посчитать разницу между датами или возраст в Excel, используйте простые арифметические операции (вычитание) для дней или специализированные функции DATEDIF и NETWORKDAYS для месяцев, лет и рабочих дней. Например, формула =DATEDIF(A1; TODAY(); "Y") мгновенно покажет полный возраст в годах, а =B1-A1 вернет количество дней между двумя датами.
Важно про разделители: В русской версии Excel аргументы в формулах разделяются точкой с запятой (;), а не запятой. Если у вас английская локаль, замените ; на ,.
Основы работы с датами
В Excel даты хранятся как порядковые номера, где 1 соответствует 1 января 1900 года. Это позволяет выполнять над ними математические действия.
- Вычитание: Разница между двумя датами (
Дата2 - Дата1) всегда дает количество дней. - Функция СЕГОДНЯ(): Возвращает текущую дату системы, обновляясь при каждом открытии файла.
- Форматирование: Если после вычисления вы видите дату вместо числа (например,
05.05.1900вместо5), измените формат ячейки на «Общий» или «Числовой».
Как посчитать количество дней
Самый простой способ узнать, сколько дней прошло между двумя событиями — вычесть одну дату из другой.
Формула:
=B2 - A2
Где A2 — начальная дата, B2 — конечная.
Если нужно учесть только рабочие дни (исключая субботы и воскресенья), используйте функцию ЧИСТРАБДНИ (в англ. версии NETWORKDAYS):
=ЧИСТРАБДНИ(A2; B2)
Эта функция автоматически исключает выходные. Если в вашей компании другие выходные или есть список праздников, их можно указать третьим аргументом.
Расчет полных недель
Excel не имеет отдельной функции для подсчета недель, поэтому мы делим разницу дней на 7. Чтобы получить количество полных недель (без дробной части), оберните формулу в функцию ЦЕЛОЕ (или INT).
Формула:
=ЦЕЛОЕ((B2 - A2) / 7)
Пример: Между 13 апреля и 13 мая 30 дней. Формула вернет 4 полные недели.
Подсчет полных месяцев и лет
Для точного расчета календарных месяцев и лет, где учитывается разная длительность месяцев (28, 30, 31 день), лучше всего использовать скрытую, но надежную функцию РАЗНДАТ (DATEDIF).
Синтаксис: =РАЗНДАТ(нач_дата; кон_дата; "единица")
| Единица | Результат | Пример формулы |
|---|---|---|
| "M" | Полные месяцы | =РАЗНДАТ(A2; B2; "M") |
| "Y" | Полные годы | =РАЗНДАТ(A2; B2; "Y") |
| "MD" | Дни без учета месяцев и лет | =РАЗНДАТ(A2; B2; "MD") |
| "YM" | Месяцы без учета лет | =РАЗНДАТ(A2; B2; "YM") |
Лайфхак для сложного формата:
Чтобы получить текст вида «3 года 5 месяцев», объедините функции:
=РАЗНДАТ(A2; B2; "Y") & " лет, " & РАЗНДАТ(A2; B2; "YM") & " месяцев"
Как рассчитать возраст по дате рождения
Расчет возраста — это частный случай подсчета полных лет от даты рождения до сегодняшнего дня.
Базовая формула (только годы):
=РАЗНДАТ(A2; СЕГОДНЯ(); "Y")
Где A2 — ячейка с датой рождения.
Точный возраст (годы, месяцы, дни): Если требуется максимальная детализация (например, для медицинских карт или поздравлений):
=РАЗНДАТ(A2; СЕГОДНЯ(); "Y") & " лет, " &
РАЗНДАТ(A2; СЕГОДНЯ(); "YM") & " мес., " &
РАЗНДАТ(A2; СЕГОДНЯ(); "MD") & " дн."
Результат будет выглядеть так: 35 лет, 8 мес., 2 дн.
Учет праздников и нестандартных выходных
Стандартная функция ЧИСТРАБДНИ считает выходными субботу и воскресенье. Если ваш график отличается (например, скользящий график или выходные только воскресенье), используйте ЧИСТРАБДНИ.ИНТЛ (NETWORKDAYS.INTL).
Формула:
=ЧИСТРАБДНИ.ИНТЛ(нач_дата; кон_дата; "код_выходных"; [праздники])
- Код выходных: Строка из семи нулей и единиц, где 1 — выходной. Порядок дней: Пн, Вт, Ср, Чт, Пт, Сб, Вс.
"0000011"— стандартные выходные (Сб, Вс)."0000001"— только воскресенье."1111110"— только понедельник выходной (редко, но бывает).
- Праздники: Диапазон ячеек со списком праздничных дат (например,
$F$2:$F$10).
Частые ошибки
- Результат отображается как дата. Вы вычли даты, получили число 5, но ячейка отформатирована как дата (05.01.1900).
- Решение: Выделите ячейку → вкладка «Главная» → выберите формат «Общий» или «Числовой».
- Ошибка #ЗНАЧ! (#VALUE!). Одна из ячеек содержит текст, а не дату, или дата записана неверно (например, через дефис в текстовом формате, который Excel не распознает).
- Решение: Проверьте формат исходных данных. Используйте функцию
ДАТАЗНАЧ, если даты импортированы из текста.
- Решение: Проверьте формат исходных данных. Используйте функцию
- Отрицательный результат. Начальная дата больше конечной.
- Решение: Функция
РАЗНДАТтребует, чтобы первая дата была меньше второй. Для простого вычитания используйте функциюABS(МОДУЛЬ), если порядок дат может меняться:=ABS(B2-A2).
- Решение: Функция
FAQ
Почему функция DATEDIF (РАЗНДАТ) не появляется в подсказках автозаполнения? Это устаревшая функция, оставленная для совместимости с Lotus 1-2-3. Она полностью рабочая, но Microsoft скрыл её из списка подсказок. Просто впишите название вручную.
Как посчитать стаж работы сотрудника?
Используйте ту же логику, что и для возраста. Дата приема — первая дата, дата увольнения (или СЕГОДНЯ()) — вторая. Используйте код "Y" для полных лет стажа.
Можно ли считать дни до конца года?
Да. Формула: =ДАТА(ГОД(СЕГОДНЯ()); 12; 31) - СЕГОДНЯ(). Она вычтет текущую дату из 31 декабря текущего года.