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

Проблема: как отделить год от полной даты в Excel

Вы загрузили в Excel таблицу с датами рождения в формате 15.03.1987 или March 15, 1987, а для анализа нужны только годы? Или вам требуется посчитать возраст сотрудников, но сначала нужно выделить год из ячейки с полной датой? Эта задача возникает при работе с кадрами, клиентскими базами, медицинскими записями и статистическими отчётами.

В Excel есть минимум 5 способов извлечь год из даты — от простейших функций до продвинутых приёмов для нестандартных форматов. Мы разберём каждый метод с примерами, нюансами и типичными ошибками. Вы узнаете, как обработать даты в формате DD.MM.YYYY, MM/DD/YY, а также текстовые даты типа "15 марта 1987 года". Все решения работают в Excel 2007–2023 и Office 365.

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

Способ 1: Функция ГОД() — самый простой метод

Функция ГОД() (англ. YEAR) специально создана для извлечения года из даты. Она работает с ячейками, где дата хранится в формате даты (не текст!). Синтаксис:

=ГОД(ячейка_с_датой)

или

=YEAR(cell_with_date)

Примеры использования:

  • 📅 Для ячейки A2 с датой 15.03.1987: =ГОД(A2) вернёт 1987.
  • 📅 Если дата введена как текст "15/03/1987", функция вернёт ошибку #ЗНАЧ! — сначала преобразуйте текст в дату (см. раздел про ошибки).
  • 📅 Для текущей даты: =ГОД(СЕГОДНЯ()) вернёт текущий год.

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

  • Мгновенный результат — одна функция вместо длинных формул.
  • 🔄 Автоматическое обновление при изменении исходной даты.
  • 🌍 Работает во всех локализациях Excel (русской, английской и др.).
⚠️ Внимание: Если после применения функции вы видите пятизначное число (например, 44197), значит ячейка с датой отформатирована как число. Измените формат на Дата (выделите ячейку → Главная → Формат → Формат ячеек → Дата).
📊 Какой формат даты вы чаще встречаете в таблицах?
DD.MM.YYYY
MM/DD/YYYY
Текстовый (например, "15 марта 1987")
Другой

Способ 2: Функция ТЕКСТ() для нестандартных форматов

Когда дата хранится в необычном формате (например, "15 марта 1987 г." или "1987/03/15"), функция ГОД() может не сработать. Здесь поможет ТЕКСТ() (англ. TEXT), которая преобразует дату в текст по заданному шаблону.

Синтаксис:

=ТЕКСТ(ячейка_с_датой; "yyyy")

или

=TEXT(cell_with_date, "yyyy")

Примеры:

Исходная дата в ячейке A2ФормулаРезультат
15.03.1987 (формат даты)=ТЕКСТ(A2; "yyyy")1987
"15 марта 1987 г." (текст)=ТЕКСТ(ДАТАЗНАЧ(A2); "yyyy")1987
1987/03/15 (американский формат)=ТЕКСТ(A2; "yyyy")1987

Нюансы:

  • 🔹 Если дата хранится как текст, сначала преобразуйте её в формат даты с помощью ДАТАЗНАЧ() (англ. DATEVALUE).
  • 🔹 Шаблон "yyyy" возвращает полный год (4 цифры), а "yy" — две последние цифры (например, 87 вместо 1987).
  • 🔹 Для дат вроде "март 1987" (без дня) используйте шаблон "yyyy" с функцией ДАТА():
=ТЕКСТ(ДАТА(1; МЕСЯЦ(ДАТАЗНАЧ("1 " & A2)); 1); "yyyy")

Способ 3: Текст по столбцам — для ручного разделения

Если даты в вашей таблице имеют фиксированный разделитель (точка, запятая, пробел, тире) и одинаковый порядок дня/месяца/года, можно использовать инструмент Текст по столбцам. Это не формула, а встроенная функция Excel для разбора текста.

Пошаговая инструкция:

  1. Выделите столбец с датами.
  2. Перейдите на вкладку ДанныеТекст по столбцам.
  3. Выберите С разделителямиДалее.
  4. Укажите разделитель (например, точку для DD.MM.YYYY или пробел для "15 марта 1987").
  5. На шаге Формат данных столбца выберите для третьего столбца (года) формат Текстовый.
  6. Нажмите Готово — год будет выделен в отдельный столбец.

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

  • 🎯 Точность: работает даже с нестандартными разделителями (например, 15-марта-1987).
  • 📊 Визуальный контроль: вы видите результат до применения.
  • 🔄 Обратимость: исходные данные не изменяются (создаётся копия).
⚠️ Внимание: Если в ваших датах используется разный порядок дня и месяца (например, смесь DD.MM.YYYY и MM.DD.YYYY), этот метод даст ошибки. В таком случае используйте функции ДЕНЬ(), МЕСЯЦ() и ГОД() для проверки.

Убедиться, что все даты имеют одинаковый разделитель

Проверить порядок дня/месяца/года (DD.MM или MM.DD)

Создать резервную копию исходных данных

Выбрать пустой столбец справа для результата-->

Способ 4: Формулы для текстовых дат (ПСТР, ПОИСК, ДЛСТР)

Когда даты хранятся как текст в нестандартном формате (например, "родился 15 марта 1987 года" или "1987г."), придётся использовать текстовые функции. Основные инструменты:

  • ПСТР() (англ. MID) — извлекает подстроку.
  • ПОИСК() (англ. FIND) — находит позицию символа.
  • ДЛСТР() (англ. LEN) — возвращает длину строки.

Примеры формул для разных форматов:

