Введение: зачем считать юбилеи в Excel?
Юбилеи — это не просто круглые даты, а повод для празднования, анализа жизненных этапов или планирования корпоративных мероприятий. Excel становится незаменимым инструментом, когда нужно быстро посчитать, сколько лет исполнилось человеку, компании или сколько времени прошло с момента важного события (свадьбы, основания фирмы, выпуска продукта). Вручную такие расчёты занимают минуты, а в таблице — секунды, особенно если данных сотни.
Проблема в том, что многие пользователи ошибочно думают: достаточно вычесть один год из другого. Но это работает только для "грубых" оценок. А как быть с точным возрастом (учитывая месяцы и дни)? Как автоматически выделить юбилейные даты в списке сотрудников? Или рассчитать, через сколько дней наступит следующая круглая дата? Для этого в Excel есть специализированные функции — и мы разберём их все, от базовых до продвинутых.
Базовые функции для работы с датами
Прежде чем считать юбилеи, нужно научиться оперировать датами в принципе. Excel хранит их как числа (количество дней с 1 января 1900 года), но отображает в привычном формате. Вот ключевые функции, которые пригодятся:
- 📅
=СЕГОДНЯ()— возвращает текущую дату (обновляется автоматически). - 🗓️
=ДАТА(год;месяц;день)— создаёт дату из отдельных компонентов (пример:=ДАТА(1985;5;10)). - 🔢
=ГОД(дата),=МЕСЯЦ(дата),=ДЕНЬ(дата)— извлекают год, месяц или день из даты. - ⏳
=ДАТАРАЗН(начальная_дата;конечная_дата;"y")— разница в годах (учитывает месяцы и дни).
Например, чтобы узнать, сколько полных лет прошло с 10.05.1985 до сегодняшнего дня, используйте:
=ДАТАРАЗН("10.05.1985";СЕГОДНЯ();"y")
Важно: Формат ячейки с датой должен быть Дата (а не Общий или Текст), иначе функции не сработают. Чтобы изменить формат, выделите ячейку и выберите в меню Главная → Формат → Формат ячеек → Дата.
Как посчитать возраст для юбилея: точные формулы
Самая распространённая задача — расчёт возраста человека или "возраста" события (например, сколько лет компании). Здесь есть нюансы:
- Простой способ (без учёта месяца и дня):
=ГОД(СЕГОДНЯ())-ГОД(A2), гдеA2— ячейка с датой рождения. Но этот метод даёт погрешность: если сегодня01.01.2026, а дата рождения31.12.2000, формула покажет24, хотя человеку ещё только23. - Точный способ (с учётом месяца и дня):
=ДАТАРАЗН(A2;СЕГОДНЯ();"y"). Эта функция вернёт23в примере выше. - С учётом будущих дат: если нужно узнать возраст на конкретную дату (например, на
31.12.2026), заменитеСЕГОДНЯ()наДАТА(2026;12;31).
Критическая ошибка: функция =РАЗНДАТ() (аналог ДАТАРАЗН) в некоторых локализациях Excel может не работать. Если видите #ИМЯ?, используйте английскую версию =DATEDIF().
| Формула | Пример | Результат (на 01.06.2026) | Пояснение |
|---|---|---|---|
=ГОД(СЕГОДНЯ())-ГОД(A2) |
A2=15.12.2000 |
23 | Не учитывает месяц и день — ошибка на ±1 год. |
=ДАТАРАЗН(A2;СЕГОДНЯ();"y") |
A2=15.12.2000 |
23 | Точный расчёт (на 01.06.2026 ещё не исполнилось 24). |
=ЕСЛИ(ДАТАРАЗН(A2;СЕГОДНЯ();"y")=50;"Юбилей!";"") |
A2=10.05.1974 |
Юбилей! | Проверяет, исполнилось ли 50 лет. |
Убедитесь, что дата в ячейке имеет формат "Дата"
Используйте ДАТАРАЗН для точного расчёта
Для будущих дат замените СЕГОДНЯ() на конкретную дату
Проверьте результат на граничных значениях (например, 31.12 и 01.01)-->
Автоматическое выделение юбилейных дат
Допустим, у вас список сотрудников с датами рождения, и нужно автоматически пометить тех, кому в этом году исполняется 30, 40 или 50 лет. Для этого подойдёт условное форматирование:
- Выделите столбец с возрастом (или создайте его по формуле из предыдущего раздела).
- Перейдите в
Главная → Условное форматирование → Создать правило. - Выберите
Форматировать только ячейки, которые содержат. - В поле "Значение" укажите
30,40или50(или используйте формулу типа=ОСТАТ(Возраст;10)=0для всех круглых дат). - Задайте формат (например, яркий цвет фона или жирный шрифт).
Альтернативный способ — добавить вспомогательный столбец с формулой:
=ЕСЛИ(И(ДАТАРАЗН(A2;СЕГОДНЯ();"y")>=30;ОСТАТ(ДАТАРАЗН(A2;СЕГОДНЯ();"y");10)=0);"Юбилей";"")
Эта формула проверяет, исполнилось ли человеку 30+ лет и возраст кратен 10 (то есть 30, 40, 50 и т.д.).
Расчёт дней до следующего юбилея
Иногда нужно узнать, сколько дней осталось до ближайшей круглой даты. Например, чтобы спланировать корпоратив или личное торжество. Для этого:
- Сначала определите дату следующего юбилея. Если текущий возраст — 47 лет, то следующий юбилей через 3 года (50 лет). Формула:
=ДАТА(ГОД(СЕГОДНЯ())+ (10-ОСТАТ(ДАТАРАЗН(A2;СЕГОДНЯ();"y");10)); МЕСЯЦ(A2); ДЕНЬ(A2))
Где A2 — ячейка с датой рождения.
- Теперь посчитайте разницу между этой датой и сегодняшним днём:
=ДАТАРАЗН(СЕГОДНЯ(); [дата_следующего_юбилея]; "d")
Пример: если сегодня 01.06.2026, а дата рождения 15.12.1980, то следующий юбилей (55 лет) наступит 15.12.2035. Формула вернёт 4207 дней до этого события.
⚠️ Внимание: Если дата рождения уже была в этом году (например,10.01.2000), а сегодня01.06.2026, то формула=ДАТАРАЗН(A2;СЕГОДНЯ();"y")вернёт24, хотя фактически человеку ещё23(потому что день рождения уже прошёл). Чтобы избежать ошибки, используйте:=ЕСЛИ(ИЛИ(МЕСЯЦ(A2)>МЕСЯЦ(СЕГОДНЯ()); И(МЕСЯЦ(A2)=МЕСЯЦ(СЕГОДНЯ()); ДЕНЬ(A2)>ДЕНЬ(СЕГОДНЯ()))); ГОД(СЕГОДНЯ())-ГОД(A2)-1; ГОД(СЕГОДНЯ())-ГОД(A2))Юбилеи свадеб, компаний и других событий
Принцип расчёта юбилеев одинаковый для любых дат, но есть нюансы:
- 💍 Свадьбы: Круглые даты считаются каждые 5 лет (5, 10, 15...). Используйте
=ЕСЛИ(ОСТАТ(ДАТАРАЗН(A2;СЕГОДНЯ();"y");5)=0;"Юбилей свадьбы";"").- 🏢 Компании: Часто юбилеи отмечают каждые 10 лет (10, 20, 50 лет). Формула аналогична, но с шагом
10.- 🎓 Выпускные: Для школ и вузов юбилеи обычно каждые 5 лет. Добавьте проверку на
ОСТАТ(...,5)=0.Для свадебных юбилеев также принято использовать специальные названия:
Лет вместе Название юбилея Традиционный подарок 5 Деревянная свадьба Деревянные изделия 10 Оловянная свадьба Оловянные сувениры 25 Серебряная свадьба Серебро 50 Золотая свадьба Золотые украшения Чтобы автоматически подставлять название юбилея в Excel, используйте функцию
=ВЫБОР():=ЕСЛИОШИБКА(ВЫБОР(ДАТАРАЗН(A2;СЕГОДНЯ();"y")/5;"";"Деревянная";"Оловянная";"Хрустальная";"Фарфоровая";"Серебряная";"Жемчужная";"Золотая");"")Как добавить пользовательские названия юбилеев?
Если стандартные названия (типа "Золотая свадьба") вам не подходят, создайте отдельную таблицу с соответствиями лет и названий, а затем используйте функцию
=ВПР()или=ИНДЕКС/ПОИСКПОЗдля поиска по году.Продвинутые приёмы: динамические юбилеи и календари
Для автоматизации можно создать динамический календарь юбилеев, который будет обновляться ежедневно. Вот как это сделать:
- Создайте таблицу с датами рождения (столбец
A) и ФИО (столбецB).- Добавьте столбец с формулой для расчёта возраста (например,
=ДАТАРАЗН(A2;СЕГОДНЯ();"y")).- Создайте отдельный лист "Юбилеи" и используйте функцию
=ФИЛЬТР()(в Excel 365), чтобы отобразить только строки, где возраст кратен 10:=ФИЛЬТР(Лист1!A:B; ОСТАТ(ДАТАРАЗН(Лист1!A:A;СЕГОДНЯ();"y");10)=0; "Нет юбилеев")Для старых версий Excel используйте
=ДВССЫЛ()или макросы.Ещё один полезный приём — расчёт "обратного отсчёта" до юбилея с учётом рабочих дней (исключая выходные). Для этого:
- Посчитайте общее количество дней до юбилея (как в разделе 4).
- Вычтите количество выходных (суббот и воскресений). Формула для рабочих дней:
=ДАТАРАЗН(СЕГОДНЯ(); [дата_юбилея]; "d") - (ЧИСТРАБДНИ(СЕГОДНЯ(); [дата_юбилея]) - ДАТАРАЗН(СЕГОДНЯ(); [дата_юбилея]; "d"))Где
ЧИСТРАБДНИ— функция, возвращающая количество рабочих дней между датами.Типичные ошибки и как их избежать
Даже опытные пользователи Excel допускают ошибки при работе с датами. Вот самые распространённые:
- ❌ Неправильный формат ячеек: Если дата хранится как текст (например,
"10.05.1985"в кавычках), функцииДАТАРАЗНилиГОДне сработают. Решение: Преобразуйте текст в дату с помощью=ДАТАЗНАЧ(A2).- ❌ Игнорирование високосных лет: Функция
=ДАТАРАЗНучитывает високосные годы автоматически, но если вы вычитаете даты вручную (например,=B2-A2), результат может быть неточным.- ❌ Пустые ячейки: Если в столбце с датами есть пустые ячейки, формулы типа
=ДАТАРАЗН(A2;СЕГОДНЯ();"y")вернут ошибку. Решение: Оберните формулу в=ЕСЛИОШИБКА().Ещё одна частая проблема — разные локали Excel. В русскоязычной версии используется
ДАТАРАЗН, а в английской —DATEDIF. Если формула не работает, проверьте язык интерфейса или используйте английский вариант.⚠️ Внимание: Функция=ДАТАРАЗНне документирована в официальной справке Microsoft, но работает во всех версиях Excel. Однако в будущих обновлениях её поведение может измениться. Для надёжности дублируйте критичные расчёты альтернативными формулами, например:=ЕСЛИ(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(A2);ДЕНЬ(A2))>СЕГОДНЯ(); ГОД(СЕГОДНЯ())-ГОД(A2)-1; ГОД(СЕГОДНЯ())-ГОД(A2))FAQ: Ответы на частые вопросы
Как посчитать юбилей, если дата рождения в формате "10 мая 1985" (текст)?
Используйте функцию
=ДАТАЗНАЧ(), чтобы преобразовать текст в дату:
- Замените месяц на его номер (например, "10 мая 1985" → "10.05.1985").
- Примените формулу
=ДАТАЗНАЧ(ПОДСТАВИТЬ(A2;"января";".01.");...)(замените все названия месяцев на их числовые эквиваленты).- Или используйте
=ДАТАЗНАЧ(ЗАМЕНИТЬ(ЗАМЕНИТ(A2;"января";"/1/");" ";"/"))для приведения к форматудд/мм/гггг.После преобразования применяйте стандартные формулы для расчёта возраста.
Можно ли в Excel автоматически отправлять напоминания о юбилеях?
Сам Excel не отправляет уведомления, но вы можете:
- Экспортировать данные в Outlook: создайте столбец с датой юбилея, экспортируйте его в
.csvи импортируйте в календарь Outlook как события.- Использовать Power Automate (Microsoft Flow): настройте автоматическое оповещение по email, когда в таблице появляется новая юбилейная дата.
- Mакросы VBA: напишите скрипт, который проверяет даты и выводит всплывающее окно с напоминанием при открытии файла.
Пример кода VBA для напоминания:
Sub CheckBirthdays()Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Dim birthday As Date
Dim daysLeft As Integer
Set ws = ThisWorkbook.Sheets("Лист1")
Set rng = ws.Range("A2:A100") ' Диапазон с датами рождения
For Each cell In rng
If IsDate(cell.Value) Then
birthday = DateSerial(Year(Date), Month(cell.Value), Day(cell.Value))
daysLeft = birthday - Date
If daysLeft >= 0 And daysLeft <= 7 Then
MsgBox "Через " & daysLeft & " дней юбилей у " & cell.Offset(0, 1).Value
End If
End If
Next cell
End Sub
Как посчитать юбилей в Google Таблицах?
Формулы почти идентичны Excel, но есть нюансы:
- 📌 Функция
=DATEDIFработает без локализации (в русскоязычной версии Google Таблиц тоже используйте английское название).- 📌 Для текущей даты используйте
=TODAY()(аналогСЕГОДНЯ()).- 📌 Условное форматирование настраивается аналогично, но интерфейс slightly отличается.
Пример формулы для возраста:
=DATEDIF(A2; TODAY(); "y")Что делать, если ДАТАРАЗН возвращает ошибку #ИМЯ?
Ошибка
#ИМЯ?означает, что Excel не распознаёт функцию. Причины и решения:
- Неверная локаль: В русскоязычной версии используйте
ДАТАРАЗН, в английской —DATEDIF.- Опечатка: Проверьте регистр и расстановку точек с запятыми. Правильно:
=ДАТАРАЗН(A2;СЕГОДНЯ();"y").- Устаревшая версия Excel: В Excel 2003 и старше функция может не работать. Обновите программу или используйте альтернативу:
=ЦЕЛОЕ((СЕГОДНЯ()-A2)/365,25)Эта формула приблизительно посчитает количество лет, но без учёта високосных годов.
Как посчитать юбилей для большого списка дат (тысячи строк)?
Для обработки больших массивов данных:
- Отключите автоматический пересчёт: Перейдите в
Формулы → Параметры вычислений → Вручную, чтобы ускорить работу.- Используйте Power Query:
- Импортируйте данные в Power Query (
Данные → Получить данные → Из таблицы/диапазона).- Добавьте пользовательский столбец с формулой для возраста (на языке M):
=Date.Year(DateTime.LocalNow()) - Date.Year([BirthDate]) - IIf(DateTime.LocalNow() < Date.StartOfYear(DateTime.LocalNow()) + #duration(0, Date.Month([BirthDate]), Date.Day([BirthDate]), 0), 1, 0)- Загрузите данные обратно в Excel.
- Примените сводные таблицы: Создайте сводную таблицу с группировкой по возрастным категориям (например, "20-29", "30-39" и т.д.), чтобы быстро увидеть распределение юбилеев.