Как из даты в Excel сделать месяц прописью: от ТЕКСТ() до Power Query

Преобразование даты в название месяца прописью — одна из самых востребованных задач при работе с отчётами, календарным планированием и аналитикой в Microsoft Excel. Вы когда-нибудь сталкивались с ситуацией, когда вместо сухих цифр 01.05.2026 нужно было получить красивое слово "май"? Или требовалось автоматически заполнить таблицу названиями месяцев на русском языке для презентации руководству?

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

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

———

1. Способ №1: Функция ТЕКСТ() — самый простой вариант

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

Базовый синтаксис:

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

Где "мммм" — это код формата, который возвращает полное название месяца (например, "январь"). Если нужно сокращённое название ("янв"), используйте "ммм".

Пример: если в ячейке A1 находится дата 15.03.2026, формула =ТЕКСТ(A1; "мммм") вернёт "март". Но здесь есть подвох: по умолчанию Excel использует языковые настройки системы. Если у вас английская версия Windows, результат будет "March" вместо "март".

  • Плюсы: простая формула, работает во всех версиях Excel.
  • Минусы: зависит от языковых настроек ПК, не гибкая для многоязычных документов.

———

2. Способ №2: Функция ВЫБРАТЬ() для русификации

Когда ТЕКСТ() выдаёт месяцы на английском, а вам нужны русские названия, на помощь придёт функция ВЫБРАТЬ() (или CHOOSER в английской версии). Она позволяет вручную сопоставить номер месяца (от 1 до 12) с его названием.

Формула выглядит так:

=ВЫБРАТЬ(МЕСЯЦ(A1); "январь"; "февраль"; "март"; "апрель"; "май"; "июнь"; "июль"; "август"; "сентябрь"; "октябрь"; "ноябрь"; "декабрь")

Здесь МЕСЯЦ(A1) извлекает номер месяца из даты в ячейке A1 (например, для 15.03.2026 это будет 3), а ВЫБРАТЬ() подставляет соответствующее название.

⚠️ Внимание: Если в ячейке A1 не дата, а текст (например, "15-03-2026"), функция МЕСЯЦ() вернёт ошибку #ЗНАЧ!. Предварительно преобразуйте текст в дату с помощью ДАТАЗНАЧ().
  • 📌 Где пригодится: для отчётов на русском языке, когда нужно гарантированно получить месяцы независимо от настроек системы.
  • 🔄 Альтернатива: вместо ВЫБРАТЬ() можно использовать вложенные ЕСЛИ(), но это сделает формулу громоздкой.

———

3. Способ №3: Пользовательский формат ячеек

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

Инструкция:

  1. Выделите ячейку(и) с датой.
  2. Нажмите Ctrl+1 (или правая кнопка мыши → Формат ячеек).
  3. Перейдите на вкладку Число → Все форматы.
  4. В поле Тип: введите [$-419]ММММ;@ (для русского языка) или ММММ (для английского).

Код [$-419] — это идентификатор русского языка в Excel. После применения формата дата 15.03.2026 будет отображаться как "март", но в строке формул останется исходное значение.

Код формата Пример отображения Язык
[$-419]ММММ март Русский
[$-409]ММММ March Английский (США)
[$-804]ММММ März Немецкий
МММ мар (или Mar) Зависит от системы
⚠️ Внимание: Пользовательский формат не меняет значение ячейки! Если вы сошлётесь на эту ячейку в другой формуле, Excel будет использовать исходную дату, а не текст "март".

———

📊 Какой способ преобразования даты в месяц вы используете чаще?
Функция ТЕКСТ()
Пользовательский формат
Формула с ВЫБРАТЬ()
Power Query
Не знаю, как это делать

4. Способ №4: Power Query для массовой обработки

Если вам нужно преобразовать тысячи дат в названия месяцев (например, в большом отчёте), ручное применение формул займёт слишком много времени. В этом случае Power Query — идеальное решение. Этот инструмент доступен в Excel 2016 и новее (включая Office 365).

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

  1. Выделите таблицу с датами и нажмите Данные → Из таблицы/диапазона (или Get & Transform → From Table/Range в английской версии).
  2. В открывшемся редакторе Power Query выделите столбец с датами.
  3. Перейдите на вкладку Добавить столбец → Пользовательский столбец.
  4. Введите название нового столбца (например, "Месяц") и формулу:
    = Date.MonthName([Дата], "ru-RU")

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

  5. Нажмите ОК, затем Закрыть и загрузить.

Результат: в вашей таблице появится новый столбец с названиями месяцев на русском языке. Преимущество Power Query в том, что вы можете обновить данные одним кликом (правая кнопка по таблице → Обновить), если исходные даты изменятся.

Убедиться, что даты распознаны как формат "Дата" (не текст)|Проверить отсутствие пустых ячеек в столбце|Сохранить исходную таблицу (на случай ошибок)|Задать правильную локаль ("ru-RU" для русского)-->

———

5. Способ №5: VBA-макрос для автоматизации

Для пользователей, которые регулярно работают с большими объёмами данных, написание простого макроса на VBA может сэкономить часы времени. Макрос позволит преобразовать даты в месяцы прописью по всему документу или выбранному диапазону.

Пример кода для создания пользовательской функции:

Function MonthNameRu(d As Date) As String

Dim months(1 To 12) As String

months(1) = "январь": months(2) = "февраль": months(3) = "март"

months(4) = "апрель": months(5) = "май": months(6) = "июнь"

months(7) = "июль": months(8) = "август": months(9) = "сентябрь"

months(10) = "октябрь": months(11) = "ноябрь": months(12) = "декабрь"

MonthNameRu = months(Month(d))

