Как посчитать дни до дня рождения в Excel: формулы и примеры

Почему Excel идеально подходит для расчёта дней до важных дат

Вы когда-нибудь забывали о дне рождения друга или коллеги? С Microsoft Excel это больше не проблема. Программа позволяет не только хранить списки дат рождения, но и автоматически рассчитывать, сколько дней осталось до каждого события. Это особенно удобно для HR-менеджеров, учителей или просто внимательных людей, которые хотят всегда быть в курсе важных дат.

В отличие от календарных приложений, Excel даёт полный контроль над форматом отображения, позволяет добавлять условное форматирование (например, подсвечивать близкие даты красным) и интегрировать расчёты с другими данными. А главное — всё обновляется автоматически при открытии файла. Даже если вы откроете таблицу через год, формулы пересчитают актуальное количество дней без вашего участия.

В этой статье мы разберём 5 рабочих способов посчитать дни до дня рождения — от простейших формул до продвинутых решений с учётом високосных годов и текущей даты. Вы сможете выбрать метод под свои задачи: будь то одноразовый расчёт или автоматизированная таблица на сотни имён.

Способ 1: Базовая формула с функцией РАЗНДАТ

Функция РАЗНДАТ (или DATEDIF в английской версии) специально создана для вычисления разницы между двумя датами. Она идеально подходит, чтобы посчитать дни до дня рождения, если у вас уже есть столбец с датами.

Синтаксис функции:

=РАЗНДАТ(дата_рождения; СЕГОДНЯ(); "d")

Где:

  • 📅 дата_рождения — ячейка с датой рождения (например, A2)
  • 🔄 СЕГОДНЯ() — текущая дата (обновляется автоматически)
  • 🔢 "d" — формат вывода (дни)

Пример: если в ячейке A2 указана дата 15.05.1990, формула вернёт количество дней до следующего дня рождения (15 мая). Важно: функция автоматически учитывает високосные годы и корректно рассчитывает разницу даже для февраля.

Убедитесь, что дата рождения введена как дата (не текст)|Используйте формат ячейки "Общий" или "Числовой" для результата|Проверьте региональные настройки даты (ДД.ММ.ГГГГ или ММ/ДД/ГГГГ)|Для прошлых дат рождения формула вернёт отрицательное число

-->

⚠️ Внимание: Функция РАЗНДАТ не документирована в официальной справке Excel, но работает во всех версиях программы. В Excel Online и Mac-версии может потребоваться ввод на английском: =DATEDIF(A2,TODAY(),"d").

Способ 2: Учёт будущих дней рождения (если уже прошёл)

Базовая формула из первого способа имеет недостаток: после дня рождения она начинает отсчёт в минус. Чтобы всегда видеть дни до следующего дня рождения (даже если он уже был в этом году), нужно модифицировать формулу:

=РАЗНДАТ(СЕГОДНЯ(); ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(A2); ДЕНЬ(A2)))

Разберём по шагам:

  1. МЕСЯЦ(A2) и ДЕНЬ(A2) — извлекают месяц и день из даты рождения
  2. ГОД(СЕГОДНЯ()) — подставляет текущий год
  3. ДАТА() — собирает полную дату (например, 15.05.2026)
  4. РАЗНДАТ — считает разницу между сегодняшней датой и собранной датой

Если день рождения в этом году уже прошёл, формула вернёт отрицательное число. Чтобы исправить это, обернём её в функцию АБС (абсолютное значение):

=АБС(РАЗНДАТ(СЕГОДНЯ(); ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(A2); ДЕНЬ(A2))))
=ЕСЛИ(РАЗНДАТ(...)<0; РАЗНДАТ(СЕГОДНЯ(); ДАТА(ГОД(СЕГОДНЯ())+1; МЕСЯЦ(A2); ДЕНЬ(A2))); РАЗНДАТ(...))

-->

Способ 3: Расчёт с учётом возраста (для годовщин)

