Как написать сумму прописью в Excel
В Excel нет встроенной формулы, которая сама переводит число в текст — «сто рублей пятьдесят копеек» вместо «100,50». Разбираемся, почему так, чем плохи формулы-конструкторы без макроса, и как подключить рабочую функцию, которая делает это одной ячейкой.
Опубликовано
Почему в Excel нет готовой функции
СУММ, СРЗНАЧ или ВПР — универсальные математические операции, которые одинаково работают в любой стране и на любом языке. «Сумма прописью» — совсем другое: результат зависит от валюты (рубль или доллар), от рода слова («один рубль», но «одна копейка»), от того, нужна ли дробная часть словами или цифрами. Такую языковую логику в базовый набор функций листа Microsoft не включает — она либо живёт в надстройках, либо пишется отдельным макросом под конкретную задачу.
Способ без макроса — и почему он не работает по-настоящему
В интернете встречаются гигантские формулы на ВПР, ПОДСТАВИТЬ и ВЫБОР, которые пытаются собрать текст числа без единого макроса — одна формула на несколько тысяч символов с вложенными таблицами соответствий «цифра → слово». На практике у них общие проблемы:
- Нет согласования по родам и числам. Без отдельной ветки на каждый случай формула выдаст «один рубля» или «два копейка» вместо грамматически верного варианта.
- Ограничение по разрядам. Такие формулы обычно жёстко рассчитаны на определённое количество цифр — сумма на порядок больше просто не поместится в логику формулы.
- Их невозможно поддерживать. Формула в одну строку на несколько тысяч символов не читается и не редактируется — любое изменение (например, добавить валюту) требует пересобирать её заново.
Рабочий способ — пользовательская функция (макрос)
Правильный инструмент для этой задачи — пользовательская функция (UDF, User Defined Function): макрос VBA, который вызывается в ячейке точно так же, как обычная формула. Разница с гигантской формулой — в том, что вся логика склонения по родам и разрядам пишется один раз в виде обычного, читаемого кода, а не одной строкой на весь лист.
Чтобы не писать такую функцию с нуля, можно взять готовую:
- Скачайте бесплатный файл с функцией
Num2Textна странице «Сумма прописью» и разрешите макросы при открытии. - Впишите формулу рядом с числом, например:
=Num2Text(A1;1;0;0;1)— результат обновляется вместе с числом в A1. - При необходимости скопируйте модуль VBA с функцией в свою книгу (Alt+F11 → импорт файла) — тогда формула будет работать и там, без исходного файла-примера.
На той же странице есть и онлайн-калькулятор — если нужно перевести сумму или число прописью разово, без Excel вообще, можно ввести число прямо в браузере и скопировать результат.
Частые проблемы
- Формула показывает #ИМЯ? Чаще всего — макросы не разрешены при открытии файла, либо функция была написана в другой книге и не скопирована в текущую.
- Файл заблокирован при скачивании. Это стандартная реакция Windows SmartScreen или антивируса на файл с макросами, скачанный из интернета, — не признак повреждения. Подробности: как разблокировать и открыть файл.
- После копирования числа результат не обновляется. Проверьте, что формула ссылается именно на ячейку с числом, а не содержит скопированное вручную статичное значение.
- Нужна не сумма (с валютой), а просто число словами. Для этого в параметрах функции — своя группа единиц измерения «без единиц», которая выводит только число, без «рублей» и «копеек».
Часто задаваемые вопросы
Почему в Excel нет готовой функции «сумма прописью»?
Потому что это не универсальная математическая операция, а языковая: результат зависит от валюты, рода слова, падежа и локали, поэтому Microsoft не включает её в базовый набор функций листа — такую логику оставляют либо надстройкам, либо пользовательским макросам.
Формула через ВПР и ПОДСТАВИТЬ без макроса вообще работает?
Для конкретного узкого диапазона сумм — да, такие формулы существуют. Но они не согласуют слова по роду и числу («один рубля» вместо «один рубль»), ломаются на отрицательных числах и крупных суммах, и их почти невозможно доработать без макроса — на практике проще и надёжнее написать (или взять готовую) функцию на VBA.
Обязательно включать макросы, чтобы формула сработала?
Да. Функция «сумма прописью» технически — это макрос VBA, вызываемый как обычная формула. Без разрешённых макросов ячейка покажет ошибку #ИМЯ? вместо текста.
Можно ли использовать такую функцию в своих файлах, а не только в примере?
Да — модуль с функцией копируется в любую книгу через редактор VBA (Alt+F11 → импорт файла), после этого формула работает в этой книге так же, как в исходном примере. Готовый файл с функцией и подробным разбором параметров — на странице «Сумма прописью».
Что дальше
Если сумму нужно писать не только в Excel, но и вручную — например, в договоре или акте — на странице «Сумма прописью» показано, как выглядит готовая формулировка для типового договора подряда, которую можно скопировать и адаптировать под свой документ. А если часть таблиц ведётся не в Excel, а в Google Таблицах — та же задача решается похожим способом, но на Apps Script вместо VBA: подробности в статье «Сумма прописью в Google Таблицах».
Сумма прописью — онлайн и функция для Excel
Бесплатный калькулятор прямо в браузере и готовая функция Num2Text для Excel — рубли, доллары, евро, с копейками словами или цифрами.