End Function

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в модуль (в меню Insert → Module).
  3. Сохраните файл как .xlsm (с поддержкой макросов).
  4. Теперь в Excel можно использовать функцию =MonthNameRu(A1).

Этот метод не зависит от языковых настроек системы и гарантированно вернёт месяцы на русском. Кроме того, макрос можно модифицировать для выводы месяцев в родительном падеже ("января", "февраля" и т.д.), что часто требуется в официальных документах.

Как модифицировать макрос для родительного падежа?

Замените массив months на:

months(1) = "января": months(2) = "февраля": months(3) = "марта"

months(4) = "апреля": months(5) = "мая": months(6) = "июня"

months(7) = "июля": months(8) = "августа": months(9) = "сентября"

months(10) = "октября": months(11) = "ноября": months(12) = "декабря"

Теперь функция будет возвращать "15 мая" вместо "май".

———

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

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

  • 🔢 Ошибка #ЗНАЧ! в функции МЕСЯЦ(): возникает, если ячейка содержит текст вместо даты. Используйте ДАТАЗНАЧ() для преобразования:
    =МЕСЯЦ(ДАТАЗНАЧ(A1))
  • 🌍 Английские месяцы вместо русских: проверьте региональные настройки в Панель управления Windows → Часы и регион → Региональные стандарты. Для Excel важно, чтобы формат даты был установлен на "Русский (Россия)".
  • 📅 Неправильный формат ячейки: если после применения ТЕКСТ() вы видите числа вместо названий, убедитесь, что результат формулы имеет формат "Общий" или "Текст".
  • 🔄 Проблемы с обновлением в Power Query: если после изменения исходных данных месяцы не обновляются, нажмите правой кнопкой по таблице и выберите Обновить.

Особенно коварна ситуация, когда даты хранятся как текст (например, "01.05.2026" вместо настоящей даты). В этом случае ни МЕСЯЦ(), ни ТЕКСТ() не сработают. Используйте комбинацию функций:

=ТЕКСТ(ДАТАЗНАЧ(A1); "[$-419]ММММ")

———

7. Продвинутые приёмы: падежи, сокращения и многоязычность

Базовые методы преобразования дат в месяцы покрывают 80% задач, но иногда требуются более сложные решения. Рассмотрим три нетривиальных сценария:

7.1. Месяцы в родительном падеже ("15 января")

Для отображения дат в формате "15 января 2026 года" используйте комбинацию функций:

=ДЕНЬ(A1) & " " & ВЫБРАТЬ(МЕСЯЦ(A1); "января"; "февраля"; "марта"; "апреля"; "мая"; "июня"; "июля"; "августа"; "сентября"; "октября"; "ноября"; "декабря") & " " & ГОД(A1) & " года"

7.2. Сокращённые названия ("янв.", "фев.")

Если нужны стандартные сокращения с точкой, модифицируйте функцию ВЫБРАТЬ():

=ВЫБРАТЬ(МЕСЯЦ(A1); "янв."; "фев."; "мар."; "апр."; "мая"; "июн."; "июл."; "авг."; "сен."; "окт."; "ноя."; "дек.")

7.3. Многоязычные документы

Если в одной таблице нужно отображать месяцы на разных языках, используйте Power Query с параметром локали:

= Date.MonthName([Дата], "en-US")  // английский

= Date.MonthName([Дата], "de-DE") // немецкий

———

8. Сравнение методов: какой выбрать?

Выбор способа преобразования даты в месяц прописью зависит от вашей задачи. Ниже — сравнительная таблица с рекомендациями:

Метод Сложность Гибкость Когда использовать Ограничения
ТЕКСТ() Низкая Быстрое решение для одноязычных документов Зависит от настроек системы
ВЫБРАТЬ() ⭐⭐ Средняя Гарантированно русские месяцы, падежи Длинная формула
Пользовательский формат Низкая Только для визуального отображения Не работает в формулах
Power Query ⭐⭐⭐ Высокая Большие datasets, автоматическое обновление Требует Excel 2016+
VBA ⭐⭐⭐⭐ Максимальная Автоматизация, сложные правила Нужны права на макросы

Для большинства пользователей оптимальным решением будет комбинация ТЕКСТ() с ручной проверкой языковых настроек или ВЫБРАТЬ() для гарантированного результата. Если вы работаете с большими данными, освоение Power Query окупится с лихвой.

———

FAQ: Частые вопросы

Можно ли получить месяц прописью без формул?

Да, с помощью пользовательского формата ячеек (способ №3). Однако это решение только визуальное: в формулах и вычислениях Excel будет использовать исходную дату, а не текст месяца.

Почему функция ТЕКСТ() возвращает английские месяцы?

Это происходит из-за языковых настроек вашей системы. Чтобы исправить, измените региональные параметры Windows на "Русский (Россия)" или используйте функцию ВЫБРАТЬ() для принудительной русификации.

Как сделать, чтобы месяц отображался с заглавной буквы ("Май" вместо "май")?

Используйте функцию ПРОПНАЧ() для первой буквы:

=ПРОПНАЧ(ТЕКСТ(A1; "[$-419]мммм"))

Или модифицируйте массив в ВЫБРАТЬ(), заменив "май" на "Май".

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

Да, но для этого нужно знать год. Например, если в ячейке A1 написано "май", а год хранится в B1, используйте:

=ДАТА(B1; ПОИСКПОЗ(A1; {"январь";"февраль";...;"декабрь"};0); 1)

Эта формула вернёт первую дату месяца (например, 01.05.2026).

Почему после обновления Excel месяцы снова стали английскими?

Это связано с тем, что Excel сбрасывает пользовательские форматы при некоторых обновлениях или при открытии файла на другом ПК. Чтобы избежать проблемы, используйте формулы (ВЫБРАТЬ() или ТЕКСТ()) вместо формата ячеек.