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

Введение: зачем считать дни до ДР в Excel?

Вы когда-нибудь забывали о дне рождения коллеги или родственника в последний момент? С Microsoft Excel эта проблема решается за 5 минут — программа умеет автоматически рассчитывать, сколько дней осталось до любой даты, включая ваш следующий день рождения. Достаточно один раз настроить формулу, и вы будете видеть актуальный отсчёт каждый раз при открытии файла.

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

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

Способ 1: Базовая формула без учёта года

Начнём с самого простого варианта — расчёта дней до ближайшего дня рождения без привязки к конкретному году. Этот метод подходит, если вас интересует только количество дней до даты (например, 15 мая), независимо от того, в каком году она наступит.

Допустим, ваш день рождения — 15.05, а сегодня 10.03.2026. Формула будет выглядеть так:

=ДАТА(ГОД(СЕГОДНЯ());5;15)-СЕГОДНЯ()

Разберём её по частям:

  • 📅 СЕГОДНЯ() — возвращает текущую дату (обновляется автоматически при открытии файла).
  • 🔄 ГОД(СЕГОДНЯ()) — извлекает текущий год (2026) для корректного формирования даты.
  • 🎂 ДАТА(ГОД(СЕГОДНЯ());5;15) — создаёт дату "15 мая текущего года".
  • ➖ Вычитание СЕГОДНЯ() из этой даты даёт количество оставшихся дней.
⚠️ Внимание: Если день рождения уже прошёл в этом году, формула вернёт отрицательное число. Чтобы этого избежать, добавьте проверку с функцией ЕСЛИ (см. Способ 3).

Пример результата для 10 марта 2026 года:

Дата сегодняДень рожденияФормулаРезультат
10.03.202615.05.2026=ДАТА(2026;5;15)-СЕГОДНЯ()66 дней
10.03.202601.03.2026=ДАТА(2026;3;1)-СЕГОДНЯ()-9 дней
📊 Как часто вы забываете о днях рождениях?
Никогда
Иногда
Часто
Всегда

Способ 2: Учёт високосных годов

Если ваш день рождения приходится на 29 февраля, стандартная формула даст сбой в невисокосные годы. Например, в 2023 или 2026 году 29 февраля просто не существует, и Excel вернёт ошибку #ЧИСЛО!. Чтобы этого избежать, нужно модифицировать формулу:

=ЕСЛИ(

ДЕНЬ(ДР)=29 И МЕСЯЦ(ДР)=2 И НЕ(ГОД(СЕГОДНЯ())/4=ЦЕЛОЕ(ГОД(СЕГОДНЯ())/4));

ДАТА(ГОД(СЕГОДНЯ());3;1)-СЕГОДНЯ();

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

)

Здесь:

  • 🔍 ДЕНЬ(ДР)=29 И МЕСЯЦ(ДР)=2 — проверяет, приходится ли ДР на 29 февраля.
  • 📊 НЕ(ГОД(СЕГОДНЯ())/4=ЦЕЛОЕ(...)) — определяет, является ли текущий год високосным.
  • 🔄 Если год невисокосный, формула подставляет 1 марта вместо 29 февраля.

В високосном 2026 году формула вернёт точную дату 29.02, а в 2026-м автоматически сдвинет отсчёт на 1 марта.

Способ 3: Корректировка для прошедших дней рождения

Проблема отрицательных значений (когда день рождения уже был в этом году) решается добавлением условия ЕСЛИ. Модифицированная формула будет выглядеть так:

=ЕСЛИ(

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

ДАТА(ГОД(СЕГОДНЯ())+1;МЕСЯЦ(ДР);ДЕНЬ(ДР))-СЕГОДНЯ();

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

)

Логика проста:

  1. Сравниваем дату ДР в текущем году с сегодняшней датой.
  2. Если ДР уже прошёл (ДАТА(...) < СЕГОДНЯ()), берём дату из следующего года.
  3. Если ещё не прошёл — используем текущий год.

Пример для ДР 15 мая:

Текущая датаРезультат формулыПояснение
10.03.202666 днейДР в 2026 году ещё не был
20.05.2026320 днейДР уже прошёл, отсчёт идёт до 15.05.2026

Ячейка с датой рождения названа (например, ДР)|

Формула учитывает условие ЕСЛИ для прошедших дат|

Текущая дата обновляется автоматически (СЕГОДНЯ())|

Проверено на примере 29 февраля (если актуально)

-->

Способ 4: Визуализация отсчёта с условным форматированием

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

