Как вычислить год из даты в Excel: 7 рабочих способов с примерами

Работа с датами в Microsoft Excel — одна из самых востребованных задач при анализе данных. Часто требуется извлечь из полной даты (например, 15.03.2026) только год для дальнейших расчетов, фильтрации или построения отчетов. На первый взгляд задача простая, но в Excel существует как минимум 7 различных способов получить год — от базовых функций до сложных формул с обработкой ошибок.

В этой статье мы разберем все методы — от стандартной функции ГОД() до малоизвестных приемов с TEXT и DATEDIF. Вы узнаете, как вытащить год из ячейки с датой, текста, а также как автоматизировать процесс для тысяч строк. Особое внимание уделим типичным ошибкам (например, когда Excel воспринимает дату как текст) и способам их обхода. В конце — практические примеры применения извлеченного года в формулах СУММЕСЛИ, СЧЁТЕСЛИ и сводных таблицах.

1. Базовый способ: функция ГОД()

Самый простой и очевидный метод — использовать встроенную функцию ГОД(дата) (англ. YEAR). Она возвращает год из указанной даты в формате четырехзначного числа (например, 2026).

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

=ГОД(дата)

Где дата — это либо ссылка на ячейку с датой (например, A2), либо дата в формате ДАТА().

  • 📌 Пример 1: =ГОД(A2) — извлечет год из ячейки A2, если там содержится дата 10.05.2023, результат будет 2023.
  • 📅 Пример 2: =ГОД(ДАТА(2026;12;31)) — вернет 2026, так как функция ДАТА() создает дату 31.12.2026.
  • 🔄 Пример 3: =ГОД(СЕГОДНЯ()) — динамически вернет текущий год (обновится при пересчете листа).

Функция ГОД() работает только с корректными датами. Если в ячейке текст (например, "01.01.2026" в формате строки), Excel выдаст ошибку #ЗНАЧ!. Как это исправить — читайте в разделе про обработку ошибок.

2. Альтернативные функции: TEXT и ДАТАЗНАЧ

Если функция ГОД() по какой-то причине не подходит (например, дата хранится как текст), можно использовать комбинацию функций TEXT и ДАТАЗНАЧ.

Функция TEXT преобразует дату в текстовый формат с заданным шаблоном. Чтобы извлечь год, используйте формат "гггг":

=TEXT(A2; "гггг")

Эта формула вернет год в виде текста (например, "2026"). Если нужно число, оберните результат в ЗНАЧЕН():

=ЗНАЧЕН(TEXT(A2; "гггг"))

Если дата хранится как текст (например, "15/03/2026"), сначала преобразуйте её в дату с помощью ДАТАЗНАЧ:

=ГОД(ДАТАЗНАЧ(A2))
  • ⚠️ Внимание: ДАТАЗНАЧ работает только с датами в формате, распознаваемом Excel. Например, "2026-03-15" или "15.03.2026" сработают, а "март 15, 2026" — нет.
  • 🌍 Пример для локализованных дат: если у вас дата в формате "15 марта 2026", используйте =ГОД(ДАТАЗНАЧ(ПОДСТАВИТЬ(A2; "марта"; "/3/"))) (замените "марта" на номер месяца).
📊 Какой формат дат вы чаще всего используете в Excel?
ДД.ММ.ГГГГ
ММ/ДД/ГГГГ
ГГГГ-ММ-ДД
Текстовый (например, "15 марта 2026")
Другой

3. Извлечение года из текстовой строки

Часто даты хранятся в ячейках как текст в нестандартном формате, например: "Отчет за 1 квартал 2026 года" или "Срок действия: 31.12.2026". В таких случаях функции ГОД() или ДАТАЗНАЧ() не помогут — нужно извлекать год с помощью текстовых функций.

Самые полезные функции для этой задачи:

  • ПРАВСИМВ() — возвращает заданное количество символов с конца строки. Например, =ПРАВСИМВ(A2;4) извлечет последние 4 символа (если год стоит в конце).
  • ПОИСК() или НАЙТИ() — помогают найти позицию года в строке. Например, =НАЙТИ("202"; A2) вернет позицию начала года.
  • ПСТР() — извлекает подстроку по заданным позиции и длине. Например, =ПСТР(A2; 10; 4) извлечет 4 символа, начиная с 10-й позиции.

