Как преобразовать дату в формат «месяц и год» в Excel: от формул до Power Query

Работа с датами в Microsoft Excel — одна из самых востребованных задач при анализе данных. Часто пользователям требуется не полная дата в формате «день.месяц.год», а только месяц и год — например, для отчётов, графиков или сводных таблиц. При этом просто удалить день вручную неэффективно: при большом объёме данных это займёт часы, а при обновлении исходных данных придётся повторять процесс заново.

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

Особое внимание уделим двум ключевым проблемам, с которыми сталкиваются пользователи: 1) как получить название месяца на русском (не «Jan», а «Январь»), и 2) как избежать преобразования результата в дату обратно (например, когда «Май 2023» внезапно становится «45046»).

═══

1. Самый простой способ: функция ТЕКСТ

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

Формат функции:

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

Где:

  • 📅 ячейка_с_датой — ссылка на ячейку с исходной датой (например, A2).
  • 🔤 "ММММ ГГГГ" — формат отображения, где:
    • ММММ — полное название месяца (например, «Июнь»)
    • ГГГГ — четырёхзначный год (например, «2026»)

Пример: если в ячейке A2 находится дата 15.07.2023, формула =ТЕКСТ(A2; "ММММ ГГГГ") вернёт текст «Июль 2023».

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

Формат Пример кода Результат для 15.07.2023
Полный месяц + год =ТЕКСТ(A2; "ММММ ГГГГ") Июль 2023
Сокращённый месяц + год =ТЕКСТ(A2; "МММ ГГГГ") Июл 2023
Месяц цифрой + год =ТЕКСТ(A2; "ММ.ГГГГ") 07.2023

═══

2. Динамическое решение: функции ДАТАМЕС и ГОД

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

Формула для получения первого дня месяца (чтобы избежать проблем с днём):

=ДАТАМЕС(ячейка_с_датой; 0)

Затем отформатируйте ячейку с результатом через Формат ячеек → Числовой → Дата, выбрав тип «Март 2012» или «Мар-2012».

Пример:

  1. В ячейке A2 — дата 15.07.2023.
  2. В ячейке B2 вводим формулу =ДАТАМЕС(A2; 0).
  3. Нажимаем Ctrl+1, выбираем формат «Март 2012».
  4. Получаем «Июль 2023»** (но это всё ещё дата, а не текст!).

Исходная дата в формате даты, а не текста|

Формула возвращает число (например, 45107)|

Ячейка с результатом отформатирована как дата "ММММ ГГГГ"|

При изменении исходной даты результат обновляется автоматически-->

⚠️ Внимание: Если вы скопируете такую ячейку и вставите её как «значения» (через Специальная вставка), она превратится в число (например, 45107). Чтобы сохранить формат, копируйте с формулой или используйте ТЕКСТ для фиксации результата.

═══

3. Текстовые функции: МЕСЯЦ + ГОД

Для гибкого управления выводом (например, если нужно добавить разделители или изменить регистр) используйте комбинацию функций МЕСЯЦ, ГОД и ВЫБОР. Этот метод подходит, когда требуется кастомизированный вывод — например, «ИЮЛЬ-2023» или «07/2023».

Пример формулы для формата «Месяц-Год»:

=ВЫБОР(МЕСЯЦ(A2); "Январь"; "Февраль"; "Март"; "Апрель"; "Май"; "Июнь";

"Июль"; "Август"; "Сентябрь"; "Октябрь"; "Ноябрь"; "Декабрь") & "-" & ГОД(A2)

Разберём её по частям:

  • 🔢 МЕСЯЦ(A2) — возвращает номер месяца (1–12).
  • 📜 ВЫБОР — преобразует номер в название месяца.
  • 🔗 & "-" & — добавляет разделитель (можно заменить на пробел или «/»).
  • 📅 ГОД(A2) — извлекает год.
Как сократить формулу для английских названий месяцев

Используйте функцию =TEXT(A2; "mmmm-yyyy") — она короче и не требует перечисления всех месяцев.

Плюсы метода: полный контроль над форматом, возможность добавлять префиксы/суффиксы (например, «Отчёт за Июль 2023»).

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

═══

4. Power Query: автоматическое преобразование для больших данных

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

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

  1. Выделите исходный диапазон с датами.
  2. Перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  3. В открывшемся редакторе Power Query выделите столбец с датами.
  4. Нажмите Преобразовать → Формат → Дата (если Excel распознал данные как текст).
  5. Добавьте новый столбец: Добавить столбец → Пользовательский столбец.
  6. Введите формулу:
    = Date.ToText([ВашСтолбец], "MMMM yyyy", "ru-RU")

    где [ВашСтолбец] — название вашего столбца с датами.

  7. Нажмите Закрыть и загрузить.

