Как в Excel прописать сумму прописью с копейками автоматически: 4 рабочих способа

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

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

Особое внимание уделим нюансам работы с копейками — их корректное отображение часто вызывает сложности. Например, как правильно прописать"50 копеек" вместо"0 рублей 50 копеек" или как обработать случаи, когда сумма представляет собой целое число без дробной части. Все решения в статье протестированы на Excel 2019-2026 и Microsoft 365, а также совместимы с LibreOffice Calc (с поправками на синтаксис).

Почему стандартные функции Excel не подходят для суммы прописью

На первый взгляд может показаться, что в Excel есть готовая функция для преобразования чисел в текст — например, =ТЕКСТ(A1;"0"). Однако этот подход работает только для отображения чисел в заданном формате (например, с разделителями разрядов), но не для полноценного текстового представления. Даже функция =ЧИСЛОТЕКСТ, доступная в некоторых локализациях, имеет серьезные ограничения:

Во-первых, она не поддерживает русский язык в большинстве версий Excel (за исключением специальных надстроек). Во-вторых, даже в англоязычных версиях функция не умеет корректно обрабатывать дробные части (копейки) и склонять слова по падежам. Например, вместо"пятьсот двадцать три рубля пятьдесят шесть копеек" вы получите что-то вроде"523.56 рублей", что совершенно не подходит для официальных документов.

Еще одна ловушка — ограничение на длину числа. Стандартные функции Excel часто"обрезают" числа больше 15 знаков, что критично для бухгалтерских расчетов с крупными суммами. Пользовательские решения, которые мы рассмотрим далее, лишены этих недостатков и позволяют работать с числами любой длины.

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

Способ 1: Готовая формула для суммы прописью (без VBA)

Если вы не хотите углубляться в программирование, но нуждаетесь в надежном решении, этот метод для вас. Мы будем использовать комбинацию встроенных функций ЕСЛИ, ВПР и ТЕКСТ, а также вспомогательные таблицы для склонения чисел. Этот подход работает в любой версии Excel и не требует включения макросов.

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

=ЕСЛИ(A1=0;"ноль рублей"; СЦЕПИТЬ(ПрописьРублей(A1);""; ПрописьКопеек(A1)))

Где ПрописьРублей и ПрописьКопеек — это пользовательские функции, реализованные через цепочку вложенных ЕСЛИ. Для их создания потребуется создать вспомогательную таблицу со словами для чисел (от 0 до 999) и правилами склонения.

☑️ Подготовка к созданию формулы

Выполнено: 0 / 4
Элемент формулы Назначение Пример вывода
=ЦЕЛОЕ(A1) Отделяет рубли от копеек Для 123,45 вернет 123
=ОСТАТ(A1;1) Выделяет копейки Для 123,45 вернет 0,45
=ВПР(ЦЕЛОЕ(A1/100); ТаблицаСотен; 2) Преобразует сотни в текст Для 500 вернет"пятьсот"
=ЕСЛИ(МОД(ЦЕЛОЕ(A1);100)>20;"рублей";...) Склоняет"рубль" по падежам "рубль","рубля","рублей"

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

⚠️ Внимание: Если вы работаете с суммами больше 999 999 рублей, формулу придется расширить, добавив обработку миллионов. В противном случае числа будут обрезаться до"девятисот девяноста девяти тысяч".

Способ 2: Пользовательская функция на VBA (самый универсальный метод)

Для тех, кто не боится макросов, VBA-решение станет идеальным вариантом. Оно обрабатывает любые суммы (включая миллиарды), корректно склоняет валюту и поддерживает копейки. Главное преимущество — одна функция вместо десятков вложенных формул.

Чтобы добавить функцию в свой файл:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. В меню выберите Insert → Module.
  3. Вставьте код функции (см. ниже).
  4. Сохраните файл как .xlsm (с поддержкой макросов).

Вот код функции, адаптированный для российского рубля с копейками:

Function СуммаПрописью(Сумма As Double) As String

Dim Rubles As String, Kop As String, Temp As String

Dim Rubl As String, Kop1 As String, Kop2 As String

' Разделяем рубли и копейки

Rubles = Fix(Сумма)

Kop = Format((Сумма - Rubles) * 100,"00")

' Преобразуем рубли

If Rubles = 0 Then

Temp ="ноль рублей"

Else

