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

Работа с датами в Microsoft Excel — одна из самых востребованных задач среди аналитиков, бухгалтеров и менеджеров. Часто требуется упростить отображение дат, убрав день и оставив только месяц и год — например, для отчётов, графиков или сводных таблиц. Но как это сделать быстро и без ошибок?

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

Если вам нужно просто отобразить даты в удобном виде — подойдёт форматирование ячеек. Если требуется извлечь месяц и год как текст для дальнейших расчётов — потребуются функции. А для обработки тысяч строк лучше использовать Power Query или макросы. Выбирайте метод под свою задачу!

1. Самый простой способ: форматирование ячеек

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

Как это сделать:

  1. Выделите ячейки или диапазон с датами.
  2. Нажмите правой кнопкой мыши и выберите Формат ячеек... (или используйте сочетание Ctrl+1).
  3. В открывшемся окне перейдите на вкладку ЧислоВсе форматы.
  4. В поле Тип: введите один из форматов:
    • мм.yyyy — для вида «05.2026» (с ведущим нулём для месяцев 1–9).
    • ммм yyyy — для вида «май 2026» (название месяца словами).
    • мм/yyyy — для вида «05/2026».
  • Нажмите ОК.
  • Плюсы: быстро, не требует формул, данные остаются датами (можно сортировать и фильтровать).

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

    2. Функция ТЕКСТ: гибкое преобразование даты в текст

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

    Синтаксис:

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

    Где:

    • дата — ссылка на ячейку с датой (например, A1) или сама дата в формате ДАТА().
    • "формат" — строка с кодом формата (см. таблицу ниже).

    Примеры формул и результатов:

    ФормулаРезультат для даты 15.05.2026Описание формата
    =ТЕКСТ(A1; "мм.yyyy")05.2026Месяц с ведущим нулём, точка, год
    =ТЕКСТ(A1; "ммм yyyy")май 2026Сокращённое название месяца, год
    =ТЕКСТ(A1; "м/yyyy")5/2026Месяц без ведущего нуля, косая черта
    =ТЕКСТ(A1; "[$-ru-RU]ммм yyyy")май 2026Локализованный формат (русский язык)

    ⚠️ Внимание: Результат функции ТЕКСТ — это строка, а не дата. Такие данные нельзя сортировать по времени или использовать в вычислениях без дополнительных преобразований.

    Как вернуть дату из текстового формата?

    Если у вас есть текст "05.2026" и нужно преобразовать его обратно в дату (например, 1 мая 2026), используйте формулу:

    =ДАТАЗНАЧ("01."&A1)

    где A1 — ячейка с текстом "05.2026". Функция добавит "01." в начало строки, получится "01.05.2026", которое Excel распознает как дату.

    3. Комбинация функций МЕСЯЦ и ГОД: для расчётов

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

    Пример формулы для формата «05.2026»:

    =ТЕКСТ(МЕСЯЦ(A1); "00") & "." & ГОД(A1)

    Разберём по шагам:

    1. МЕСЯЦ(A1) — извлекает номер месяца (например, 5 для мая).
    2. ТЕКСТ(...; "00") — преобразует число в текст с ведущим нулём (5 → "05").
    3. ГОД(A1) — извлекает год (например, 2026).
    4. & "." & — объединяет части с точкой посередине.

    Альтернативные варианты:

    • Для формата «май 2026»:
      =ТЕКСТ(A1; "ммм") & " " & ГОД(A1)
    • Для формата «2026-05» (ISO):
      =ГОД(A1) & "-" & ТЕКСТ(МЕСЯЦ(A1); "00")

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

    Минусы: формулы длиннее, чем у ТЕКСТ(), и требуют больше ресурсов при работе с большими массивами данных.

    📊 Какой формат месяца и года вам нужнее?
    05.2026 (с точкой)
    май 2026 (словами)
    2026-05 (ISO)
    05/2026 (с косой чертой)

    4. Power Query: обработка тысяч строк за минуты

    Если у вас большой объём данных (тысячи строк) или даты нужно преобразовывать регулярно, используйте Power Query — инструмент для импорта и трансформации данных. Он позволяет создать повторяемый процесс, который обновляется при изменении исходных данных.

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

    1. Выделите таблицу с датами и нажмите Данные → Из таблицы/диапазонаExcel 2016+).
    2. В открывшемся редакторе Power Query выделите столбец с датами.
    3. Перейдите на вкладку ПреобразоватьФормат → Дата → выберите нужный формат (например, МММ ГГГГ для «май 2026»).
    4. Либо создайте пользовательский столбец:
      • Нажмите Добавить столбец → Пользовательский столбец.
      • Введите название нового столбца (например, «МесяцГод»).
      • В поле формулы используйте:
        = Text.From(Date.Month([Дата])) & "." & Text.From(Date.Year([Дата]))

        где [Дата] — имя вашего столбца с датами.

  • Нажмите Главная → Закрыть и загрузить, чтобы применить изменения.
  • 🔹 Преимущества Power Query:

    • 🔄 Обрабатывает миллионы строк без тормозов.
    • 🔄 Сохраняет шаги трансформации — можно обновлять данные одним кликом.
    • 🔄 Поддерживает сложные преобразования (например, объединение с другими источниками).

    ✔️ Преобразуйте исходные данные в таблицу (Ctrl+T)

    ✔️ Убедитесь, что столбец с датами имеет формат "Дата" (не текст!)

    ✔️ Проверьте отсутствие пустых ячеек или ошибочных значений (например, "N/A")

    ✔️ Сохраните файл перед началом работы с Power Query-->

    5. Макросы VBA: автоматизация для продвинутых пользователей

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

    Пример макроса для преобразования выделенных ячеек в формат «мм.yyyy»:

    Sub ConvertToMonthYear()
    

    Dim cell As Range

    For Each cell In Selection

    If IsDate(cell.Value) Then

    cell.NumberFormat = "мм.yyyy"

    End If

    Next cell

    End Sub

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

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

    🔹 Расширенный макрос (создаёт новый столбец с текстом «месяц.год»):

    Sub AddMonthYearColumn()
    

    Dim ws As Worksheet

    Dim lastRow As Long, i As Long

    Set ws = ActiveSheet

    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' Добавляем новый столбец справа от исходных данных

    ws.Columns("B:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

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

    ' Заполняем формулой

    For i = 2 To lastRow

    ws.Cells(i, 2).Formula = "=TEXT(A" & i & ", ""мм.yyyy"")"

    Next i

    ' Преобразуем формулы в значения

    ws.Range("B2:B" & lastRow).Value = ws.Range("B2:B" & lastRow).Value

    End Sub

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

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

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

    🔴 Ошибка 1: Дата отображается как число (например, 45345)

    • Причина: Ячейка имеет общий формат, а не формат Дата.
    • Решение: Выделите ячейку → Главная → Формат → Формат ячеек → Дата.

    🔴 Ошибка 2: Функция ТЕКСТ возвращает #ЗНАЧ!

    • Причина: В ячейке не дата, а текст (например, "15.05.2026" как строка).
    • Решение: Преобразуйте текст в дату с помощью =ДАТАЗНАЧ(A1) или Текст по столбцам (Данные → Текст по столбцам).

    🔴 Ошибка 3: После копирования формат сбрасывается

    • Причина: Данные скопированы как значения без форматирования.
    • Решение: Используйте Специальная вставка → Форматы или преобразуйте даты в текст с помощью =ТЕКСТ().

    🔴 Ошибка 4: Неправильная сортировка по месяцам

    • Причина: Месяца отформатированы как текст (например, "май", "апрель"), а не как числа.
    • Решение: Используйте числовые форматы (05.2026 вместо май 2026) или добавьте вспомогательный столбец с номерами месяцев.

    🔴 Ошибка 5: Макрос не работает в файле .xlsx

    • Причина: Файл сохранён без поддержки макросов.
    • Решение: Сохраните файл как .xlsm (Файл → Сохранить как → Тип файла: Книга Excel с поддержкой макросов).

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

    7. Продвинутые приёмы: динамические массивы и условное форматирование

    Для опытных пользователей — несколько неочевидных способов работы с месяцами и годами:

    🔹 Динамические массивы (Excel 365 и 2021)

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

    =УНИК(ТЕКСТ(ФИЛЬТР(A2:A100; A2:A100<>""); "мм.yyyy"))

    Эта формула:

    1. Фильтрует пустые ячейки в столбце A.
    2. Преобразует даты в формат «мм.yyyy».
    3. Возвращает только уникальные значения.

    🔹 Условное форматирование по месяцу

    Подсветите все даты, относящиеся к текущему месяцу:

    1. Выделите диапазон с датами.
    2. Перейдите в Главная → Условное форматирование → Создать правило → Использовать формулу....
    3. Введите формулу:
      =И(МЕСЯЦ(A1)=МЕСЯЦ(СЕГОДНЯ()); ГОД(A1)=ГОД(СЕГОДНЯ()))
    4. Задайте цвет заполнения (например, зелёный) и нажмите ОК.

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

    Если вы строите сводную таблицу, Excel позволяет группировать даты по месяцам и годам автоматически:

    1. Создайте сводную таблицу (Вставка → Сводная таблица).
    2. Перетащите поле с датой в область Строки.
    3. Нажмите правой кнопкой на любое значение даты в сводной таблице → Группировать.
    4. Выберите Месяцы и Годы, нажмите ОК.

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

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

    Да, с помощью форматирования ячеек (см. раздел 1). Однако это изменит только отображение, а не сами данные. Если нужно получить текстовое значение (например, для экспорта), без формул не обойтись.

    Почему после преобразования даты в текст сортировка работает неправильно?

    Текстовые значения сортируются по алфавиту, а не по датам. Например, "апрель 2026" будет идти перед "январь 2026". Чтобы исправить это:

    • Используйте числовые форматы (например, "04.2026" вместо "апрель 2026").
    • Либо добавьте вспомогательный столбец с числовыми значениями месяцев (1–12) и сортируйте по нему.

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

    В Google Таблицах используйте те же функции, но с английским синтаксисом:

    • Для формата "05.2026": =TEXT(A1; "mm.yyyy")
    • Для формата "May 2026": =TEXT(A1; "mmm yyyy")

    Также можно использовать =MONTH(A1) & "." & YEAR(A1), но не забудьте отформатировать результат как текст.

    Как преобразовать столбец с датами "15.05.2026" в "май 2026" за один клик?

    Самый быстрый способ — Power Query:

    1. Загрузите данные в Power Query (Данные → Из таблицы/диапазона).
    2. Выделите столбец с датами → Преобразовать → Формат → Дата → выберите "МММ ГГГГ".
    3. Нажмите Закрыть и загрузить.

    Альтернатива: используйте формулу =ТЕКСТ(A1; "ммм yyyy") и протяните её на весь столбец.

    Можно ли вернуть исходные даты после преобразования в "месяц.год"?

    Если вы использовали форматирование ячеек — даты сохранены, просто измените формат обратно на "Дата".

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

    1. Добавить "01." в начало текста (например, "05.2026" → "01.05.2026").
    2. Преобразовать результат в дату с помощью =ДАТАЗНАЧ().