Работа с датами в Microsoft Excel часто требует преобразования числовых значений в удобочитаемый текстовый формат. Одна из самых распространённых задач — конвертация даты в название месяца (например, из 15.05.2026 получить "май" или "Май 2026"). Это актуально для отчётов, графиков, аналитики и даже повседневных таблиц, где нужно группировать данные по месяцам без потери визуальной наглядности.
На первый взгляд задача кажется тривиальной, но в Excel есть как минимум 5 различных способов её решения — от элементарных функций до продвинутых инструментов вроде Power Query или VBA. Выбор метода зависит от версии программы (2010, 2016, 365), объёма данных и требований к формату результата. Например, для одноразовой операции подойдёт функция ТЕКСТ, а для автоматизации ежемесячных отчётов лучше настроить Power Query.
В этой статье мы разберём все варианты — от базовых до профессиональных, — а также покажем, как избежать типичных ошибок при работе с датами (например, когда вместо "январь" вы получаете число 1). Особое внимание уделим локализации: почему в английской версии Excel месяцы выводятся как January, а в русской — как "январь", и как это исправить.
1. Функция ТЕКСТ: самый простой способ
Если вам нужно быстро преобразовать дату в название месяца без дополнительных вычислений, функция ТЕКСТ — идеальный выбор. Она позволяет задать любой текстовый формат для даты, включая полные и сокращённые названия месяцев.
Синтаксис функции:
=ТЕКСТ(дата; "формат")
Где дата — это ячейка с датой (например, A1), а "формат" — строка с кодом формата. Для месяцев чаще всего используют:
- 📅
"мммм"— полное название месяца ("январь", "февраль" и т.д.) - 📅
"ммм"— сокращённое название ("янв", "фев") - 📅
"мммм гггг"— месяц и год ("май 2026")
Пример: если в ячейке A1 записана дата 15.05.2026, то формула =ТЕКСТ(A1; "мммм") вернёт "май". А формула =ТЕКСТ(A1; "ммм гггг") — "май 24".
⚠️ Внимание: ФункцияТЕКСТвозвращает текст, а не число. Это значит, что с результатом нельзя выполнять математические операции (например, вычитать месяцы). Если вам нужно дальнейшее вычисление, используйте функциюМЕСЯЦ(см. следующий раздел).
2. Функция МЕСЯЦ: когда нужен номер месяца
Если вам требуется не название, а номер месяца (например, 5 вместо "май"), используйте функцию МЕСЯЦ. Она возвращает порядковый номер месяца в году (от 1 до 12) для указанной даты.
Синтаксис:
=МЕСЯЦ(дата)
Пример: =МЕСЯЦ(A1) для даты 15.05.2026 вернёт 5. Этот результат можно дальше использовать в формулах, например, для условного форматирования или фильтрации.
Чтобы преобразовать номер месяца обратно в название, комбинируйте МЕСЯЦ с функцией ВЫБОР:
=ВЫБОР(МЕСЯЦ(A1); "январь"; "февраль"; "март"; ...; "декабрь")
Такой подход полезен, если вам нужно настроить собственные названия месяцев (например, на другом языке или в нестандартном формате).
3. Power Query: автоматизация для больших данных
Если вы работаете с большими массивами данных (например, импортируете отчёты из 1С или CRM), ручное преобразование дат в месяцы станет утомительным. В этом случае поможет инструмент Power Query (доступен в Excel 2016 и новее).
Алгоритм действий:
- Выделите таблицу с датами и нажмите
Данные → Получить данные → Из таблицы/диапазона. - В открывшемся редакторе Power Query выделите столбец с датами.
- Перейдите на вкладку
Преобразоватьи выберитеДата → Месяц → Название месяца. - Нажмите
Закрыть и загрузить, чтобы применить изменения.
Преимущество этого метода — автоматическое обновление. Если исходные данные изменятся, достаточно обновить запрос (Данные → Обновить все), и месяцы пересчитаются автоматически.
⚠️ Внимание: В Power Query названия месяцев выводятся в соответствии с языковыми настройками Excel. Если у вас английская версия программы, месяцы будут на английском. Чтобы это исправить, добавьте в запрос шаг с заменой текста или используйте пользовательский столбец с функцией Date.MonthName.
Как изменить язык месяцев в Power Query?
1. В редакторе Power Query выделите столбец с месяцами.
2. Перейдите на вкладку Добавить столбец и выберите Пользовательский столбец.
3. Введите формулу:
if [Месяц] = "January" then "январь" else if [Месяц] = "February" then "февраль" else ...
4. Удалите исходный столбец и переименуйте новый.
4. Форматирование ячеек: визуальное решение
Если вам нужно только отобразить дату как месяц, но сохранить её в исходном формате (например, для сортировки), используйте пользовательский формат ячеек. Это не изменит само значение, а лишь его внешний вид.
Как настроить:
- Выделите ячейки с датами.
- Нажмите правой кнопкой и выберите
Формат ячеек(илиCtrl+1). - Перейдите на вкладку
Число → Все форматы. - В поле
Типвведите один из форматов:- 📅
мммм— полное название ("май") - 📅
ммм— сокращённое ("май") - 📅
мммм гггг— месяц и год ("май 2026")
- 📅
ОК.Главное отличие от функции ТЕКСТ: значение ячейки остаётся датой, поэтому его можно использовать в формулах и сортировке. Например, если вы отформатируете ячейку как "май", но в строке формул увидите 15.05.2026.
| Метод | Результат | Тип данных | Подходит для |
|---|---|---|---|
ТЕКСТ(A1; "мммм") |
"май" | Текст | Отчёты, графики |
МЕСЯЦ(A1) |
5 | Число | Вычисления, фильтры |
| Power Query | "май" | Текст/число | Большие массивы |
Формат ячеек мммм |
Отображается "май", значение — дата | Дата | Сортировка, аналитика |
5. VBA-макросы: для продвинутых пользователей
Если вам нужно автоматизировать преобразование дат в месяцы (например, для ежемесячных отчётов с одинаковой структурой), напишите простой макрос на VBA. Это удобно, когда требуется обработать десятки файлов или применить нестандартную логику.
Пример макроса, который заменяет даты на названия месяцев в выделенном диапазоне:
Sub ConvertDatesToMonths()
Dim cell As Range
For Each cell In Selection
If IsDate(cell.Value) Then
cell.Value = Format(cell.Value, "мммм")
End If
Next cell
End Sub
Как использовать:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Вставка → Модуль). - Выделите ячейки с датами в Excel и запустите макрос (
Alt+F8 → ConvertDatesToMonths → Выполнить). - 📌 Добавлял месяцы в новый столбец, не затирая исходные данные.
- 📌 Преобразовал месяцы на английский или другой язык.
- 📌 Применял разные форматы в зависимости от условия (например, для дат старше года — полное название, для текущего — сокращённое).
- 🚫 Вместо месяца отображается число (например, 41640 вместо "май"). Причина: Excel воспринимает значение как дату в числовом формате, но ячейка отформатирована как общий текст. Решение: примените к ячейке формат
Датаили используйте функциюДАТАЗНАЧдля преобразования текста в дату. - 🚫 Месяцы на английском ("May" вместо "май"). Причина: языковые настройки Excel или системы. Решение: измените код формата на русский (
"мммм") или используйте функциюВЫБОРдля ручной замены. - 🚫 Функция ТЕКСТ возвращает ошибку #ЗНАЧ! Причина: в ячейке не дата, а текст (например, "15.05.2026" вместо настоящей даты). Решение: преобразуйте текст в дату с помощью
ДАТАЗНАЧилиЗНАЧЕН. - 🚫 После обновления данных месяцы сбиваются. Причина: использовано форматирование ячеек вместо функций. Решение: применяйте
ТЕКСТилиPower Queryдля стабильного результата. - 📊 Выводить полное название месяца для текущего года и сокращённое — для прошлых.
- 📊 Подсвечивать ячейки с месяцами из определённого квартала.
- 📊 Группировать данные по месяцам в сводных таблицах.
Преимущество VBA — гибкость. Например, можно доработать макрос, чтобы он:
⚠️ Внимание: Макросы работают только в файлах с расширением.xlsm(с поддержкой макросов). Если вы сохраните файл как.xlsx, код перестанет выполняться.
Сохраните резервную копию файла|Включите поддержку макросов в настройках Excel (Файл → Параметры → Центр управления безопасностью → Параметры центра → Включить все макросы)|Проверьте, что выделен правильный диапазон ячеек|Тестируйте макрос на копии данных, а не на оригинале-->
6. Типичные ошибки и как их избежать
При преобразовании дат в месяцы пользователи часто сталкиваются с неожиданными результатами. Вот самые распространённые проблемы и их решения:
Критическая ошибка: если вы используете функцию ТЕКСТ для дат, скопированных из внешних источников (например, CSV), сначала проверьте их формат командой =ЕЧИСЛО(A1). Если результат ЛОЖЬ, данные не являются датой, и их нужно предварительно преобразовать.
7. Продвинутые сценарии: динамические месяцы и условная логика
Иногда требуется не просто преобразовать дату в месяц, а динамически изменять формат в зависимости от условий. Например:
Для таких задач комбинируйте несколько функций. Пример формулы, которая выводит полное название месяца, если год текущий, и сокращённое — если прошлый:
=ЕСЛИ(ГОД(A1)=ГОД(СЕГОДНЯ()); ТЕКСТ(A1; "мммм"); ТЕКСТ(A1; "ммм"))
Для условного форматирования по месяцам:
- Выделите диапазон с месяцами.
- Перейдите в
Главная → Условное форматирование → Создать правило. - Выберите
Использовать формулу для определения форматируемых ячеек. - Введите формулу (например, для выделения января):
=МЕСЯЦ(A1)=1. - Задайте цвет заполнения и нажмите
ОК.
В сводных таблицах месяцы автоматически группируются по кварталам или годам. Чтобы это работало корректно, убедитесь, что исходные данные имеют формат даты, а не текста.
FAQ: Частые вопросы по преобразованию дат в месяцы
Можно ли преобразовать месяц обратно в дату?
Да, но для этого нужно знать год. Например, если у вас есть текст "май", используйте формулу:
=ДАТА(2026; ПОИСКПОЗ("май"; {"январь";"февраль";..."декабрь"}; 0); 1)
Где 2026 — нужный год, а 1 — день месяца (можно указать любой).
Почему функция МЕСЯЦ возвращает ошибку #ЗНАЧ!?
Ошибка возникает, если в ячейке не дата, а текст (например, "15.05.2026" вместо настоящей даты). Преобразуйте текст в дату с помощью:
=ДАТАЗНАЧ(A1)
Или измените формат ячейки на Дата.
Как вывести месяц на английском в русской версии Excel?
Используйте код локали в функции ТЕКСТ:
=ТЕКСТ(A1; "[$-409]mmmm")
Где 409 — код английской локали. Для других языков подставьте соответствующий код (например, 407 для немецкого).
Можно ли автоматически обновлять месяцы при изменении даты?
Да, если использовать формулы (ТЕКСТ, МЕСЯЦ) или Power Query. Форматирование ячеек не обновляется автоматически при изменении исходной даты.
Как извлечь месяц из даты в формате "2026-05-15" (ISO)?
Функция ТЕКСТ работает и с таким форматом:
=ТЕКСТ(A1; "мммм")
Если Excel не распознаёт дату, предварительно преобразуйте текст в дату:
=ДАТАЗНАЧ(ПОДСТАВИТЬ(A1; "-"; "."))