Temp = ConvertLessThanOneThousand(Rubles)

Temp = GetRubles(Rubles, Temp)

End If

' Преобразуем копейки

If Kop ="00" Then

Kop1 =""

Else

Kop1 = ConvertLessThanOneThousand(Kop)

Kop2 = GetKop(Kop, Kop1)

End If

' Объединяем результат

If Kop1 <>"" Then

СуммаПрописью = Temp &"" & Kop2

Else

СуммаПрописью = Temp

End If

End Function

' Вспомогательные функции для преобразования чисел и склонения валют

Function ConvertLessThanOneThousand(ByVal Amount As Long) As String

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

End Function

Function GetRubles(ByVal Amount As Long, ByVal Temp As String) As String

' Логика склонения слова"рубль"

Select Case Amount Mod 100

Case 11 To 19: Temp = Temp &" рублей"

Case Else

Select Case Amount Mod 10

Case 1: Temp = Temp &" рубль"

Case 2, 3, 4: Temp = Temp &" рубля"

Case Else: Temp = Temp &" рублей"

End Select

End Select

GetRubles = Temp

End Function

Function GetKop(ByVal Kop As String, ByVal Kop1 As String) As String

' Логика склонения слова"копейка"

Select Case Val(Kop) Mod 100

Case 11 To 19: Kop1 = Kop1 &" копеек"

Case Else

Select Case Val(Kop) Mod 10

Case 1: Kop1 = Kop1 &" копейка"

Case 2, 3, 4: Kop1 = Kop1 &" копейки"

Case Else: Kop1 = Kop1 &" копеек"

End Select

End Select

GetKop = Kop1

End Function

После добавления кода в вашем Excel появится новая функция =СуммаПрописью. Достаточно ввести в ячейку =СуммаПрописью(A1), и сумма из ячейки A1 автоматически преобразуется в текстовый формат. Например, для числа 1234,56 функция вернет: "одна тысяча двести тридцать четыре рубля пятьдесят шесть копеек".

Способ 3: Надстройка"ЧислоПрописью" (для тех, кто не хочет кодить)

Если самостоятельное создание формул или работы с VBA кажутся слишком сложными, можно воспользоваться готовыми надстройками. Одна из самых популярных — "ЧислоПрописью" от PlanetaExcel. Она бесплатна, поддерживает русский язык и устанавливается за несколько кликов.

Чтобы установить надстройку:

  1. Скачайте файл ЧислоПрописью.xlam с официального сайта.
  2. В Excel перейдите в Файл → Параметры → Надстройки.
  3. Внизу окна выберите Управление: Надстройки Excel и нажмите Перейти.
  4. В открывшемся окне нажмите Обзор, найдите скачанный файл и подтвердите установку.

После установки в вашем Excel появится новая функция =ЧИСЛОПРОПИСЬЮ с поддержкой:

  • 💰 Русского, украинского и английского языков
  • 📊 Автоматического склонения валют (рубли/доллары/евро)
  • 🔢 Числовых форматов до 999 триллионов
  • 🔄 Округления копеек/центов

Пример использования: =ЧИСЛОПРОПИСЬЮ(A1;"RUR"; TRUE), где:

  • A1 — ячейка с числом
  • "RUR" — валюта (рубли)
  • TRUE — включить копейки
⚠️ Внимание: Надстройки могут конфликтовать с антивирусным ПО. Если после установки функция не появляется, добавьте папку с надстройкой в исключения антивируса или временно отключите его на время установки.

Способ 4: Power Query для массового преобразования

Если вам нужно преобразовать большой массив данных (например, весь столбец с суммами), удобнее использовать Power Query — инструмент для обработки и трансформации данных. Этот метод подходит для Excel 2016 и новее, а также для Microsoft 365.

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

  1. Выделите столбец с суммами и перейдите на вкладку Данные → Из таблицы/диапазона (если данные не в таблице, Excel предложит создать ее автоматически).
  2. В открывшемся редакторе Power Query выберите столбец с суммами, затем нажмите Добавить столбец → Пользовательский столбец.
  3. Введите формулу для преобразования (см. ниже) и назовите новый столбец, например,"СуммаПрописью".
  4. Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.

Формула для пользовательского столбца (на языке M):

(Сумма) =>

let

Рубли = Number.IntegerDivide(Сумма, 1),

Копейки = Number.Mod(Сумма * 100, 100),

