Работа с датами в 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».
Пример:
- В ячейке
A2— дата15.07.2023. - В ячейке
B2вводим формулу=ДАТАМЕС(A2; 0). - Нажимаем
Ctrl+1, выбираем формат «Март 2012». - Получаем «Июль 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) станет идеальным решением. Этот инструмент позволяет однократно настроить преобразование, а затем обновлять результат одним кликом.
Пошаговая инструкция:
- Выделите исходный диапазон с датами.
- Перейдите на вкладку
Данные → Получить данные → Из таблицы/диапазона. - В открывшемся редакторе Power Query выделите столбец с датами.
- Нажмите
Преобразовать → Формат → Дата(если Excel распознал данные как текст). - Добавьте новый столбец:
Добавить столбец → Пользовательский столбец. - Введите формулу:
= Date.ToText([ВашСтолбец], "MMMM yyyy", "ru-RU")где
[ВашСтолбец]— название вашего столбца с датами. - Нажмите
Закрыть и загрузить.
Теперь при обновлении исходных данных (кнопка Обновить все на вкладке Данные) столбец с месяцем и годом будет пересчитываться автоматически.
Формулы (ТЕКСТ, ДАТАМЕС и др.)|
Power Query|
Форматирование ячеек|
VBA-макросы|
Другой вариант-->
⚠️ Внимание: В Power Query названия месяцев выводятся в соответствии с языковыми настройками системы. Если у вас английская версия Excel, но нужны русские месяцы, укажите локаль явно: "ru-RU" в формуле.
═══
5. Форматирование ячеек: когда не нужны формулы
Если вам требуется только визуально отобразить дату в формате «месяц год», но сохранить исходное значение (например, для сортировки), используйте Формат ячеек. Этот метод не изменяет данные, а лишь меняет их отображение.
Как применить:
- Выделите ячейки с датами.
- Нажмите
Ctrl+1(или правая кнопка мыши →Формат ячеек). - Вкладка
Число → Дата. - В поле
Типвыберите «Март 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
Как использовать:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите ячейки с датами в Excel.
- Запустите макрос (
F5или черезВид → Макросы).
⚠️ Внимание: Макрос перезапишет данные в столбце справа от выделенных ячеек. Перед запуском убедитесь, что там нет важной информации.
═══
7. Типичные ошибки и как их избежать
При работе с датами в Excel пользователи часто сталкиваются с неожиданными результатами. Вот топ-3 ошибки и способы их решения:
1. Формула возвращает число вместо текста
🔹 Проблема: Вместо «Июль 2023» вы видите «45107».
🔹 Решение: Примените к ячейке текстовый формат (Формат ячеек → Текстовый) или используйте функцию ТЕКСТ.
2. Названия месяцев на английском
🔹 Проблема: Вместо «Июль» отображается «July».
🔹 Решение: Убедитесь, что в настройках Excel (или в формуле Power Query) указана локаль "ru-RU".
3. Ошибка #ЗНАЧ! при копировании формул
🔹 Проблема: Формула работает в одной ячейке, но выдаёт ошибку в других.
🔹 Решение: Проверьте, что все ячейки в столбце содержат даты, а не текст. Используйте =ЕЧИСЛО() для проверки.
Как проверить, является ли значение датой?
Используйте формулу =ЕЧИСЛО(A2). Если результат ИСТИНА, то в ячейке дата (или число). Если ЛОЖЬ — текст.
═══
FAQ: Ответы на частые вопросы
Можно ли преобразовать дату в формат «месяц год» без формул?
Да, с помощью форматирования ячеек:
- Выделите ячейки с датами.
- Нажмите
Ctrl+1→Число → Дата. - Выберите формат «Март 2012» или создайте пользовательский формат
ММММ ГГГГ.
Это не изменит сами данные, а только их отображение.
Почему после преобразования дата становится текстом и не сортируется?
Функции вроде ТЕКСТ или ВЫБОР возвращают текстовые значения. Чтобы сохранить возможность сортировки:
- Используйте
ДАТАМЕС+ форматирование ячеек. - Или добавьте вспомогательный столбец с исходными датами для сортировки.
Как автоматически обновлять месяц и год при изменении исходной даты?
Если использовали формулы (ТЕКСТ, ДАТАМЕС), они обновятся автоматически. Для Power Query нажмите Данные → Обновить все. Если применяли форматирование ячеек, изменения также отразятся сразу.
Можно ли преобразовать дату в формат «квартал год» (например, «Q3 2023»)?
Да, используйте формулу:
= "Q" & ОКРУГЛВВЕРХ(МЕСЯЦ(A2)/3; 0) & " " & ГОД(A2)
Для «3 квартал 2023»:
= ОКРУГЛВВЕРХ(МЕСЯЦ(A2)/3; 0) & " квартал " & ГОД(A2)
Как извлечь только месяц или только год отдельно?
Для месяца (число 1–12): =МЕСЯЦ(A2).
Для месяца (название): =ТЕКСТ(A2; "ММММ").
Для года: =ГОД(A2).