Если вам нужно не только посчитать дни до дня рождения, но и узнать, сколько человеку исполнится лет, комбинируйте РАЗНДАТ с функцией ГОД:

=РАЗНДАТ(A2; СЕГОДНЯ(); "y") & " лет, осталось " & РАЗНДАТ(СЕГОДНЯ(); ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(A2); ДЕНЬ(A2))) & " дней"

Эта формула вернёт текст вида: "25 лет, осталось 45 дней". Для корректной работы:

  • 📏 Убедитесь, что столбец достаточно широкий для текста
  • 🔤 Используйте формат ячейки "Текстовый"
  • 🎂 Для детей до 1 года замените "y" на "m" (месяцы)
Дата рождения Формула Результат
15.05.1990 =РАЗНДАТ(A2;СЕГОДНЯ();"y") 34
01.01.2020 =РАЗНДАТ(A3;СЕГОДНЯ();"y") & " г. " & РАЗНДАТ(СЕГОДНЯ();ДАТА(ГОД(СЕГОДНЯ());1;1));"d") & " дн." 4 г. 120 дн.
29.02.2000 =РАЗНДАТ(A4;СЕГОДНЯ();"y") 24 (високосный год учтён)

Ежедневно|Раз в неделю|Раз в месяц|Только перед праздниками|Не обновляю — всё автоматически

-->

Способ 4: Условное форматирование для визуальных напоминаний

Чтобы важные даты не потерялись в таблице, добавьте условное форматирование. Например, можно выделять красным дни рождения, которые наступят в течение недели, жёлтым — в течение месяца, а зелёным — все остальные.

Инструкция:

  1. Выделите столбец с результатом (дни до дня рождения)
  2. Перейдите на вкладку Главная → Условное форматирование → Правила выделения ячеек
  3. Добавьте 3 правила:
    • 🔴 "Меньше или равно 7" → красный фон
    • 🟡 "Меньше или равно 30" → жёлтый фон
    • 🟢 "Больше 30" → зелёный фон

Для более точной настройки используйте формулы в правилах. Например, чтобы выделить только дни рождения в текущем месяце:

=И(МЕСЯЦ($A2)=МЕСЯЦ(СЕГОДНЯ()); РАЗНДАТ(СЕГОДНЯ();ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ($A2);ДЕНЬ($A2)))>=0)
⚠️ Внимание: При копировании таблицы с условным форматированием в другой файл правила могут сломаться. Всегда проверяйте ссылки на ячейки после вставки. Для надёжности используйте абсолютные ссылки (например, $A$2).
Как сделать динамическую иконку напоминания

1. Вставьте в ячейку рядом с датой символ (например, 🎂 или ⏰) через Вставка → Символ

2. Примените условное форматирование к этой ячейке с правилом:

=РАЗНДАТ(СЕГОДНЯ();ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ($A2);ДЕНЬ($A2)))<=7

3. Настройте формат: крупный шрифт + красный цвет

Способ 5: Автоматическое обновление через Power Query (для продвинутых)