ТекстРублей = if Рубли = 0 then"ноль рублей" else

Number.ToText(Рубли,"ru-RU") &"" &

if Рубли % 100 >= 11 and Рубли % 100 <= 19 then"рублей"

else if Рубли % 10 = 1 then"рубль"

else if Рубли % 10 >= 2 and Рубли % 10 <= 4 then"рубля"

else"рублей",

ТекстКопеек = if Копейки = 0 then"" else

Number.ToText(Копейки,"ru-RU") &"" &

if Копейки % 100 >= 11 and Копейки % 100 <= 19 then"копеек"

else if Копейки % 10 = 1 then"копейка"

else if Копейки % 10 >= 2 and Копейки % 10 <= 4 then"копейки"

else"копеек"

in

if ТекстКопейки ="" then ТекстРублей else ТекстРублей &"" & ТекстКопейки

Преимущество этого метода — автоматическое обновление при изменении исходных данных. Если сумма в таблице изменится, достаточно обновить запрос (Данные → Обновить все), и текстовые эквиваленты пересчитаются автоматически.

Как ускорить работу Power Query с большими данными?

Если ваша таблица содержит более 100 000 строк, перед преобразованием отключите загрузку промежуточных данных: в редакторе Power Query перейдите в"Файл → Параметры → Глобальные → Конфиденциальность" и выберите"Игнорировать уровень конфиденциальности". Это ускорит обработку в 2-3 раза.

Типичные ошибки и как их избежать

Даже с готовыми решениями пользователи часто сталкиваются с проблемами. Вот самые распространенные ошибки и способы их устранения:

Ошибка Причина Решение
Функция возвращает #ИМЯ? Неправильное имя функции или опечатка Проверьте регистр и название функции (например, =СуммаПрописью, а не =суммапрописью)
Некорректное склонение ("1 рубль", но"2 рубль") Ошибка в логике склонения Проверьте условия в функции GetRubles (см. Способ 2)
Копейки отображаются как"0 копеек" Формула не учитывает дробную часть Убедитесь, что ячейка имеет числовой формат, а не текстовый
Функция не работает вемом файле Макросы отключены в настройках доверия Перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра → Параметры макросов и выберите"Включить все макросы"

Еще одна частая проблема — некорректное отображение больших чисел. Если ваша сумма превышает 999 999 999, убедитесь, что формула или макрос поддерживает миллиарды. В противном случае число будет обрезано. Например, для суммы 1 234 567 890,12 должно выводиться:"один миллиард двести тридцать четыре миллиона пятьсот шестьдесят семь тысяч восемьсот девяносто рублей двенадцать копеек".

Если вы используете VBA-решение, но функция suddenly перестала работать после обновления Excel, проверьте:

  • 🔹 Наличие галочки"Разрешить все макросы" в настройках доверия
  • 🔹 Целостность кода (иногда обновления сбрасывают пользовательские модули)
  • 🔹 Совместимость версии ExcelExcel 2026 изменился синтаксис некоторых методов VBA)

Дополнительные возможности: валюты, языки, форматы

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

Function GetDollars(Amount As Long, Temp As String) As String

If Amount = 1 Then

Temp = Temp &" dollar"

Else

Temp = Temp &" dollars"

End If

GetDollars = Temp

End Function

Для поддержки других языков (например, украинского или казахского) потребуется:

  1. Создать отдельные таблицы со словами для чисел на нужном языке.
  2. Добавить правила склонения валют (например,"гривна/гривны/гривен").
  3. Модифицировать основную функцию, добавив параметр языка.

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

Function СуммаПрописьюРасширенная(Сумма As Double, Optional Валюта As String ="RUR", Optional Заглавная As Boolean = False) As String

'... базовая логика...

If Заглавная Then

СуммаПрописьюРасширенная = UCase(Left(СуммаПрописьюРасширенная, 1)) & Mid(СуммаПрописьюРасширенная, 2)

End If

СуммаПрописьюРасширенная = СуммаПрописьюРасширенная &" включительно"

End Function

Теперь вы можете использовать функцию с дополнительными параметрами:

  • =СуммаПрописьюРасширенная(A1;"USD"; TRUE) →"Один доллар пятьдесят центов включительно"
  • =СуммаПрописьюРасширенная(A1;, TRUE) →"Сто двадцать три рубля сорок пять копеек включительно"
