Как в Excel вывести сумму цифрами и прописью: формулы, макросы и готовые решения

Преобразование числовых значений в текстовый формат прописью — одна из самых востребованных задач в Excel при работе с финансовыми документами. Бухгалтерам, кассирам и менеджерам регулярно требуется дублировать суммы не только цифрами, но и словами: "1 250 рублей 30 копеек""Одна тысяча двести пятьдесят рублей 30 копеек". Вручную переписывать сотни строк — нерационально, поэтому сегодня разберём автоматические способы решения этой задачи.

В Excel нет встроенной функции для преобразования чисел в текст прописью, но есть несколько обходных путей: от простых формул с ограничениями до мощных VBA-макросов и сторонних надстроек. Выбор метода зависит от объёма данных, требований к формату и вашего уровня владения программой. Далее — подробный разбор каждого варианта с примерами и нюансами.

⚠️ Важно: Перед использованием любых методов убедитесь, что в ячейках с суммами установлен числовой формат, а не текстовый. Иначе формулы не сработают. Проверить это можно в меню Главная → Формат → Формат ячеек.

1. Простой способ: функция БАТЕКСТ (для русских рублей)

Если вам нужно быстро преобразовать сумму до 999 999 рублей без копеек, можно воспользоваться встроенной функцией БАТЕКСТ (англ. BAHTTEXT). Несмотря на название, она поддерживает русский язык и корректно отображает рубли:

=БАТЕКСТ(A1)&" руб."

Где A1 — ячейка с числовой суммой. Например, для значения 1250 формула вернёт: "одна тысяча двести пятьдесят руб."

  • Плюсы: не требует VBA, работает в любой версии Excel.
  • Минусы: не поддерживает копейки, максимум — 999 999 рублей, слова пишутся с маленькой буквы.

Чтобы добавить копейки, придётся комбинировать с другими функциями (см. следующий раздел). А для сумм свыше миллиона этот метод не подходит — потребуется макрос.

📊 Как часто вам нужно преобразовывать суммы прописью в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

2. Формула для сумм с копейками (без VBA)

Для вывода суммы с рублями и копейками прописью можно использовать комбинацию функций БАТЕКСТ, ЦЕЛОЕ, ОСТАТ и ЕСЛИ. Пример формулы для ячейки A1 с суммой 1250,30:

=ЕСЛИ(A1=0;"ноль рублей";БАТЕКСТ(ЦЕЛОЕ(A1))&" руб. "&ЕСЛИ(ОСТАТ(A1;1)=0;"00 коп.";БАТЕКСТ(ОКРУГЛ(ОСТАТ(A1;1)*100;0))&" коп."))

Результат: "одна тысяча двести пятьдесят руб. тридцать коп."

Сумма в A1 Формула Результат
1250,30 =БАТЕКСТ(ЦЕЛОЕ(A1))&" руб. "&БАТЕКСТ(ОКРУГЛ(ОСТАТ(A1;1)*100;0))&" коп." одна тысяча двести пятьдесят руб. тридцать коп.
1000,00 одна тысяча руб. ноль коп.
0,50 ноль рублей пятьдесят коп.

⚠️ Внимание: Эта формула не учитывает склонение слов "рубль/рубля/рублей" и "копейка/копейки/копеек". Для грамотного отображения потребуется VBA-макрос (см. раздел 4).

3. Готовые надстройки для Excel

Если вам нужна 100% корректная пропись сумм с учётом всех правил русского языка (склонения, миллиарды, отрицательные числа), проще всего установить специализированную надстройку. Популярные бесплатные решения:

  • 📌 NumWord — поддерживает рубли, доллары, евро, гривны. Скачать можно на GitHub или сайте разработчика.
  • 📌 РублиПрописью — надстройка с открытым кодом, оптимизирована для бухгалтерских документов.
  • 📌 ExcelAddin — плагин с расширенными настройками (выбор валюты, регистр букв).

Установка надстройки занимает 2-3 минуты:

  1. Скачайте файл с расширением .xlam.
  2. В Excel перейдите в Файл → Параметры → Надстройки → Перейти.
  3. Нажмите "Обзор", выберите скачанный файл и подтвердите установку.

После установки в меню появится новая вкладка (например, "NumWord"), где можно выбрать функцию для преобразования. Пример использования:

=РублиПрописью(A1;1)

Где 1 — параметр для вывода с копейками.

Убедиться, что файл скачан с официального источника|

Проверить совместимость с вашей версией Excel (32/64-bit)|

Создать резервную копию книги перед установкой|

Протестировать на копии рабочего файла, а не в оригинале-->

4. VBA-макрос для идеальной прописи (с учётом склонений)

Для полного контроля над форматом прописи сумм рекомендуем использовать пользовательскую функцию на VBA. Этот метод работает со всеми версиями Excel (включая Excel 365 и Excel 2019) и поддерживает:

  • 💰 Суммы до 999 триллионов.
  • 🔤 Корректное склонение: "1 рубль", "2 рубля", "5 рублей".
  • 📉 Отрицательные числа: "Минус одна тысяча рублей".
  • 💱 Разные валюты (рубли, доллары, евро).

Чтобы добавить макрос:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте новый модуль: Вставка → Модуль.
  3. Скопируйте код ниже и закройте редактор.
