Функции дат в Excel: РАЗНДАТ, ЧИСТРАБДНИ, КОНМЕСЯЦА
Практика3 минРедакция Innovialabs
Коротко
Дата в Excel — это число, поэтому сроки считаются сложением, рабочие дни — через ЧИСТРАБДНИ и РАБДЕНЬ со списком праздников, возраст и стаж — через РАЗНДАТ, концы месяцев — через КОНМЕСЯЦА.
Короткий ответ
Excel хранит дату как порядковое число дней, а то, что вы видите, — лишь формат ячейки. Поэтому:
- срок через 30 календарных дней —
=A2+30; - рабочие дни между датами — ЧИСТРАБДНИ (NETWORKDAYS);
- дата через N рабочих дней — РАБДЕНЬ (WORKDAY);
- полные годы и месяцы между датами — РАЗНДАТ (DATEDIF);
- последний день месяца — КОНМЕСЯЦА (EOMONTH).
Ниже формулы для русской версии Excel с разделителем «;». В английской версии и в Google Таблицах используются английские названия из скобок, разделитель зависит от региональных настроек.
Дедлайны в календарных и рабочих днях
Календарный срок — простое сложение:
=A2+14
Срок в рабочих днях с учётом выходных и праздников. Список праздников храните на отдельном листе и дайте диапазону имя, например Праздники:
=РАБДЕНЬ(A2; 10; Праздники)
РАБДЕНЬ не считает саму начальную дату: отсчёт начинается со следующего дня.
Шестидневка. Если выходной только воскресенье, используйте версии с суффиксом .МЕЖД. Строка из семи символов описывает неделю с понедельника, где 1 — выходной:
=РАБДЕНЬ.МЕЖД(A2; 10; "0000001"; Праздники)
Рабочие дни между датами
=ЧИСТРАБДНИ(A2; B2; Праздники)
=ЧИСТРАБДНИ.МЕЖД(A2; B2; "0000001"; Праздники)
ЧИСТРАБДНИ включает обе даты, начальную и конечную, если они рабочие. Это частая причина расхождения на один день с ручным подсчётом.
Список праздников обновляйте каждый год: часть праздников привязана к лунному календарю, а выходные дни могут переноситься официальными решениями.
Возраст и стаж: РАЗНДАТ
РАЗНДАТ не отображается в подсказках мастера функций, но работает. Третий аргумент задаёт единицу:
| Код | Что возвращает |
|---|---|
| "Y" | Полные годы |
| "M" | Полные месяцы |
| "D" | Дни |
| "YM" | Месяцы сверх полных лет |
| "YD" | Дни сверх полных лет |
| "MD" | Дни сверх полных месяцев |
Возраст на сегодня:
=РАЗНДАТ(B2; СЕГОДНЯ(); "Y")
Стаж в виде «3 г. 7 мес.»:
=РАЗНДАТ(B2; СЕГОДНЯ(); "Y") & " г. " & РАЗНДАТ(B2; СЕГОДНЯ(); "YM") & " мес."
Важно: начальная дата должна быть раньше конечной, иначе будет ошибка #ЧИСЛО!. Код "MD" в отдельных случаях даёт неверный результат, и Microsoft не рекомендует на него полагаться.
Концы месяцев: КОНМЕСЯЦА
Второй аргумент — сдвиг в месяцах: 0 — текущий, 1 — следующий, −1 — предыдущий.
=КОНМЕСЯЦА(A2; 0) последний день месяца
=КОНМЕСЯЦА(A2; -1)+1 первый день месяца
=КОНМЕСЯЦА(A2; 1) оплата до конца следующего месяца
=ДЕНЬ(КОНМЕСЯЦА(A2; 0)) количество дней в месяце
Если результат показывается числом вроде 46387, это не ошибка: просто задайте ячейке формат даты. Для сдвига на целые месяцы с сохранением дня есть ДАТАМЕС (EDATE).
Форматы дат
- Формат ячейки (Ctrl+1) меняет только отображение, значение остаётся датой, и с ним можно считать.
- ТЕКСТ превращает дату в строку для подписей:
=ТЕКСТ(A2; "ДД.ММ.ГГГГ"). Коды формата зависят от языка Excel: в английской версии это "dd.mm.yyyy". - Не используйте ТЕКСТ в ячейках, по которым потом считаете: результат — уже текст.
Даты, сохранённые как текст
Признаки: даты прижаты к левому краю, сортировка идёт «по алфавиту», =ЕЧИСЛО(A2) возвращает ЛОЖЬ.
Способы исправить:
- Текст по столбцам. Выделите столбец, выберите «Данные → Текст по столбцам», на последнем шаге укажите формат «Дата» и порядок ДМГ.
- ДАТАЗНАЧ —
=ДАТАЗНАЧ(A2)работает, если текст совпадает с региональным форматом дат. - Сборка из частей для строк вида «25.12.2026», не зависящая от настроек:
=ДАТА(ПРАВСИМВ(A2; 4); ПСТР(A2; 4; 2); ЛЕВСИМВ(A2; 2))
Перед этим уберите лишние пробелы через СЖПРОБЕЛЫ, а неразрывные пробелы из выгрузок — через ПОДСТАВИТЬ.