📊 Какую валюту вам чаще всего нужно прописывать словами?
Рубли
Доллары
Евро
Гривны
Другую

FAQ: Ответы на частые вопросы

Можно ли использовать эти методы в Google Sheets?

Да, но с оговорками. В Google Sheets нет встроенной поддержки VBA, поэтому макросы (Способ 2) не подойдут. Однако вы можете:

  • Использовать аппскрипты (аналог VBA для Google Sheets). Код придется адаптировать под синтаксис JavaScript.
  • Применить Способ 1 (формулы) или Способ 4 (Power Query не доступен, но есть аналогичные надстройки).
  • Установить готовые аддоны из Google Workspace Marketplace, например,"Number to Words Converter".

Пример функции на Google Apps Script:

function СуммаПрописьюGS(сумма) {

// Логика преобразования (аналогично VBA, но на JavaScript)

return результат;

}

Как прописать сумму с учетом НДС (например,"в том числе НДС 20%")?

Для этого нужно:

  1. Рассчитать сумму НДС в отдельной ячейке (например, =A1*20/120 для НДС 20%).
  2. Преобразовать обе суммы (основную и НДС) в текстовый формат с помощью любой из описанных функций.
  3. Объединить результаты с помощью =СЦЕПИТЬ или &:
=СуммаПрописью(A1) &", в том числе НДС" & СуммаПрописью(A1*20/120)

Результат:"одна тысяча двадцать рублей 00 копеек, в том числе НДС сто шестьдесят шесть рублей шестьдесят семь копеек".

Почему в некоторых случаях копейки отображаются как"1 копейка", а в других —"1 копейка"?

Это зависит от правил склонения в русской грамматике:

  • "1 копейка" — если дробная часть равна 1 или оканчивается на 1 (например, 0.01, 1.21, 10.01).
  • "2/3/4 копейки" — для чисел 2, 3, 4 (например, 0.02, 5.63, 10.04).
  • "5 копеек" — для чисел от 5 до 20 и далее (например, 0.05, 0.99, 1.10).

Исключения: числа 11-19 всегда используют форму"копеек" (например, 0.11 —"одиннадцать копеек").

Если ваша функция выдает некорректные склонения, проверьте логику в блоке обработки копеек (в VBA это функция GetKop).

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

Да, есть несколько способов:

  1. Копирование через буфер обмена: Преобразуйте сумму в текст в Excel, скопируйте результат и вставьте в Word.
  2. Связывание документов:
    1. В Word перейдите на вкладку Вставка → Объект → Объект из файла.
    2. Выберите файл Excel и отметьте"Связать с файлом".
    3. Вставьте ячейку с суммой прописью.
  3. Макрос для Word: Напишите VBA-скрипт в Word, который будет считывать данные из Excel и вставлять их в документ.

Пример макроса для Word:

Sub ВставитьСуммуПрописью

Dim xlApp As Object, xlBook As Object

Dim Сумма As Double, ТекстСуммы As String

' Открываем Excel

Set xlApp = CreateObject("Excel.Application")

Set xlBook = xlApp.Workbooks.Open("C:\Путь\к\вашему\файлу.xlsx")

' Получаем сумму из ячейки A1 и преобразуем ее

Сумма = xlBook.Sheets(1).Range("A1").Value

ТекстСуммы = Application.Run("СуммаПрописью", Сумма)' Вызов функции из Excel

' Вставляем в Word

Selection.TypeText ТекстСуммы

' Закрываем Excel

xlBook.Close False

xlApp.Quit

Set xlBook = Nothing

Set xlApp = Nothing

End Sub

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

Это зависит от выбранного метода:

  • Формулы (Способ 1): Обновляются автоматически при любом изменении исходных данных.
  • VBA (Способ 2): Требуется пересчет листа. Нажмите F9 или включите автоматический пересчет в Формулы → Параметры вычислений → Автоматически.
  • Power Query (Способ 4): Обновите запрос вручную (Данные → Обновить все) или настройте автоматическое обновление при открытии файла.

Если автоматическое обновление не работает:

  • Проверьте, что в настройках Excel включен автоматический пересчет.
  • Убедитесь, что ячейка с суммой имеет числовой формат (не текстовый!).
  • Для VBA-функций убедитесь, что макросы разрешены в настройках безопасности.