Формат даты в ячейке A2ФормулаРезультат
"15.03.1987" (текст)=ПСТР(A2; 7; 4)1987
"март 1987"=ПСТР(A2; ПОИСК(" "; A2)+1; 4)1987
"родился в 1987"=ПСТР(A2; ДЛСТР(A2)-4; 4)1987
"15/03/87" (двузначный год)=ЕСЛИ(ДЛСТР(ПСТР(A2;4;2))=2; "19"&ПСТР(A2;4;2); ПСТР(A2;4;2))1987

Для дат с названием месяца на русском (например, "15 марта 1987") используйте комбинацию ПОИСК() и массива месяцев:

=ПСТР(A2; ПОИСК(" "; A2; ПОИСК(" "; A2)+1)+1; 4)

Критическая деталь: если в тексте встречаются даты с двузначным годом (например, "87"), используйте функцию ЕСЛИ() для добавления префикса "19" или "20" в зависимости от контекста. Например, для людей старше 30 лет логично добавлять "19", а для младше — "20".

Способ 5: Power Query — для больших таблиц

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

Пошаговая инструкция:

  1. Выделите исходные данные → Данные → Из таблицы/диапазона (или Get Data → From Table/Range).
  2. В открывшемся редакторе Power Query выделите столбец с датами.
  3. Перейдите на вкладку Преобразовать (Transform) → Разделить столбец (Split Column) → По разделителю.
  4. Укажите разделитель (например, точка для DD.MM.YYYY).
  5. Выберите часть с годом → Закрыть и загрузить.

Преимущества Power Query:

  • 🔄 Обработка миллионов строк без замедления Excel.
  • 🔄 Возможность сохранять шаги преобразования для повторного использования.
  • 🔄 Поддержка сложных форматов (например, даты внутри JSON-строк).
Как обработать даты в формате "15мар1987" (без разделителей)?

Используйте функцию ДАТАЗНАЧ() с подстановкой разделителей:

=ГОД(ДАТАЗНАЧ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2; "янв"; ".01."); "мар"; ".03.")&".1987"))

Для универсального решения напишите пользовательскую функцию на VBA или используйте Power Query с заменой текста.

Типичные ошибки и как их исправить

При извлечении года из даты пользователи часто сталкиваются с ошибками. Вот самые распространённые проблемы и их решения:

ОшибкаПричинаРешение
#ЗНАЧ! в функции ГОД()Дата хранится как текст, а не как формат даты.Используйте ДАТАЗНАЧ() или преобразуйте столбец в формат даты (Главная → Формат → Формат ячеек → Дата).
Функция возвращает 1905 вместо реального годаExcel интерпретирует текст как дату, начиная с 1900 года.Проверьте исходные данные на опечатки (например, 32.01.1987 вместо 31.01.1987).
Год отображается как 44197Ячейка с датой отформатирована как число (количество дней с 1900 года).Измените формат ячейки на Дата или используйте =ТЕКСТ(A2; "yyyy").
Функция ПСТР() возвращает ошибкуНеверно указаны позиции начала или длины подстроки.Проверьте формулу с помощью ПОИСК() для точного определения позиции года.

Если ваши даты хранятся в формате Unix timestamp (количество секунд с 1970 года), используйте формулу:

=ГОД(ДАТА(1970;1;1)+A2/86400)
⚠️ Внимание: В Excel для Mac и Windows используются разные системы дат! В Windows отсчёт идёт с 1900 года, а в Mac (до 2011 года) — с 1904 года. Если вы переносите файлы между платформами, проверяйте настройки в Файл → Параметры → Дополнительно → При вычислениях использовать систему дат 1904.

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

Можно ли извлечь год из даты без формул?

Да, есть два способа:

  1. Текст по столбцам (раздел 3 статьи) — подходит для фиксированных форматов.
  2. Копирование с преобразованием: скопируйте столбец с датами, затем вставьте как Значения в новый столбец и отформатируйте ячейки как yyyy.

Однако эти методы не обновляются автоматически при изменении исходных данных.

Как извлечь год из даты в формате "15 марта 1987 года"?

Используйте комбинацию функций ПОИСК() и ПСТР():

=ПСТР(A2; ПОИСК(" "; A2; ПОИСК(" "; A2)+1)+1; 4)

Если в тексте есть слово "года", упростите формулу:

=ПСТР(A2; ПОИСК("года"; A2)-5; 4)
Почему функция ГОД() возвращает 1905 год для моей даты?

Это происходит, если:

  • В ячейке текст, который Excel интерпретирует как дату 01.01.1905 (например, пустая ячейка или некорректный текст).
  • Дата введена с опечаткой (например, 32.01.1987 вместо 31.01.1987).
  • Включена система дат 1904 (проверьте в Файл → Параметры → Дополнительно).

Решение: проверьте исходные данные на корректность и преобразуйте текст в дату с помощью ДАТАЗНАЧ().

Как автоматически определить век по году рождения?

Используйте формулу:

=ОКРУГЛВВЕРХ(ГОД(A2)/100; 0) & " век"

Для года 1987 результат будет "20 век". Чтобы получить римские цифры, добавьте функцию ВЫБОР():

=ВЫБОР(ОКРУГЛВВЕРХ(ГОД(A2)/100;0);"I";"II";"III";...;"XXI") & " век"
Можно ли извлечь год из даты в Google Таблицах?

Да, в Google Sheets работают те же функции:

  • =YEAR(A2) — аналог ГОД().
  • =TEXT(A2; "yyyy") — аналог ТЕКСТ().
  • =SPLIT(A2; ".") — аналог Текст по столбцам.

Отличие: в Google Таблицах нет Power Query, но есть APPSCRIPT для сложных преобразований.