Работа с датами в Microsoft Excel — одна из самых востребованных задач, но не все пользователи знают, как быстро преобразовать числовой формат (например, 15.03.2026) в текстовое название месяца. Почему это важно? Представьте отчёт, где вместо сухих цифр нужно указать "март 2026" или просто "Март" — так данные воспринимаются легче, а документ выглядит профессиональнее.
Многие ошибочно пытаются вручную переписывать месяцы или использовать долгие обходные пути. На деле в Excel есть минимум 5 способов решить эту задачу: от элементарных функций ТЕКСТ и МЕСЯЦ до продвинутых инструментов вроде Power Query или VBA. В этой статье разберём каждый метод с примерами, нюансами и типичными ошибками. Вы узнаете, как получить месяц строчными, прописными или с заглавной буквы, а также как автоматизировать процесс для тысяч строк.
Особое внимание уделим локализации: почему в русскоязычном Excel формула может выдавать месяц на английском, и как это исправить. Также раскроем секрет, как избежать ошибки #ЗНАЧ!, когда Excel не распознаёт дату как дату.
Готовы оптимизировать работу с датами? Начнём с самого простого — и постепенно дойдём до решений для опытных пользователей.
Способ 1: Функция ТЕКСТ — быстрый результат без настройки
Функция ТЕКСТ — это универсальный инструмент для преобразования чисел и дат в текстовый формат. Она идеально подходит, когда нужно однократно получить название месяца из даты, не углубляясь в сложные формулы.
Синтаксис функции:
=ТЕКСТ(дата; "формат")
Где формат — это шаблон, который определяет, как будет отображаться дата. Для месяца словом используйте:
- 📅
"мммм"— полное название месяца с заглавной буквы (например, "Май") - 📅
"ммм"— сокращённое название (например, "май") - 📅
"[$-ru-RU]мммм"— принудительная русификация (актуально для англоязычных версий Excel)
Пример: если в ячейке A1 содержится дата 15.05.2026, формула =ТЕКСТ(A1; "мммм") вернёт "Май". А формула =ТЕКСТ(A1; "[$-ru-RU]ммм") — "май" (строчными).
⚠️ Внимание: Если функция возвращает месяц на английском (например, "May"), проверьте региональные настройки Excel. В меню Файл → Параметры → Язык должен быть выбран русский язык как основной.
Преимущества метода:
- ✅ Простота — не требует знания сложных функций.
- ✅ Гибкость — можно комбинировать с другими форматами (например,
"мммм гггг"для "Май 2026").
Недостатки:
- ❌ Результат — текст, а не дата. С таким значением нельзя проводить вычисления (например, сортировку по месяцам).
- ❌ При изменении языка Excel формат может сбиться.
Способ 2: Функция МЕСЯЦ + ВЫБОР — для точного контроля
Когда функция ТЕКСТ не подходит (например, из-за проблем с локализацией), на помощь приходит комбинация МЕСЯЦ и ВЫБОР. Этот метод даёт полный контроль над выводом и работает независимо от языковых настроек.
Алгоритм:
- Функция
МЕСЯЦизвлекает номер месяца из даты (от 1 до 12). - Функция
ВЫБОРпреобразует этот номер в текстовое название.
Формула для полного названия месяца с заглавной буквы:
=ВЫБОР(МЕСЯЦ(A1); "Январь"; "Февраль"; "Март"; "Апрель"; "Май"; "Июнь"; "Июль"; "Август"; "Сентябрь"; "Октябрь"; "Ноябрь"; "Декабрь")
Для сокращённого варианта (3 буквы) или строчных букв просто измените текст в кавычках:
=ВЫБОР(МЕСЯЦ(A1); "янв"; "фев"; "мар"; ...)
Почему этот способ надёжнее ТЕКСТ?
- 🔄 Работает в любых региональных настройках.
- 🛠️ Легко редактировать названия (например, добавить точку: "янв.").
- 📊 Результат можно использовать в других формулах (например, для условного форматирования).
⚠️ Внимание: Если в ячейкеA1не дата, а текст (например, "15.05.2026"), формула вернёт ошибку. Преобразуйте текст в дату с помощьюДАТАЗНАЧ():=ВЫБОР(МЕСЯЦ(ДАТАЗНАЧ(A1)); "Январь"; ...)
Убедитесь, что ячейка содержит дату, а не текст|Проверьте регистр первых букв в названиях месяцев|Учитывайте, что номера месяцев начинаются с 1 (январь), а не с 0|Тестируйте формулу на крайних значениях (1 и 12 месяц)
-->
Способ 3: Power Query — автоматизация для больших данных
Если вам нужно преобразовать месяцы в текстовой формат для тысяч строк или регулярно обновлять данные, ручные формулы станут тормозом. Здесь поможет Power Query — инструмент для обработки и трансформации данных, встроенный в Excel 2016+.
Пошаговая инструкция:
- Выделите исходные данные с датами.
- Перейдите на вкладку
Данные→Из таблицы/диапазона(в Excel 2016-2019) илиПолучить данные → Из таблицы/диапазона(в Excel 365). - В открывшемся редакторе Power Query выделите столбец с датами.
- На вкладке
ПреобразоватьвыберитеСтолбец даты → Месяц → Название месяца. - Нажмите
Закрыть и загрузить, чтобы вернуть данные в Excel.
Преимущества Power Query:
- 🚀 Обрабатывает миллионы строк без тормозов.
- 🔄 Легко обновлять данные одним кликом (
Данные → Обновить все). - 🌍 Автоматически учитывает региональные настройки.
Недостаток: требует изучения интерфейса Power Query, что может показаться сложным новичкам.
Формулы (ТЕКСТ, МЕСЯЦ)|Power Query|VBA|Условное форматирование|Не знаю, что это
-->
Способ 4: VBA — для опытных пользователей
Если вам нужно динамически обновлять названия месяцев или интегрировать преобразование в макрос, VBA (Visual Basic for Applications) — лучший выбор. Этот метод подходит для создания пользовательских функций или автоматизации отчётов.
Пример кода для пользовательской функции, которая возвращает название месяца:
Function MonthName(ByVal dateCell As Range) As String
Dim monthNum As Integer
monthNum = Month(dateCell.Value)
Select Case monthNum
Case 1: MonthName = "Январь"
Case 2: MonthName = "Февраль"
' ... остальные месяцы ...
Case 12: MonthName = "Декабрь"
End Select
End Function
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в модуль (
Вставка → Модуль). - Теперь в Excel можно использовать функцию как обычно:
=MonthName(A1).
Плюсы VBA:
- 🤖 Полная автоматизация — можно привязать к событиям (например, при открытии файла).
- 🛠️ Гибкость — легко модифицировать под свои нужды (например, добавить вывод на английском).
Минусы:
- ⚙️ Требует знания основ VBA.
- ⚠️ Макросы могут быть отключены по умолчанию (проверьте
Файл → Параметры → Центр управления безопасностью).
Как сделать функцию с выбором языка?
Добавьте второй аргумент в функцию для языка:
Function MonthName(ByVal dateCell As Range, Optional lang As String = "ru") As String
If lang = "en" Then
' Английские названия месяцев
Select Case Month(dateCell.Value)
Case 1: MonthName = "January"
' ...
End Select
Else
' Русские названия (по умолчанию)
' ...
End If
End Function
Теперь можно вызывать =MonthName(A1; "en") для английского варианта.
Способ 5: Условное форматирование — визуальное выделение
Иногда название месяца нужно не для расчётов, а для визуального акцента в отчётах. Например, чтобы все ячейки с "январем" были зелёными, а с "декабрём" — красными. Здесь поможет условное форматирование.
Инструкция:
- Выделите диапазон с датами.
- Перейдите на вкладку
Главная → Условное форматирование → Создать правило. - Выберите
Использовать формулу для определения форматируемых ячеек. - Введите формулу для января:
=МЕСЯЦ(A1)=1. - Задайте формат (например, зелёный фон) и нажмите
ОК. - Повторите для других месяцев, меняя номер в формуле.
Пример правил для сезонов:
| Сезон | Месяцы | Формула | Цвет |
|---|---|---|---|
| Зима | Декабрь, Январь, Февраль | =ИЛИ(МЕСЯЦ(A1)=12; МЕСЯЦ(A1)<=2) | Синий |
| Весна | Март, Апрель, Май | =И(МЕСЯЦ(A1)>=3; МЕСЯЦ(A1)<=5) | Зелёный |
| Лето | Июнь, Июль, Август | =И(МЕСЯЦ(A1)>=6; МЕСЯЦ(A1)<=8) | Жёлтый |
| Осень | Сентябрь, Октябрь, Ноябрь | =И(МЕСЯЦ(A1)>=9; МЕСЯЦ(A1)<=11) | Оранжевый |
Условное форматирование не меняет сами данные — только их отображение. Это удобно для анализа, но не подходит, если нужно экспортировать текстовые названия месяцев в другие системы.
Типичные ошибки и как их избежать
Даже в простых задачах с датами пользователи сталкиваются с ошибками. Вот самые распространённые и способы их решения:
1. Ошибка #ЗНАЧ! при использовании функции МЕСЯЦ
- 🔍 Причина: В ячейке не дата, а текст (например, "15.05.2026" вместо даты).
- 🛠️ Решение: Преобразуйте текст в дату с помощью
ДАТАЗНАЧ()или измените формат ячейки наДата.
2. Месяц на английском вместо русского
- 🔍 Причина: Региональные настройки Excel или системы установлены на английский.
- 🛠️ Решение: Используйте формат
"[$-ru-RU]мммм"в функцииТЕКСТили применяйтеВЫБОР.
3. Некорректная сортировка по текстовым месяцам
- 🔍 Причина: Текстовые названия ("Январь", "Февраль"...) сортируются по алфавиту, а не по порядку месяцев.
- 🛠️ Решение: Добавьте вспомогательный столбец с номером месяца (
=МЕСЯЦ(A1)) и сортируйте по нему.
4. Формула не обновляется при изменении даты
- 🔍 Причина: В настройках Excel отключён автоматический пересчёт формул.
- 🛠️ Решение: Перейдите в
Формулы → Параметры вычислений → Автоматически.
FAQ: Ответы на частые вопросы
Как получить месяц строчными буквами, если функция ТЕКСТ возвращает с заглавной?
Используйте комбинацию функций НИЖН.РЕГ и ТЕКСТ:
=НИЖН.РЕГ(ТЕКСТ(A1; "мммм"))
Для сокращённого варианта (3 буквы): =НИЖН.РЕГ(ТЕКСТ(A1; "ммм")).
Можно ли сделать так, чтобы месяц автоматически обновлялся при изменении даты?
Да, все описанные формулы (кроме Power Query без обновления) динамически пересчитываются. Если формула не обновляется:
- Проверьте настройки пересчёта:
Формулы → Параметры вычислений → Автоматически. - Нажмите
F9, чтобы принудительно пересчитать все формулы в книге.
Как вывести месяц и год вместе (например, "Май 2026")?
Используйте функцию ТЕКСТ с комбинированным форматом:
=ТЕКСТ(A1; "мммм гггг")
Для английского варианта: =ТЕКСТ(A1; "[$-en-US]mmmm yyyy").
Почему в макросе месяц отображается как число, а не текст?
Функция Month() в VBA возвращает номер месяца (1–12). Чтобы получить название, используйте:
MonthName(Month(dateCell.Value), True) ' Сокращённое название
MonthName(Month(dateCell.Value), False) ' Полное название
Для русского языка придётся писать собственную функцию (как в примере выше).
Как сделать выпадающий список с названиями месяцев?
Создайте список месяцев на отдельном листе (или введите вручную), затем:
- Выделите ячейку для выпадающего списка.
- Перейдите в
Данные → Проверка данных. - В поле
Тип данныхвыберитеСписок. - В поле
Источникукажите диапазон с месяцами (например,=Лист2!A1:A12).