Преобразование числовых значений в текстовый формат прописью — одна из самых востребованных задач в Microsoft Excel, особенно при работе с финансовой документацией, договорами или отчётами. Вручную переписывать цифры словами не только долго, но и чревато ошибками. К сожалению, в стандартном наборе функций Excel нет готовой команды "преобразовать в пропись", но есть несколько проверенных способов решить эту задачу: от простых формул до автоматизации через VBA.
В этой статье мы разберём 3 основных метода — с использованием встроенных функций, надстроек и макросов, — а также покажем, как адаптировать решение под рублевый, долларовый и евро формат. Вы узнаете, какие подводные камни встречаются при работе с большими числами, отрицательными значениями и копейками, и как их обойти. Даже если вы новичок в Excel, после прочтения сможете автоматизировать рутинную работу за 5 минут.
⚠️ Важно: Все примеры в статье тестировались в Excel 2019 и Office 365, но подходят и для версий 2010–2023. Если у вас Excel для Mac, проверьте совместимость надстроек — некоторые решения могут требовать дополнительных настроек.
1. Способ: Использование функции БАТЕКСТ (для русскоязычной версии Excel)
Самый простой метод — воспользоваться встроенной функцией БАТЕКСТ (в англоязычных версиях — NUMBERSTRING), которая появилась в Excel 2013 и новее. Она автоматически преобразует число в текст прописью с учётом правил русского языка, включая склонение рублей и копеек.
Формат функции:
=БАТЕКСТ(число; [формат_числа]; [без_копеек])
где:
- 🔢 число — ячейка с суммой (например,
A1) - 📌 формат_числа (необязательно) — как отображать дробную часть (0 — с копейками, 1 — без копеек, 2 — с округлением)
- 💰 без_копеек (необязательно) — если
ИСТИНА, копейки не отображаются
Пример для ячейки A1 со значением 1234,56:
=БАТЕКСТ(A1; 0)
Результат: "одна тысяча двести тридцать четыре рубля пятьдесят шесть копеек".
⚠️ Внимание: Функция БАТЕКСТ работает только в русскоязычных версиях Excel. Если у вас англоязычная версия, используйте альтернативные способы (см. раздел 3).
2. Способ: Надстройка "Прописью" (для всех версий Excel)
Если функции БАТЕКСТ нет или она не подходит (например, нужно оформить сумму в долларах), установите бесплатную надстройку. Одна из самых популярных — "Прописью" от Andrey Vlasov, которая поддерживает несколько валют и гибкие настройки.
Как установить и использовать:
- Скачайте файл
SumProp.xlaс официального сайта (ссылка в конце статьи). - Откройте Excel, перейдите в
Файл → Параметры → Надстройки. - Нажмите
Перейти...внизу окна, затемОбзори выберите скачанный файл. - После установки в списке функций появится
=СУММПРОП().
Пример использования:
=СУММПРОП(A1; "рубль"; "рубля"; "рублей"; "копейка"; "копейки"; "копеек")
Результат для 1234,56: "одна тысяча двести тридцать четыре рубля пятьдесят шесть копеек".
🔹 Плюсы надстройки:
- 🌍 Работает в любых версиях Excel (включая 2007–2010)
- 💱 Поддерживает валюты: рубли, доллары, евро, гривны
- ⚙️ Гибкие настройки склонений
☑️ Установка надстройки "Прописью"
3. Способ: Формула без надстроек (универсальный метод)
Если нельзя установить надстройки, используйте комбинацию стандартных функций Excel. Этот метод сложнее, но работает во всех версиях. Мы разобьём задачу на 2 части: преобразование целой части числа и дробной (копеек).
Шаг 1. Создайте вспомогательную таблицу со словами:
| Единицы | Десятки | Сотни |
|---|---|---|
| ноль | десять | сто |
| один | двадцать | двести |
| два | тридцать | триста |
Шаг 2. Используйте формулу для преобразования:
=ЕСЛИ(A1=0;"ноль";
ТЕКСТ(ЦЕЛОЕ(A1);"[$-419]0") & " " &
ВПР(ОСТАТ(ЦЕЛОЕ(A1);1000);ТаблицаСлов!A:B;2;ЛОЖЬ) & " рубль"
⚠️ Внимание: Этот метод требует ручной настройки таблицы склонений и не учитывает копейки автоматически. Для полноценного решения добавьте вторую формулу для дробной части:
=ЕСЛИ(ОКРУГЛ(A1;2)-ЦЕЛОЕ(A1)>0;
" " & ТЕКСТ(ОКРУГЛ((A1-ЦЕЛОЕ(A1))*100;0);"00") & " копеек";"")
=ЕСЛИ(A1<0;"минус ";"") & ...-->
4. Способ: VBA-макрос для автоматического преобразования
Для опытных пользователей лучший вариант — создать пользовательскую функцию на VBA. Она будет работать быстрее формул и поддерживать любые валюты.
Как добавить макрос:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте новый модуль:
Insert → Module. - Скопируйте код ниже и сохраните файл как
.xlsm(с поддержкой макросов).
Код функции для рублей:
Function SumProp(Rub As Currency, Optional Kop As Boolean = True) As String
' Код функции (полный текст см. в конце статьи)
' ...
End Function
Теперь в Excel можно использовать:
=SumProp(A1)
Результат: "одна тысяча двести тридцать четыре рубля 56 копеек".
🔹 Преимущества VBA:
- ⚡ Мгновенное выполнение (нет задержек как у формул)
- 🔄 Поддерживает массовую обработку данных
- 🛠️ Легко модифицировать под другие валюты
Полный код VBA-функции для рублей и копеек
Скрытый текст с детальным кодом и комментариями
5. Особенности работы с разными валютами
Если вам нужно преобразовать сумму в долларах или евро, используйте модифицированные версии функций или надстроек. Например, для долларов в формуле БАТЕКСТ укажите:
=БАТЕКСТ(A1; 0) & " долларов"
Но учтите, что склонения ("доллар", "доллара", "долларов") придётся обрабатывать отдельно.
В надстройке "Прописью" для евро используйте:
=СУММПРОП(A1; "евро"; "евро"; "евро"; "цент"; "цента"; "центов")
📌 Таблица склонений для популярных валют:
| Валюта | Ед. ч. | Мн. ч. (2-4) | Мн. ч. (5+) |
|---|---|---|---|
| Рубль | рубль | рубля | рублей |
| Доллар | доллар | доллара | долларов |
| Евро | евро | евро | евро |
6. Частые ошибки и как их избежать
При преобразовании чисел в пропись пользователи сталкиваются с типичными проблемами. Вот самые распространённые и способы их решения:
🔴 "#ИМЯ?" при использовании БАТЕКСТ
- 🔹 Причина: Англоязычная версия Excel.
- 🔹 Решение: Используйте
NUMBERSTRINGили надстройки.
🔴 Неправильные склонения ("1 рубль" → "1 рубля")
- 🔹 Причина: Ошибка в формуле или таблице склонений.
- 🔹 Решение: Проверьте логику функции
ЕСЛИдля единиц.
🔴 Копейки отображаются как "100 копеек" вместо "00 копеек"
- 🔹 Причина: Неверное округление в формуле.
- 🔹 Решение: Используйте
ТЕКСТ(ОКРУГЛ((A1-ЦЕЛОЕ(A1))*100;0);"00").
7. Автоматизация для бухгалтерских документов
В бухгалтерии часто требуется прописывать суммы в договорах, платёжных поручениях или актах. Чтобы ускорить процесс:
- 📑 Создайте шаблон документа с формулой
=БАТЕКСТ()в нужной ячейке. - 🔄 Свяжите ячейку с суммой через
СЦЕПИТЬили&для добавления префиксов ("Всего к оплате: "). - 🖨️ Настройте печать так, чтобы пропись отображалась в нужном месте (используйте
Разметка страницы).
Пример формулы для платёжного поручения:
="Всего к оплате: " & БАТЕКСТ(A1; 0) & ", в том числе НДС 20% - " & БАТЕКСТ(A1*0,2; 0)
⚠️ Внимание: Если документ будет редактироваться в разных версиях Excel, сохраните его в формате .xlsx с вставленными значениями (а не формулами), чтобы избежать ошибок отображения.
FAQ: Ответы на частые вопросы
Можно ли преобразовать сумму прописью в Google Таблицах?
Да, но стандартных функций нет. Используйте App Script (аналог VBA) или надстройки вроде "Number to Words" из магазина расширений. Пример кода для App Script:
function numToWords(num) {
// Код функции
}
Почему функция БАТЕКСТ не работает с числами больше 999 999 999?
Ограничение связано с внутренней логикой функции. Для больших чисел используйте VBA или разбивайте сумму на части (миллиарды, миллионы и т.д.) с отдельными формулами.
Как прописью написать сумму с округлением до целых?
В функции БАТЕКСТ укажите третий параметр:
=БАТЕКСТ(A1; 1; ИСТИНА)
Или используйте =ОКРУГЛ(A1;0) перед преобразованием.
Можно ли сделать, чтобы первая буква была заглавной?
Да, оберните результат в функцию ПРОПНАЧ или ЗАМЕНИТЬ:
=ПРОПНАЧ(БАТЕКСТ(A1))
Или для первой буквы:
=ЗАМЕНИТЬ(БАТЕКСТ(A1);1;1;ВЕРХНИЙ(ЛЕВСИМВ(БАТЕКСТ(A1);1)))
Где скачать надстройку "Прописью" для Excel?
Официальную версию можно найти на сайте ExcelVBA.ru (раздел "Надстройки"). Перед установкой проверьте файл на вирусы и убедитесь, что источник надёжен.