Как извлечь месяц и год из даты в Excel: от простых функций до автоматизации

Почему извлечение месяца и года из даты — ключевая задача в Excel

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

— Сортировать данные по временным периодам без учёта дней;

— Строить сводные таблицы с группировкой по месяцам или годам;

— Автоматизировать создание отчётов с динамическими заголовками (например, "Отчёт за апрель 2026").

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

Метод 1: Функции МЕСЯЦ() и ГОД() — просто и быстро

Самый очевидный способ — использовать встроенные функции МЕСЯЦ() и ГОД(). Они возвращают числовые значения, которые потом можно отформатировать как текст или использовать в расчётах.

Пример формулы для ячейки A1 с датой 15.03.2026:

=МЕСЯЦ(A1)  // Вернёт 3 (март)

=ГОД(A1) // Вернёт 2026

Чтобы получить текстовое название месяца (например, "март" вместо "3"), комбинируйте МЕСЯЦ() с функцией ТЕКСТ():

=ТЕКСТ(A1; "мммм")  // "март"

=ТЕКСТ(A1; "ммм") // "мар"

  • Плюсы: не требует знаний VBA, работает во всех версиях Excel.
  • Минусы: возвращает отдельные значения (месяц и год в разных ячейках).
  • 🔄 Альтернатива: для объединения месяца и года в одну ячейку используйте =ТЕКСТ(A1; "мммм yyyy").
📊 Какой формат месяца вы чаще используете в отчётах?
Числовой (1-12)
Текстовый короткий (янв, фев)
Текстовый полный (январь, февраль)
Не важно

Метод 2: Функция ТЕКСТ() — гибкое форматирование

Функция ТЕКСТ() позволяет извлечь месяц и год в любом текстовом формате одной формулой. Это удобно, если нужно получить результат типа "март 2026" или "03.2026" в одной ячейке.

Синтаксис:

=ТЕКСТ(дата; "формат")

Популярные форматы для месяца и года:

ФорматПример результатаОписание
"мм.yyyy"03.2026Месяц и год через точку
"мммм yyyy"март 2026Полное название месяца
"ммм-yy"мар-24Сокращённое название + последний год
"yyyy-мм"2026-03Формат для сортировки (ISO)
⚠️ Внимание: Функция ТЕКСТ() возвращает текст, а не число. Если вам нужен числовой результат для дальнейших вычислений, используйте МЕСЯЦ() и ГОД() отдельно.

Пример объединения с другими данными:

=ТЕКСТ(A1; "мммм") & " " & ГОД(A1) & " г."  // "март 2026 г."

☑️ Подготовка данных перед использованием ТЕКСТ()

Выполнено: 0 / 3

Метод 3: Power Query — обработка больших массивов

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

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

  1. Выделите таблицу с датами → перейдите на вкладку ДанныеИз таблицы/диапазона.
  2. В открывшемся редакторе Power Query выделите столбец с датами → ПреобразоватьДата/времяДата (если формат не распознан автоматически).
  3. Добавьте новый столбец: Добавить столбецИзвлечьМесяцНазвание месяца.
  4. Повторите шаг 3 для извлечения года: ИзвлечьГод.
  5. Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.

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

  • 🔄 Обрабатывает миллионы строк без замедления.
  • 📊 Сохраняет шаги преобразования — при обновлении исходных данных результат пересчитывается автоматически.
  • 🔗 Позволяет объединять извлечение месяца/года с другими операциями (фильтрация, замена значений).
⚠️ Внимание: Если после загрузки данные в столбцах с месяцем и годом отображаются как даты (например, 01.03.1900 вместо "март"), измените формат ячеек на Общий или Текстовый.
Как автоматизировать обновление данных в Power Query?

После загрузки данных в Excel на вкладке "Данные" появится группа "Запросы и подключения". Нажмите "Обновить все", чтобы пересчитать результаты при изменении исходной таблицы. Можно также настроить автоматическое обновление по расписанию (в Excel 365).

Метод 4: Макросы VBA — для повторяющихся задач

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

Пример кода для создания нового столбца с месяцем и годом:

Sub ExtractMonthYear()

Dim ws As Worksheet

Dim rng As Range

Dim lastRow As Long

Dim i As Long

Set ws = ActiveSheet

lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Предполагаем, что даты в столбце A

' Добавляем заголовки для новых столбцов

ws.Range("B1").Value = "Месяц"

ws.Range("C1").Value = "Год"

ws.Range("D1").Value = "Месяц и год"

' Обрабатываем каждую строку

For i = 2 To lastRow

ws.Cells(i, 2).Value = Month(ws.Cells(i, 1).Value) ' Месяц (число)

ws.Cells(i, 3).Value = Year(ws.Cells(i, 1).Value) ' Год

ws.Cells(i, 4).Value = Format(ws.Cells(i, 1).Value, "mmmm yyyy") ' Текстовый формат

Next i

End Sub

Как использовать:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Запустите макрос (F5) или назначьте его на кнопку на листе.

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

  • Скорость: обрабатывает данные быстрее, чем формулы в больших таблицах.
  • 🔧 Гибкость: можно модифицировать код для специфичных задач (например, извлекать квартал или недели).
  • 📁 Многофайловая обработка: макросом можно обработать все файлы в папке.
⚠️ Внимание: Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов) и включите их выполнение в настройках безопасности Excel (Файл → Параметры → Центр управления безопасностью).