Если у вас большая база данных (например, 500+ сотрудников), ручной ввод дат неэффективен. Power Query — инструмент в Excel для автоматизации работы с данными — поможет:

  1. Импортировать даты рождения из внешних источников (базы данных, CSV, веб-страницы)
  2. Автоматически добавлять столбец с расчётом дней до дня рождения
  3. Обновлять данные одним кликом
  4. Пример запроса на языке M (для Power Query):

    let
    

    Источник = Excel.CurrentWorkbook(){[Name="Дани"]}[Content],

    ДобавленСтолбец = Table.AddColumn(Источник, "Дней до ДР", each Duration.Days(Date.From(DateTime.LocalNow()) - Date.From(DateTime.Date([Дата рождения])))),

    ИзмененТип = Table.TransformColumnTypes(ДобавленСтолбец,{{"Дней до ДР", Int64.Type}})

    in

    ИзмененТип

    Преимущества этого метода:

    • 🔄 Данные обновляются по кнопке Обновить все (вкладка Данные)
    • 📊 Можно объединять с другими источниками (например, данными из 1С)
    • 🛡️ Минимальный риск ошибок при большом объёме данных

    Типичные ошибки и как их избежать

    Даже в простых формулах легко допустить ошибку. Вот самые распространённые проблемы и их решения:

    Ошибка Причина Решение
    #ИМЯ? Опечатка в названии функции Проверьте регистр: РАЗНДАТ, а не разндат
    #ЗНАЧ! Ячейка с датой пустая или содержит текст Используйте ЕСЛИОШИБКА или проверьте формат ячейки
    Некорректное количество дней Дата введена как текст (например, "15.05.1990") Преобразуйте текст в дату через ДАТАЗНАЧ или измените формат ячейки
    Отрицательные значения День рождения в этом году уже прошёл Используйте модифицированную формулу из Способа 2

    Чтобы проверить, распознаёт ли Excel вашу дату как дату (а не как текст), используйте функцию ТИП:

    =ТИП(A2)

    Если результат 1 — это число (даты в Excel хранятся как числа), если 2 — текст.

    FAQ: Ответы на частые вопросы

    Можно ли посчитать дни до дня рождения в Google Таблицах?

    Да, все формулы из этой статьи работают и в Google Sheets. Замените:

    • СЕГОДНЯ()TODAY()
    • РАЗНДАТDATEDIF
    • Разделитель аргументов функции: в русской версии Excel — ;, в Google Таблицах — ,

Пример для Google Sheets:
=DATEDIF(A2, TODAY(), "d")

Как сделать так, чтобы Excel отправлял напоминания по email?

Excel сам не отправляет письма, но можно автоматизировать процесс:

  1. Сохраните файл в OneDrive или SharePoint
  2. Создайте правило в Power Automate (бесплатно), которое будет проверять файл раз в день
  3. Настройте триггер: если в столбце "Дней до ДР" значение ≤7, отправлять email

Альтернатива: экспортируйте данные в Outlook и настройте напоминания там.

Почему формула возвращает ошибку #ЧИСЛО! для 29 февраля?

Ошибка возникает, если текущий год не високосный, а в дате рождения указано 29 февраля. Excel не может создать дату 29.02.2023, так как её не существует.

Решение: используйте модифицированную формулу:

=ЕСЛИ(ДЕНЬ(A2)=29; ЕСЛИ(МЕСЯЦ(A2)=2; РАЗНДАТ(СЕГОДНЯ(); ДАТА(ГОД(СЕГОДНЯ()); 3; 1)); РАЗНДАТ(...)); РАЗНДАТ(...))

Эта формула для 29 февраля подставит 1 марта.

Как посчитать дни до дня рождения для списка из 1000 человек?

Для больших списков:

  1. Используйте таблицы Excel (вкладка Вставка → Таблица), чтобы формулы автоматически копировались на новые строки
  2. Отключите автоматический пересчёт: Формулы → Параметры вычислений → Вручную (ускорит работу)
  3. Для сортировки по ближайшим датам добавьте столбец с формулой и отсортируйте по нему

Пример формулы для сортировки:

=ЕСЛИ(РАЗНДАТ(...)<0; РАЗНДАТ(СЕГОДНЯ(); ДАТА(ГОД(СЕГОДНЯ())+1; МЕСЯЦ(A2); ДЕНЬ(A2))); РАЗНДАТ(...))
Можно ли сделать так, чтобы Excel показывал не только дни, но и часы?

Да, для этого используйте функцию СЕЙЧАС() вместо СЕГОДНЯ() и формат ячейки "Дата":

=ДАТА(ГОД(СЕЙЧАС()); МЕСЯЦ(A2); ДЕНЬ(A2)) - СЕЙЧАС()

Затем измените формат ячейки на д [дней] ч:мм (через Формат ячеек → Все форматы). Результат будет вида: 14 дней 12:45.