Как в Excel из даты в цифрах сделать месяц прописью

Работа с большими массивами данных в табличных процессорах часто требует не только вычислений, но и правильного визуального представления информации. Одной из распространенных задач является необходимость отобразить дату не в привычном числовом формате, а полностью текстовым способом, например, для оформления юридических документов, договоров или отчетов. Стандартные форматы ячеек позволяют вывести сокращенное или полное название месяца, но сделать это прописью (например, «двадцать пятое октября две тысячи двадцать четвертого года») встроенными средствами форматирования невозможно без использования специальных формул.

Проблема заключается в том, что Excel по умолчанию хранит дату как порядковый номер дня, начиная с 1900 года, и лишь отображает его в понятном для человека виде. Чтобы преобразовать это число в текст, а затем в слова, необходимо использовать комбинацию функций или прибегать к помощи пользовательских макросов. В этой статье мы разберем все доступные способы, от простых формул до продвинутых скриптов, которые помогут вам автоматизировать этот процесс и сэкономить часы ручной работы.

Прежде чем приступать к созданию сложных конструкций, важно понимать структуру данных, с которыми вы работаете. Если в ячейке действительно находится дата, то при изменении формата на «Общий» вы увидите число вроде 45567. Если же вы видите текст «25.10.2026», то сначала потребуется конвертировать его в настоящий формат даты, иначе формулы вернут ошибку. Ключевой момент: все описанные ниже методы работают только если Excel распознает содержимое ячейки как дату, а не как текст.

Почему стандартное форматирование не дает месяц прописью

Многие пользователи пытаются решить задачу через меню «Формат ячеек», выбирая различные варианты отображения даты. Действительно, в разделе «Дата» можно найти форматы, где месяц написан словами, например, «10 октября 2026 г.». Однако это лишь визуальная оболочка: внутреннее значение ячейки остается числовым, и полностью перевести его в текстовый вид для дальнейшего использования в других формулах таким способом нельзя.

Функция ТЕКСТ (или TEXT в английской версии) позволяет гибко управлять отображением, но ее возможности ограничены словарем, заложенным в систему. Вы можете получить «октябрь» или «Окт», но конструкция «двадцать пятое» потребует отдельной логической обработки. Стандартный инструментарий табличного процессора не имеет встроенной функции «ПРОПИСЬЮ» для дат, аналогичной той, что используется для сумм в финансовых документах.

Существует еще один нюанс, связанны с языковыми настройками. Даже если вы найдете способ вывести месяц словами, склонение числительных (первое, второго, первому) в русском языке требует сложной грамматики, которую простая формула форматирования обеспечить не может. Именно поэтому для полноценного решения задачи приходится комбинировать несколько функций или писать код на VBA.

⚠️ Внимание: Если после применения формулы вы видите набор символов «#####», просто расширьте столбец. Это означает, что текстовое значение не помещается в текущую ширину ячейки, а не то, что формула работает неверно.

Использование функции ТЕКСТ для получения названия месяца

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

Для получения полного названия месяца на русском языке используется код «мммм». Если в ячейке A1 находится дата, то формула будет выглядеть следующим образом:

=ТЕКСТ(A1; "мммм")

Результатом выполнения этой команды станет слово «октябрь» (строчными буквами). Если вам нужно, чтобы месяц начинался с заглавной буквы, можно обернуть функцию в ПРОПНАЧ (или PROPER), хотя для названий месяцев в русском языке это обычно не требуется, так как они пишутся с маленькой буквы, если не стоят в начале предложения.

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

📊 Какой формат даты вы чаще всего используете в работе?
ДД.ММ.ГГГГ
ДД-ММ-ГГГГ
ДД/ММ/ГГГГ
ММ.ДД.ГГГГ
Только текстовый

Сложные формулы: склонение чисел и падежи

Для того чтобы написать день месяца прописью (например, «двадцать пятое»), простой функции форматирования недостаточно. Здесь вступает в игру логика склонения числительных. В русском языке числа от 1 до 19 имеют уникальные названия, а составные числа образуются комбинацией десятков и единиц. Реализовать это можно с помощью вложенных функций ВЫБОР (CHOOSE) и ДЕНЬ (DAY).

Ниже приведен пример конструкции, которая переводит день месяца в текст. Обратите внимание, что для корректной работы требуется список числительных. Формула будет громоздкой, но она демонстрирует принцип работы:

=ВЫБОР(ДЕНЬ(A1); "первое"; "второе"; "третье"; "четвертое"; "пятое"; "шестое"; "седьмое"; "восьмое"; "девятое"; "десятое"; "одиннадцатое"; "двенадцатое"; "тринадцатое"; "четырнадцатое"; "пятнадцатое"; "шестнадцатое"; "семнадцатое"; "восемнадцатое"; "девятнадцатое"; "двадцатое"; "двадцать первое"; "двадцать второе"; "двадцать третье"; "двадцать четвертое"; "двадцать пятое"; "двадцать шестое"; "двадцать седьмое"; "двадцать восьмое"; "двадцать девятое"; "тридцатое"; "тридцать первое")