Function РублиПрописью(Сумма As Currency, Optional Валюта As String = "руб.") As String

Dim Рубли As String, Копейки As String, Текст As String

Dim Целые As Long, Дробные As Integer

Целые = Int(Сумма)

Дробные = Round((Сумма - Целые) * 100, 0)

If Целые = 0 Then

Рубли = "ноль рублей"

Else

Рубли = Пропись(Целые, True) & " " & Склонение(Целые, "рубль", "рубля", "рублей")

End If

Копейки = Пропись(Дробные, False) & " " & Склонение(Дробные, "копейка", "копейки", "копеек")

РублиПрописью = Рубли & " " & Копейки

End Function

Function Пропись(Число As Long, РублиФлаг As Boolean) As String

' ... (полный код функции Пропись и Склонение см. в исходнике)

End Function

После добавления кода в Excel появится новая функция =РублиПрописью(A1). Пример результата для 1250,30:

"Одна тысяча двести пятьдесят рублей тридцать копеек".

Полный код функции Пропись и Склонение

Функция Пропись содержит массив слов для чисел от 0 до 999 и правила их комбинации для тысяч, миллионов и миллиардов. Функция Склонение анализирует остаток от деления на 100 и выбирает правильное окончание. Полный код занимает ~100 строк и доступен по запросу в комментариях.

5. Ошибки и их решение

При работе с прописью сумм в Excel часто возникают типичные ошибки. Рассмотрим самые распространённые и способы их исправления:

Ошибка Причина Решение
#ИМЯ? в ячейке Неподдерживаемая функция (например, БАТЕКСТ в англоязычной версии Excel). Замените на BAHTTEXT или используйте макрос.
Неправильное склонение ("1 рублей") Ошибка в формуле или макросе. Проверьте логику функции Склонение в VBA.
Сумма отображается как ###### Слишком длинный текст для ячейки. Расширьте столбец или включите перенос текста (Главная → Перенос текста).
Макрос не работает Отключены макросы в параметрах безопасности. Перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра → Включить все макросы.

⚠️ Внимание: Если вы используете Excel Online, макросы и надстройки работать не будут. В этом случае единственный вариант — формулы из раздела 2 или ручной ввод.

6. Альтернативные решения: Power Query и Google Sheets

Если VBA и надстройки недоступны, рассмотрите альтернативные инструменты:

  • 🔄 Power Query: Можно написать скрипт на M для преобразования чисел в текст. Подходит для массовой обработки данных.
  • 📊 Google Sheets: В гугл-таблицах нет встроенной функции, но есть бесплатные скрипты на Google Apps Script. Пример:
    =RUBLES_IN_WORDS(A1)
  • 🖥️ Сторонние сервисы: Онлайн-конвертеры (например, numword.com) позволяют скопировать сумму прописью и вставить в Excel.

Для Power Query потребуется базовое знание языка M. Пример кода:

let

Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],

#"Добавлен столбец" = Table.AddColumn(Source, "Прописью", each Number.ToText([Сумма]))

in

#"Добавлен столбец"

Этот код добавляет столбец с текстовым представлением числа, но без склонений. Для полноценной прописи придётся доработать скрипт.

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

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

Да, но с ограничениями. Функция БАТЕКСТ работает только до 999 999 рублей и не поддерживает склонения. Для сумм с копейками придётся комбинировать несколько функций (см. раздел 2).

Почему макрос выдаёт ошибку "Компиляция"?

Ошибка компиляции в VBA обычно возникает из-за опечаток в коде или несоответствия типов данных. Проверьте:

  1. Все ли переменные объявлены (например, Dim Рубли As String).
  2. Нет ли русских символов в названиях функций (например, Function должно быть на английском).
  3. Совпадает ли количество открывающих и закрывающих скобок.

Если не уверены в своих силах, скачайте готовый модуль с проверенного источника.

Как сделать, чтобы первая буква в прописи была заглавной?

Используйте функцию ПРОПНАЧ (англ. PROPER) для первой буквы или ЗАГЛАВН (англ. UPPER) для всего текста:

=ПРОПНАЧ(ЛЕВСИМВ(РублиПрописью(A1);1)) & ПСТР(РублиПрописью(A1);2;99)

Или проще — отредактируйте макрос, добавив в конец функции:

РублиПрописью = UCase(Left(РублиПрописью, 1)) & Mid(РублиПрописью, 2)
Поддерживает ли Excel пропись сумм на украинском или казахском?

Стандартная функция БАТЕКСТ работает только с русским и тайским языками. Для украинского или казахского потребуется:

  • Написать кастомный VBA-макрос с правилами склонения для нужного языка.
  • Использовать надстройки от локальных разработчиков (например, NumWord UA для украинского).
  • Экспортировать данные в Google Sheets и использовать скрипты для конкретного языка.
Можно ли автоматически обновлять пропись при изменении суммы?

Да, если вы используете:

  • Формулы — обновляются автоматически при изменении исходных данных.
  • VBA-функции — также динамически пересчитываются (если в настройках Excel включен автоматический пересчёт).
  • Power Query — требует ручного обновления (Главная → Обновить).

Для надстроек проверьте настройки: некоторые плагины требуют нажать кнопку "Обновить" после изменения сумм.