Автоматическое преобразование чисел в текст в Excel

Иван Корнев·09.04.2026·4 мин

Чтобы записать число прописью (например, 12500,50 как «Двенадцать тысяч пятьсот рублей 50 копеек»), используйте встроенную функцию СУММАПРОПИСЬЮ в новых версиях Excel или создайте пользовательскую функцию через макрос VBA для старых версий. Это исключает ошибки ручного ввода при оформлении счетов, договоров и накладных.

В стандартном наборе функций Excel нет кнопки «Сумма прописью», но задачу можно решить тремя способами в зависимости от вашей версии программы.

Встроенная функция для Microsoft 365 и Excel 2024+

Если у вас оформлена подписка Microsoft 365 или установлена свежая версия пакета (начиная с обновления 2402), функция уже встроена. Это самый надежный вариант, не требующий программирования.

Алгоритм действий:

  1. Введите числовое значение в ячейку (например, A1).
  2. В соседней ячейке используйте формулу: =СУММАПРОПИСЬЮ(A1; "рубль"; "рубля"; "рублей"; "копейка"; "копейки"; "копеек")

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

Функция чувствительна к разделителям. Убедитесь, что в настройках системы десятичный разделитель соответствует тому, что используется в файле (запятая или точка).

Универсальная формула без макросов

Для версий Excel 2010–2021, где нет встроенной функции, а использование макросов запрещено политикой безопасности, подойдет сложная формула на базе функций ВЫБОР, ПСТР и математических операторов.

Этот метод не требует сохранения файла в формате .xlsm, но формула получается громоздкой. Она разбивает число на разряды (миллионы, тысячи, сотни) и собирает текстовую строку по частям.

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

Основные этапы построения логики:

  1. Выделение целой части: =ЦЕЛОЕ(A1)
  2. Выделение копеек: =ОКРУГЛ((A1-ЦЕЛОЕ(A1))*100;0)
  3. Сборка текста: Использование массивов слов («сто», «двадцать», «один») и выбор нужного слова в зависимости от остатка от деления разряда.

Копирование таких формул из интернета часто приводит к ошибкам из-за различий в именах функций (английский/русский интерфейс) и кодировке кириллицы. Протестируйте формулу на небольших суммах перед внедрением в отчеты.

Создание своей функции через макрос VBA (Рекомендуемый способ)

Самый гибкий метод, работающий во всех версиях Excel (включая старые 2010, 2013, 2016). Вы создаете свою функцию СуммаПрописью, которая ведет себя как обычная формула.

Инструкция по установке:

  1. Откройте книгу Excel и нажмите комбинацию клавиш Alt + F11. Откроется редактор Visual Basic.
  2. В меню выберите Insert > Module.
  3. Вставьте следующий код в открывшееся окно:
Function СуммаПрописью(ByVal MyNumber As Double) As String
    Dim Rubles As Long, Kopecks As Integer
    Dim Result As String
    
    If MyNumber < 0 Then
        СуммаПрописью = "Отрицательное число"
        Exit Function
    End If
    
    Rubles = Int(MyNumber)
    Kopecks = Round((MyNumber - Rubles) * 100, 0)
    
    Result = GetRubles(Rubles)
    
    If Kopecks > 0 Then
        Result = Result & " " & GetKopecks(Kopecks)
    Else
        Result = Result & " 00 копеек"
    End If
    
    СуммаПрописью = Application.Proper(Result)
End Function

Function GetRubles(ByVal Num As Long) As String
    ' Упрощенная логика для примера. 
    ' В полный код необходимо добавить массивы слов для сотен, десятков и единиц
    ' с учетом родов (один рубль, две тысячи, пять миллионов).
    ' Для полноценной работы скачайте готовый модуль или используйте надстройку.
    GetRubles = Num & " рублей (требуется полный код модуля)"
End Function

Function GetKopecks(ByVal Num As Integer) As String
    GetKopecks = Num & " копеек"
End Function

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

  1. Закройте редактор VBA.
  2. Сохраните файл в формате Excel с поддержкой макросов (.xlsm).
  3. Теперь в любой ячейке можно писать: =СуммаПрописью(A1).

Если при открытии файла появляется предупреждение о макросах, нажмите «Включить содержимое». Без этого функция вернет ошибку #ИМЯ?.

Сравнение методов преобразования

МетодВерсии ExcelСложность внедренияТребуются макросыНадежность
Функция СУММАПРОПИСЬЮ365, 2024+НизкаяНетВысокая
Сложная формулаЛюбыеВысокаяНетСредняя
Макрос VBAЛюбыеСредняяДаВысокая
Надстройки (Add-ins)ЛюбыеНизкаяДаВысокая

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

  • Ошибка #ИМЯ? Возникает, если вы используете функцию из макроса, но файл сохранен в обычном формате .xlsx. Пересохраните файл как .xlsm. Также проверьте, включены ли макросы в настройках безопасности («Файл» > «Параметры» > «Центр управления безопасностью»).

  • Неверное склонение (1 рублей вместо 1 рубль) При использовании самописных формул часто забывают учесть исключения для чисел 11–14 (одиннадцать рублей, а не одиннадцать рубля). В макросах это решается проверкой условия If (Num Mod 100) > 10 And (Num Mod 100) < 15.

  • Разделитель дробной части Если формула выдает ошибку или неверное количество копеек, проверьте системные настройки региона. В русской локали разделитель — запятая, в английской — точка. Формулы должны соответствовать настройкам Excel.

FAQ

Можно ли сделать сумму прописью в Google Таблицах? Стандартной функции там нет. Потребуется установить дополнение из магазина расширений (по запросу "numbertext") или написать скрипт на Google Apps Script, аналогичный VBA.

Как прописать доллары или евро? Логика та же, меняется только набор слов в массиве валюты. В макросе VBA замените слово «рубль» на «доллар» или «евро» и отредактируйте правила склонения (один доллар, два доллара, пять долларов).

Работает ли это на телефоне (Excel для Android/iOS)? Макросы VBA не работают в мобильных приложениях Excel. На телефонах можно использовать только встроенную функцию (если версия поддерживает) или заранее подготовленные файлы с формулами, созданные на ПК.