Как настроить:

  1. Выделите ячейку с формулой расчёта дней.
  2. Перейдите в Главная → Условное форматирование → Создать правило.
  3. Выберите Форматировать только ячейки, которые содержат.
  4. Установите условие: Значение меньше 7 и задайте красный цвет текста.
  5. Добавьте второе правило для значения больше 30 с зелёным цветом.

Пример правил:

УсловиеФорматПример отображения
Дней ≤ 7Красный текст, жирный5 дней!
7 < Дней ≤ 30Оранжевый текст14 дней
Дней > 30Зелёный текст45 дней

Такой подход позволяет сразу увидеть, когда пора готовиться к празднованию, не вникая в цифры.

Как добавить иконки к отсчёту?

В условном форматировании выберите Наборы значковТреугольники или Флажки. Настройте правила так:

  • 🔴 Красный флажок — ≤ 7 дней
  • 🟡 Жёлтый — ≤ 30 дней
  • 🟢 Зелёный — > 30 дней

Это сделает визуализацию ещё более интуитивной.

Способ 5: Динамический календарь с днём рождения

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

  1. Создайте таблицу с месяцами и днями (например, на 3 месяца вперёд).
  2. В ячейке с датой ДР используйте формулу:
    =ЕСЛИ(A1=ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(ДР);ДЕНЬ(ДР));"🎉 ДР!";"")
  3. Примените условное форматирование для выделения ячейки с "🎉 ДР!" ярким цветом.

Пример структуры календаря:

Апрель 2026Май 2026Июнь 2026
1
2
...
15 🎉
1
2
...
31
1
2
...

Такой календарь обновляется автоматически и всегда показывает актуальные даты.

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

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

  • 🔢 Отрицательные дни: Забыли добавить условие ЕСЛИ для прошедших ДР (см. Способ 3).
  • 📅 Неверный год: Используете фиксированный год (например, ДАТА(2026;5;15)) вместо ГОД(СЕГОДНЯ()).
  • #ЧИСЛО! для 29.02: Не учли високосный год (решение в Способе 2).
  • 🔄 Формула не обновляется: Забыли использовать СЕГОДНЯ() — ввели дату вручную.
⚠️ Внимание: Если вы копируете файл с формулами на другой компьютер, проверьте региональные настройки даты. В некоторых странах формат ММ/ДД/ГГГГ, а не ДД.ММ.ГГГГ, что может сломать расчёты.

Чтобы проверить формулу, используйте Вычисления → Проверка ошибок или нажмите F9 для пересчёта всех ячеек.

FAQ: Частые вопросы

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

Да, все формулы из этой статьи работают и в Google Sheets. Замените СЕГОДНЯ() на TODAY(), а ДАТА() — на DATE(). Синтаксис функций ЕСЛИ (IF), ГОД (YEAR) и других остаётся аналогичным.

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

Используйте формулу с вычитанием времени:

=ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(ДР);ДЕНЬ(ДР);ЧАС(ДР);МИНУТЫ(ДР))-СЕЙЧАС()

Форматируйте ячейку как [д]:ч:м (правая кнопка → Формат ячеек → Число → Время).

Почему формула возвращает ошибку #ИМЯ?

Ошибка #ИМЯ! означает, что Excel не распознаёт имя функции или ячейки. Проверьте:

  • Правильность написания функций (например, СЕГОДНЯ, а не СЕГОДНЯ()).
  • Существует ли присвоенное имя ячейки (например, ДР).
  • Нет ли опечаток в формуле (скобки, точки с запятой).

Можно ли автоматически отправлять напоминание о ДР по email?

Да, но для этого потребуется VBA-скрипт или интеграция с Outlook/Gmail. Пример кода для отправки письма при достижении порога (например, за 3 дня до ДР):

Sub SendBirthdayReminder()

If [ЯчейкаСДнями] <= 3 Then

Call SendMail("example@mail.com", "Напоминание о дне рождения", "До ДР осталось " & [ЯчейкаСДнями] & " дней!")

End If

End Sub

Для работы скрипта нужны настройки макросов и почтового клиента.

Как посчитать дни до ДР для списка людей (например, сотрудников)?

Создайте таблицу с колонками Имя и Дата рождения. В третьей колонке используйте формулу:

=ЕСЛИ(

ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(B2);ДЕНЬ(B2))<СЕГОДНЯ();

ДАТА(ГОД(СЕГОДНЯ())+1;МЕСЯЦ(B2);ДЕНЬ(B2))-СЕГОДНЯ();

ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(B2);ДЕНЬ(B2))-СЕГОДНЯ()

)

Где B2 — ячейка с датой рождения первого человека. Растяните формулу на весь столбец.