Теперь при обновлении исходных данных (кнопка Обновить все на вкладке Данные) столбец с месяцем и годом будет пересчитываться автоматически.

Формулы (ТЕКСТ, ДАТАМЕС и др.)|

Power Query|

Форматирование ячеек|

VBA-макросы|

Другой вариант-->

⚠️ Внимание: В Power Query названия месяцев выводятся в соответствии с языковыми настройками системы. Если у вас английская версия Excel, но нужны русские месяцы, укажите локаль явно: "ru-RU" в формуле.

═══

5. Форматирование ячеек: когда не нужны формулы

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

Как применить:

  1. Выделите ячейки с датами.
  2. Нажмите Ctrl+1 (или правая кнопка мыши → Формат ячеек).
  3. Вкладка Число → Дата.
  4. В поле Тип выберите «Март 2012» или создайте свой формат:

Для пользовательского формата:

  • В том же окне перейдите на вкладку Все форматы.
  • В поле Тип введите:
    ММММ ГГГГ
  • Нажмите ОК.

Теперь ячейка будет отображать «Июль 2023», но при этом сохранит исходную дату 15.07.2023 для вычислений.

Ограничение: Если скопировать такие ячейки в другой файл или программу (например, Word), они могут отобразиться в исходном формате (например, «15.07.2023»).

═══

6. VBA-макрос: автоматизация для повторяющихся задач

Если вы регулярно преобразуете даты в отчётах, VBA-макрос сэкономит время. Например, следующий код добавляет новый столбец с месяцем и годом рядом с выделенными датами:

Sub ConvertToMonthYear()

Dim rng As Range

Dim cell As Range

Dim newCol As Range

' Проверяем, выделены ли ячейки с датами

On Error Resume Next

Set rng = Selection.SpecialCells(xlCellTypeConstants, xlNumbers)

On Error GoTo 0

If rng Is Nothing Then

MsgBox "Выделите ячейки с датами!", vbExclamation

Exit Sub

End If

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

Set newCol = rng.Offset(0, 1)

newCol.EntireColumn.Insert

' Преобразуем даты в формат "ММММ ГГГГ"

For Each cell In rng

If IsDate(cell.Value) Then

cell.Offset(0, 1).NumberFormat = "ММММ ГГГГ"

cell.Offset(0, 1).Value = cell.Value

End If

Next cell

MsgBox "Готово! Столбец с месяцем и годом добавлен.", vbInformation

End Sub

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

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

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

═══

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

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

1. Формула возвращает число вместо текста

🔹 Проблема: Вместо «Июль 2023» вы видите «45107».

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

2. Названия месяцев на английском

🔹 Проблема: Вместо «Июль» отображается «July».

🔹 Решение: Убедитесь, что в настройках Excel (или в формуле Power Query) указана локаль "ru-RU".

3. Ошибка #ЗНАЧ! при копировании формул

🔹 Проблема: Формула работает в одной ячейке, но выдаёт ошибку в других.

🔹 Решение: Проверьте, что все ячейки в столбце содержат даты, а не текст. Используйте =ЕЧИСЛО() для проверки.

Как проверить, является ли значение датой?

Используйте формулу =ЕЧИСЛО(A2). Если результат ИСТИНА, то в ячейке дата (или число). Если ЛОЖЬ — текст.

═══

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

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

Да, с помощью форматирования ячеек:

  1. Выделите ячейки с датами.
  2. Нажмите Ctrl+1Число → Дата.
  3. Выберите формат «Март 2012» или создайте пользовательский формат ММММ ГГГГ.

Это не изменит сами данные, а только их отображение.

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

Функции вроде ТЕКСТ или ВЫБОР возвращают текстовые значения. Чтобы сохранить возможность сортировки:

  • Используйте ДАТАМЕС + форматирование ячеек.
  • Или добавьте вспомогательный столбец с исходными датами для сортировки.
Как автоматически обновлять месяц и год при изменении исходной даты?

Если использовали формулы (ТЕКСТ, ДАТАМЕС), они обновятся автоматически. Для Power Query нажмите Данные → Обновить все. Если применяли форматирование ячеек, изменения также отразятся сразу.

Можно ли преобразовать дату в формат «квартал год» (например, «Q3 2023»)?

Да, используйте формулу:

= "Q" & ОКРУГЛВВЕРХ(МЕСЯЦ(A2)/3; 0) & " " & ГОД(A2)

Для «3 квартал 2023»:

= ОКРУГЛВВЕРХ(МЕСЯЦ(A2)/3; 0) & " квартал " & ГОД(A2)
Как извлечь только месяц или только год отдельно?

Для месяца (число 1–12): =МЕСЯЦ(A2).

Для месяца (название): =ТЕКСТ(A2; "ММММ").

Для года: =ГОД(A2).