=РАЗНДАТ(A2;B2;"M") считает полные месяцы между начальной датой в A2 и конечной датой в B2. Это функция РАЗНДАТ (по-английски DATEDIF). Третий аргумент, единица, определяет, что считать: "Y" годы, "M" месяцы, "D" дни, а также три единицы, которые не учитывают часть дат. В таблице ниже формулы записаны по-английски, но их можно вводить и по-русски, с точкой с запятой; единицы и в русском Excel пишутся латинскими буквами.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Start | End | Unit | Result | |
| 2 | 2024-04-15 | 2026-09-10 | Y | 2 | |
| 3 | M | 28 | |||
| 4 | D | 878 | |||
| 5 | YM | 4 | |||
| 6 | MD | 26 | |||
| 7 | YD | 148 |
=РАЗНДАТ($A$2;$B$2;D3)С 2024-04-15 по 2026-09-10 проходит 2 полных года, 28 полных месяцев и 878 дней. Измените конечную дату в B2 и посмотрите, как меняется каждая единица. Единицу можно вписать в формулу ("M") или, как здесь, взять из ячейки.
Синтаксис и единицы РАЗНДАТ
=DATEDIF(start_date, end_date, unit)
| Единица | Что считает | С 2024-04-15 по 2026-09-10 |
|---|---|---|
"Y" | полные годы | 2 |
"M" | полные месяцы | 28 |
"D" | дни | 878 |
"YM" | месяцы после последнего полного года | 4 |
"MD" | дни после последнего полного месяца | 26 |
"YD" | дни после последнего полного года | 148 |
«Полные» означает, что РАЗНДАТ никогда не округляет вверх. С 31 января по 28 февраля проходит 0 месяцев, потому что 28 февраля наступает раньше отметки в один месяц. Регистр единицы не важен ("m" тоже работает), но она должна стоять в кавычках или в ячейке.
Почему РАЗНДАТ нет в списке функций
РАЗНДАТ пришла в Excel из Lotus 1-2-3, и Microsoft сохраняет её только ради совместимости. Её нет в окне «Вставка функции», автозавершение формул её не предлагает, и подсказка с аргументами не появляется. При этом она считает в любой версии Excel для Windows и Mac, а также в Google Таблицах. Введите имя целиком вместе с открывающей скобкой, =РАЗНДАТ(, и добавьте аргументы сами.
Месяцы между двумя датами
Полные месяцы нужны большинству договоров, подписок и отчётов о стаже. Для дробного значения ДОЛЯГОДА(A2;B2)*12 возвращает месяцы с сохранённой дробной частью (базис по умолчанию считает каждый месяц равным 30 дням).
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | Full months | Decimal months |
| 2 | 2025-03-10 | 2026-01-05 | 9 | 9.8 |
| 3 | 2024-04-15 | 2026-09-10 | 28 | 28.8 |
| 4 | 2026-01-31 | 2026-02-28 | 0 | 0.9 |
| 5 | 2025-11-01 | 2026-05-01 | 6 | 6.0 |
=РАЗНДАТ(A2;B2;"M")Первая подписка длилась 9 полных месяцев: 5 января наступает раньше 10-го числа, поэтому десятый месяц не засчитывается. Третья строка показывает случай с 31 января, 0 месяцев.
Годы, месяцы и дни вместе
"Y", "YM" и "MD" задуманы для совместного использования. Каждая продолжает с того места, где остановилась предыдущая, поэтому все три вместе отвечают на вопрос «сколько точно»: 2 года, 4 месяца и 26 дней для дат выше. Страница расчёт возраста применяет те же три единицы к датам рождения.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Hired | Years | Months | Days | Service | As of |
| 2 | 2019-06-03 | 7 | 3 | 27 | 7y 3m 27d | 2026-09-30 |
| 3 | 2023-11-20 | 2 | 10 | 10 | 2y 10m 10d |
=B2&"y "&C2&"m "&D2&"d"У первого сотрудника на 2026-09-30 стаж 7 лет, 3 месяца и 27 дней.
Почему РАЗНДАТ возвращает #ЧИСЛО!
РАЗНДАТ отказывается считать назад. Когда начальная дата позже конечной, результат #ЧИСЛО! (по-английски #NUM!; таблицы на этой странице показывают ошибки под английскими именами). Если порядок может быть любым, передайте РАЗНДАТ более раннюю дату через МИН, а более позднюю через МАКС.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | DATEDIF | With MIN and MAX |
| 2 | 2026-03-10 | 2026-01-05 | #NUM! | 64 |
#NUM! Число выходит за допустимые для этой функции пределы.В русском Excel: =РАЗНДАТ(A2;B2;"D")C2 показывает #NUM!; D2 возвращает 64. Для одних только дней =ABS(B2-A2) даёт те же 64 без РАЗНДАТ. РАЗНДАТ также возвращает #ЧИСЛО! для неизвестной единицы вроде "W" и #ЗНАЧ! (#VALUE!), когда дата записана текстом, который Excel не может прочитать как дату.
Единица MD может ошибаться
Документация самой Microsoft не советует пользоваться "MD": когда начального дня нет в месяце перед конечной датой, она может вернуть отрицательное число.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | MD | D |
| 2 | 2026-01-31 | 2026-03-01 | -2 | 29 |
=РАЗНДАТ(A2;B2;"MD")С 31 января по 1 марта результат "MD" равен -2: РАЗНДАТ считает от «31 февраля», а оно переходит в 3 марта, на два дня позже конечной даты. Число дней, 29, верное. Когда начальные даты могут приходиться на 29-е, 30-е или 31-е, показывайте длительность в днях или проверяйте значение MD вручную.
Практика: посчитать месяцы
| A | B | C | |
|---|---|---|---|
| 1 | Start | End | Months |
| 2 | 2025-03-10 | 2026-01-05 |
Ваша очередь: В C2 посчитайте полные месяцы между начальной датой в A2 и конечной датой в B2.
| A | B | C | |
|---|---|---|---|
| 1 | Date 1 | Date 2 | Days |
| 2 | 2026-04-18 | 2026-02-01 |
Ваша очередь: В C2 посчитайте дни между двумя датами, какая бы из них ни была раньше.
Часто задаваемые вопросы
Что делает РАЗНДАТ в Excel?
Она считает полные годы, месяцы или дни между двумя датами: =РАЗНДАТ(A2;B2;"Y") для лет, "M" для месяцев, "D" для дней. Начальная дата должна стоять первой.
Почему я не могу найти РАЗНДАТ в Excel?
РАЗНДАТ оставлена для совместимости с Lotus 1-2-3, поэтому Excel не показывает её в окне вставки функции и в автозавершении формул. Она всё равно работает в любой версии: введите =РАЗНДАТ( полностью и добавьте аргументы сами.
Почему РАЗНДАТ возвращает #ЧИСЛО!?
Начальная дата позже конечной. Поменяйте аргументы местами или используйте =РАЗНДАТ(МИН(A2;B2);МАКС(A2;B2);"D"), если неизвестно, какая дата раньше.
Чем отличаются YM, MD и YD в РАЗНДАТ?
Они не учитывают часть дат: "YM" даёт месяцы, оставшиеся после полных лет, "MD" дни, оставшиеся после полных месяцев, а "YD" дни, оставшиеся после полных лет. Вместе "Y", "YM" и "MD" дают возраст в годах, месяцах и днях.
Работает ли РАЗНДАТ в Google Таблицах?
Да, с теми же аргументами и единицами. В отличие от Excel, Google Таблицы показывают её и в справке по функциям.