Метод 5: Динамические массивы (Excel 365) — современный подход

В Excel 365 и Excel 2021 появились динамические массивы — функции, которые автоматически заполняют несколько ячеек результатом. Для извлечения месяца и года удобно использовать комбинацию ТЕКСТ() с ВЫБРАТЬСТОЛБЕЦ() или ФИЛЬТР().

Пример: извлечь месяц и год из диапазона A2:A100 в виде таблицы:

=ТЕКСТ(A2:A100; {"мммм"; "yyyy"})

Эта формула вернёт два столбца: первый с названиями месяцев, второй с годами.

Для объединения месяца и года в одном столбце:

=ТЕКСТ(A2:A100; "мммм yyyy")

Преимущества динамических массивов:

  • 🔄 Автоматически расширяются при добавлении новых данных.
  • 📌 Не требуют ручного протягивания формулы.
  • 🔗 Легко интегрируются с другими функциями массивов (например, СОРТ() или УНИК()).

Ограничение: работает только в Excel 365 и Excel 2021. В более ранних версиях используйте методы 1–4.

Сравнение методов: какой выбрать?

Выбор метода зависит от версии Excel, объёма данных и цели. Ниже таблица сравнения:

МетодСложностьСкоростьАвтоматизацияПодходит для
Функции МЕСЯЦ()/ГОД()СредняяНетМалых таблиц, разовых задач
Функция ТЕКСТ()⭐⭐ВысокаяНетФорматированного вывода (например, "март 2026")
Power Query⭐⭐⭐Очень высокаяДаБольших наборов данных, регулярных отчётов
Макросы VBA⭐⭐⭐⭐МгновенноДаПовторяющихся задач, обработки множества файлов
Динамические массивы⭐⭐ВысокаяЧастичноExcel 365/2021, динамических дашбордов

Рекомендации:

  • 📌 Для одноразовых задач используйте ТЕКСТ() или МЕСЯЦ()/ГОД().
  • 📊 Для отчётов с группировкой по месяцам/годам — Power Query.
  • 🔄 Для автоматизации рутинных операций — VBA.
  • 🚀 Для Excel 365 — динамические массивы.

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

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

  1. Дата хранится как текст.

    Если ячейка содержит текст (например, "15.03.2026" вместо даты), функции МЕСЯЦ() и ГОД() вернут ошибку #ЗНАЧ!. Решение: преобразуйте текст в дату с помощью ДАТАЗНАЧ() или ТЕКСТ.ПОСЛЕ() (в новых версиях Excel).

  2. Неправильный формат ячейки.

    Если после применения ТЕКСТ() результат отображается как дата (например, 45345 вместо "март 2026"), измените формат ячейки на Текстовый.

  3. Ошибки в Power Query.

    Если при загрузке данных месяц отображается как число (1–12), а не как название, добавьте шаг преобразования: Добавить столбец → Пользовательский столбец с формулой = Date.MonthName([Дата]).

⚠️ Внимание: В некоторых локалях Excel (например, английской) названия месяцев в функции ТЕКСТ() будут на английском ("March" вместо "март"). Чтобы исправить это, измените языковые настройки Excel или используйте формулу =ВЫБРАТЬ(МЕСЯЦ(A1); "январь"; "февраль"; ...; "декабрь").
Как проверить, распознаётся ли ячейка как дата?

Выделите ячейку и посмотрите на строку формул. Если там отображается число (например, 45345), а не дата, значит Excel хранит значение как число дней с 1900 года. Используйте Формат ячеек → Дата, чтобы исправить.

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

Можно ли извлечь месяц и год без формул?

Да, с помощью Power Query или текста по столбцам:

  1. Выделите столбец с датами → ДанныеТекст по столбцам.
  2. Выберите С разделителями → укажите разделитель (например, точка для 15.03.2026).
  3. На шаге формата столбцов выберите Дата: МДГ.

Этот метод подходит для дат в формате ДД.ММ.ГГГГ.

Как извлечь квартал из даты?

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

=ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3; 0)

Или для текстового вывода (например, "Q1 2026"):

="Q" & ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3; 0) & " " & ГОД(A1)
Почему функция ТЕКСТ() возвращает англоязычные месяца?

Это зависит от языковых настроек Excel. Чтобы получить месяца на русском:

  1. Перейдите в Файл → Параметры → Язык.
  2. Добавьте русский как язык редактирования и установите его по умолчанию.
  3. Перезапустите Excel.

Альтернатива — использовать ВЫБРАТЬ() с ручным указанием названий месяцев.

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

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

=MONTH(A1)   // Месяц (число)

=YEAR(A1) // Год

=TEXT(A1; "mmmm yyyy") // "март 2026"

Для русскоязычных названий месяцев добавьте функцию =ARRAYFORMULA(CHOOSECOLS(SPLIT(TEXT(A1:A; "mmmm yyyy"); " "); 1; 2)).

Можно ли извлечь месяц и год с учётом локали (например, украинской или казахской)?

Да, но потребуется дополнительная настройка:

  1. Для ТЕКСТ(): измените языковые настройки Excel на нужную локаль.
  2. Для VBA: используйте Format(date; "mmmm"; vbMonday; vbUseSystemDayOfWeek) с указанием локали.
  3. Для Power Query: добавьте пользовательский столбец с функцией Date.MonthName() и ручным маппингом названий.

Пример для украинского языка в VBA:

Format(ws.Cells(i, 1).Value, "mmmm", vbUkrainian)