Пример сложной формулы для извлечения года из строки вида "Договор №123 от 15.03.2026":

=ЗНАЧЕН(ПСТР(A2; НАЙТИ("20"; A2); 4))

Эта формула:

  1. Находит позицию подстроки "20" в тексте (начало года).
  2. Извлекает 4 символа, начиная с этой позиции ("2026").
  3. Преобразует результат в число с помощью ЗНАЧЕН().
Как извлечь год из строки с нестандартным разделителем?

Если дата в строке записана через дефис (например, "15-03-2026"), используйте формулу:

=ЗНАЧЕН(ПРАВСИМВ(A2; 4))

Если формат "год/месяц/день" (например, "2026/03/15"), подойдет:

=ЗНАЧЕН(ЛЕВСИМВ(A2; 4))

4. Динамический год: СЕГОДНЯ() и ТДАТА()

Если вам нужно получить текущий год (например, для расчета возраста или актуальных отчетов), используйте функции СЕГОДНЯ() (англ. TODAY) или ТДАТА() (англ. NOW). Первая возвращает текущую дату без времени, вторая — дату и время.

Примеры:

  • 📅 =ГОД(СЕГОДНЯ()) — вернет текущий год (обновляется при каждом открытии файла или пересчете).
  • =ГОД(ТДАТА()) — то же самое, но с учетом времени (актуально, если год может измениться в течение дня, например, в новогоднюю ночь).
  • 📊 =СЕГОДНЯ()-ДАТА(ГОД(СЕГОДНЯ());1;1) — рассчитывает количество дней с начала текущего года.

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

=СУММЕСЛИ(ДиапазонДат; ">="&ДАТА(ГОД(СЕГОДНЯ());1;1); ДиапазонСумм)

5. Расчет разницы в годах: DATEDIF

Функция DATEDIF (от англ. "date difference") позволяет вычислить разницу между двумя датами в годах, месяцах или днях. Она особенно полезна для расчета возраста, стажа или срока службы оборудования.

Синтаксис:

=DATEDIF(начальная_дата; конечная_дата; "Y")

Где "Y" — код для возврата полных лет. Другие варианты:

  • "M" — полные месяцы.
  • "D" — дни.
  • "YM" — месяцы без учета лет.
  • "MD" — дни без учета месяцев и лет.
  • "YD" — дни без учета лет.

Примеры:

Формула Начальная дата Конечная дата Результат Пояснение
=DATEDIF(A2; B2; "Y") 15.03.2020 15.03.2026 4 Полных лет между датами
=DATEDIF(A2; СЕГОДНЯ(); "Y") 01.01.1990 Текущая дата 34 (в 2026) Расчет возраста
=DATEDIF(A2; B2; "Y")&" лет, "&DATEDIF(A2; B2; "YM")&" мес." 10.06.2022 15.03.2026 "1 лет, 9 мес." Форматированный вывод