Как видно из примера, для дней до 31 числа требуется прописать каждый вариант вручную или использовать более сложные алгоритмы с делением на десятки. Для года ситуация еще сложнее, так как диапазон чисел велик. Поэтому для полноценного перевода всей даты в строку часто используют комбинацию: день прописью (через ВЫБОР) + месяц прописью (через ВЫБОР или ТЕКСТ) + год прописью (через сложную формулу или функцию СПЕЦТЕКСТ, если она доступна в вашей версии).

Использование таких формул имеет свои плюсы и минусы. Плюс в том, что файл остается в стандартном формате .xlsx и не требует включения макросов. Минус — низкая производительность при обработке тысяч строк и сложность поддержки кода другими пользователями.

Таблица соответствия кодов формата и результатов

При работе с функциями даты и времени критически важно правильно указывать коды формата. Ошибка в одном символе может привести к тому, что вместо месяца вы получите номер недели или квартал. В таблице ниже приведены основные коды, полезные для текстового представления дат.

Код формата Описание Пример результата (для 05.10.2026)
д День без ведущего нуля 5
дд День с ведущим нулем 05
ддд Сокращенное имя дня недели сб
дддд Полное имя дня недели суббота
мм Номер месяца с нулем 10
ммм Сокращенное название месяца окт
мммм Полное название месяца октябрь
гг Год двузначный 24
гггг Год четырехзначный 2026

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

Автоматизация через макросы VBA: функция ПРОПИСЬЮ

Наиболее элегантным и профессиональным решением задачи является создание собственной пользовательской функции на языке VBA (Visual Basic for Applications). Это позволит вам ввести в ячейку формулу =ПРОПИСЬЮ_ДАТА(A1) и получить результат в виде «пятое октября две тысячи двадцать четвертого».

Для реализации этого метода необходимо открыть редактор макросов (сочетание клавиш Alt + F11), создать новый модуль и вставить туда код функции. Код будет содержать массивы слов для единиц, десятков, сотен и месяцев, а также логику их соединения в зависимости от значения даты.

☑️ Подготовка к внедрению макроса

Выполнено: 0 / 5

Преимущество макроса в том, что он один раз написанный код работает во всей книге. Вы можете передавать в функцию дополнительные параметры, например, указывать, нужно ли писать год полностью или сокращенно. Кроме того, макросы работают быстрее сложных вложенных формул при обработке больших объемов данных.

⚠️ Внимание: Файлы с макросами имеют расширение .xlsm. При отправке такого файла коллегам убедитесь, что у них в настройках безопасности Excel разрешено выполнение макросов, иначе функция вернет ошибку #ИМЯ?.

Пример вызова такой функции в ячейке:

=DateToWords(A1)

Где DateToWords — имя вашей функции на VBA. Внутри кода можно реализовать поддержку разных падежей, что сделает отчеты еще более профессиональными.

Пример логики макроса

Если день = 1, то слово "первое", если 21, то "двадцать первое". Код разбивает число на разряды и подбирает слова из словаря.

Частые ошибки и способы их устранения

При попытке реализовать перевод даты в текст пользователи часто сталкиваются с типовыми проблемами. Одна из самых распространенных — ошибка #ЗНАЧ! (#VALUE!). Она возникает, если в ячейке, которую вы пытаетесь обработать, дата записана как текст. Excel не может применить математические функции (как ДЕНЬ или МЕСЯЦ) к текстовой строке «25.10.2026».

Для исправления ситуации используйте функцию ДАТАЗНАЧ (DATEVALUE) или инструмент «Текст по столбцам» на вкладке «Данные». Это преобразует текстовое представление в настоящий serial-number даты. Также проверьте разделитель в формулах: в русской версии Excel аргументы разделяются точкой с запятой ;, а в английской — запятой ,.

Еще одна проблема — неверное склонение. Функция ТЕКСТ не умеет склонять слова по падежам. Если вам нужно «1 октября» (родительный падеж), а формула дает «1 октябрь» (именительный), придется либо мириться с этим, либо использовать сложные формулы с ВЫБОР для каждого месяца, либо опять же обращаться к VBA.

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

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

Да, это возможно с помощью комбинации функций ВЫБОР, ДЕНЬ, МЕСЯЦ и ГОД. Однако формула получится очень длинной и сложной для чтения. Для разовых задач это приемлемо, но для постоянных отчетов лучше использовать макрос.

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

Это зависит от языковых настроек вашего Excel и операционной системы. Если интерфейс русский, то и результат должен быть на русском. Если на английском — используйте кодировку "mmmm" для английского названия или настройте регион в Windows.

Как перевести число 5 в текст "пятое"?

Стандартной функции для этого нет. Нужно использовать формулу с массивом слов: =ВЫБОР(5; "первое"; "второе";..) или специальную надстройку, если она установлена.

Работают ли эти формулы в Google Таблицах?

Да, функции TEXT, DAY, MONTH работают аналогично. Однако макросы VBA в Google Таблицах не работают, там нужно использовать Google Apps Script (JavaScript).