⚠️ Внимание: Функция DATEDIF не документирована в официальной справке Excel, но работает во всех версиях. Она может возвращать неожиданные результаты, если начальная дата позже конечной (например, #ЧИСЛО!). Чтобы избежать ошибок, используйте проверку:

=ЕСЛИ(B2>A2; DATEDIF(A2; B2; "Y"); "Дата окончания раньше начальной")

6. Обработка ошибок: ЕСЛИОШИБКА и ЕОШ

При работе с датами в Excel часто возникают ошибки, особенно если данные импортированы из внешних источников. Рассмотрим типичные проблемы и способы их решения:

  • 🚨 #ЗНАЧ! — возникает, если в ячейке текст, который Excel не может преобразовать в дату. Например, "Нет данных" или "31.02.2026" (некорректная дата).
  • 📉 #ЧИСЛО! — появляется, если дата выходит за пределы поддерживаемого диапазона (с 01.01.1900 по 31.12.9999).
  • 🔢 #ДЕЛ/0! — деление на ноль при расчете разницы дат (например, если обе даты одинаковые).

Чтобы сделать формулы устойчивыми к ошибкам, используйте функции ЕСЛИОШИБКА (англ. IFERROR) или ЕОШ (англ. ISERROR). Примеры:

=ЕСЛИОШИБКА(ГОД(A2); "Некорректная дата")

Эта формула вернет год, если дата корректна, или текст "Некорректная дата" при ошибке.

=ЕСЛИ(ЕОШ(ДАТАЗНАЧ(A2)); "Ошибка в дате"; ГОД(ДАТАЗНАЧ(A2)))

Здесь сначала проверяется, есть ли ошибка в преобразовании текста в дату, и только потом извлекается год.

Проверьте формат ячейки с датой (должен быть Дата, а не Текст или Общий)

Убедитесь, что дата попадает в диапазон 1900–9999

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

Оберните формулу в ЕСЛИОШИБКА() для обработки исключений

-->

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

=ЕСЛИОШИБКА(

ГОД(ДАТАЗНАЧ(A2));

ЕСЛИОШИБКА(

ЗНАЧЕН(ПРАВСИМВ(A2;4));

"Не удалось извлечь год"

)

)

Эта формула сначала пытается преобразовать текст в дату, а если не получается — извлекает последние 4 символа как год.

7. Практические примеры применения

Извлечение года из даты — это только первый шаг. Рассмотрим, как использовать полученные данные на практике.

7.1. Фильтрация данных по году

Допустим, у вас есть таблица с датами продаж, и нужно посчитать сумму продаж за конкретный год (например, 2023). Используйте СУММЕСЛИ:

=СУММЕСЛИ(ДиапазонГодов; 2023; ДиапазонСумм)

Где ДиапазонГодов — это столбец с годами, извлеченными из дат (например, с формулой =ГОД(A2)).

7.2. Построение сводных таблиц

В сводных таблицах можно группировать данные по годам:

  1. Создайте сводную таблицу на основе исходных данных.
  2. Добавьте поле с датой в область Строки.
  3. Щелкните правой кнопкой по дате в сводной таблице и выберите Группировка.
  4. Укажите начало и конец диапазона, а также шаг группировки — Годы.

7.3. Расчет возраста

Чтобы рассчитать возраст человека по дате рождения:

=DATEDIF(ДатаРождения; СЕГОДНЯ(); "Y")

Для более точного расчета (с учетом месяца):

=DATEDIF(ДатаРождения; СЕГОДНЯ(); "Y") & " лет, " & DATEDIF(ДатаРождения; СЕГОДНЯ(); "YM") & " мес."

7.4. Автоматическое обновление отчетов

Создайте динамический заголовок отчета, который будет обновляться каждый год:

="Отчет за " & ГОД(СЕГОДНЯ()) & " год"

FAQ: Частые вопросы по извлечению года в Excel

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

Используйте комбинацию функций НАЙТИ и ПСТР:

=ЗНАЧЕН(ПСТР(A2; НАЙТИ(" "; A2)+1; 4))

Эта формула находит пробел между названием месяца и годом, затем извлекает 4 символа после пробела.

🔹 Почему функция ГОД возвращает 1900 вместо реального года?

Это означает, что в ячейке хранится не дата, а число дней с 01.01.1900. Проверьте формат ячейки: выделите её, нажмите Ctrl+1, выберите формат Дата и укажите нужный тип (например, 14.03.2012). Если это не помогает, используйте =ДАТА(1900;1;1)+A2, чтобы преобразовать число в дату.

🔹 Как посчитать количество записей за текущий год?

Используйте функцию СЧЁТЕСЛИ с динамической датой:

=СЧЁТЕСЛИ(ДиапазонГодов; ГОД(СЕГОДНЯ()))

Где ДиапазонГодов — столбец с годами, извлеченными из дат (например, =ГОД(A2:A100)).

🔹 Можно ли извлечь год из даты в Power Query?

Да, в Power Query (инструмент для импорта и преобразования данных) добавьте пользовательский столбец с формулой:

= Date.Year([ВашаДата])

Где [ВашаДата] — название столбца с датами. После этого загрузите данные обратно в Excel.

🔹 Как извлечь год из даты в Google Таблицах?

В Google Sheets используйте те же функции, что и в Excel, но с английским синтаксисом:

=YEAR(A2)

Для извлечения года из текста:

=VALUE(RIGHT(A2;4))

Функции DATEDIF, TODAY и NOW также работают аналогично.