Как в Excel написать число прописью: от базовых функций до автоматизации

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

Многие пользователи ошибочно считают, что для этой задачи обязательно нужны надстройки или знание программирования. На самом деле, даже начинающий может справиться с задачей, используя стандартные инструменты программы. В этой статье мы разберём 5 рабочих методов: от простейшего применения функции ЧИСЛТЕКСТ до создания собственных формул на VBA. Особое внимание уделим нюансам работы с валютами, дробными числами и локализацией (русский, украинский, казахский языки).

Если вам нужно не просто преобразовать число в текст, а ещё и учесть падежи (например, "одна тысяча рублей" vs "одной тысячей рублей"), или автоматически добавлять валюту — в статье найдутся решения и для этих задач. Также мы рассмотрим типичные ошибки, из-за которых Excel выдаёт некорректный результат (например, #ИМЯ? вместо текста), и как их избежать.

Прежде чем переходить к инструкциям, ответьте на вопрос: какой метод вам ближе?

📊 Какой способ преобразования чисел в текст вы предпочитаете?
Встроенные функции Excel
Надстройки (например, "ЧислоПрописью")
VBA-скрипты
Ручной ввод для важных документов
Не знаю, выберу после прочтения

1. Функция ЧИСЛТЕКСТ — базовый метод для русского языка

Самый простой способ преобразовать число в текст — использовать встроенную функцию =ЧИСЛТЕКСТ(). Она доступна в Excel 2013 и новее, а также в Excel Online. Функция поддерживает русский, английский и другие языки, но имеет ограничения: не работает с дробными числами (копейками) и не добавляет валюту автоматически.

Синтаксис функции:

=ЧИСЛТЕКСТ(число; [формат])

где:

  • 📌 число — ячейка с числом или само число (например, 1234,56).
  • 📌 [формат] — необязательный аргумент для указания языка. Для русского языка используйте 1 (по умолчанию) или "Р".

Примеры использования:

=ЧИСЛТЕКСТ(A1)        // "Одна тысяча двести тридцать четыре"

=ЧИСЛТЕКСТ(1234,56; "Р") // "Одна тысяча двести тридцать четыре целых пятьдесят шесть сотых"

Обратите внимание: функция не округляет дробные числа, а выводит их полностью ("пятьдесят шесть сотых" вместо "56 копеек"). Чтобы получить корректное отображение валют, придётся комбинировать ЧИСЛТЕКСТ с другими функциями (об этом — в следующем разделе).

2. Преобразование чисел с учётом валют (рубли/копейки)

Чтобы вывести сумму прописью с указанием валюты (например, "1234 рубля 56 копеек"), одной функции ЧИСЛТЕКСТ недостаточно. Нужно разделить число на целую и дробную части, а затем объединить результаты с текстом валюты. Для этого используем комбинацию функций:

=ЧИСЛТЕКСТ(ЦЕЛОЕ(A1);"Р") & " рубль " & ЧИСЛТЕКСТ((A1-ЦЕЛОЕ(A1))*100;"Р") & " копеек"

Однако этот метод имеет критическую ошибку: он не учитывает склонение слов ("рубль", "рубля", "рублей"). Чтобы исправить это, нужно добавить проверку остатка от деления. Полная формула:

=ЧИСЛТЕКСТ(ЦЕЛОЕ(A1);"Р") & " " &

ЕСЛИ(

МОД(ЦЕЛОЕ(A1);100)>10;

ЕСЛИ(МОД(ЦЕЛОЕ(A1);100)>20; "рублей"; "рублей");

ЕСЛИ(МОД(ЦЕЛОЕ(A1);10)=1; "рубль";

ЕСЛИ(МОД(ЦЕЛОЕ(A1);10)<5; "рубля"; "рублей")

)

) & " " &

ЧИСЛТЕКСТ(ОКРУГЛ((A1-ЦЕЛОЕ(A1))*100;0);"Р") & " копеек"

Эта формула корректно обрабатывает склонения для любых чисел:

  • 💰 1 рубль 50 копеек
  • 💰 2 рубля 50 копеек
  • 💰 5 рублей 50 копеек
  • 💰 21 рубль 50 копеек

Для других валют (доллары, евро, тенге) замените слова "рубль"/"копеек" на нужные и скорректируйте склонения.

Как упростить формулу для копеек?

Если вам не нужно выводить копейки (например, для целых сумм), используйте укороченный вариант:

=ЧИСЛТЕКСТ(ОКРУГЛ(A1;0);"Р") & " руб."

Это округлит число до целого и добавит сокращение "руб."

3. Надстройки для Excel: "ЧислоПрописью" и аналоги

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

  • 🔹 ЧислоПрописью — поддерживает рубли, доллары, евро, гривны, тенге, а также падежи (именительный, родительный, творительный).
  • 🔹 NumToText — надстройка с открытым исходным кодом, работает с 15+ валютами.
  • 🔹 RubCop — специализирована на российских рублях и копейках, учитывает все правила склонения.

Установка надстройки ЧислоПрописью:

  1. Скачайте файл .xlam с официального сайта (например, excel-vba.ru).
  2. Откройте Excel, перейдите в Файл → Параметры → Надстройки.
  3. Внизу окна выберите Перейти...Обзор и укажите путь к скачанному файлу.
  4. Поставьте галочку напротив надстройки и нажмите ОК.

После установки в Excel появится новая функция =ЧислоПрописью(). Пример использования:

=ЧислоПрописью(A1; 1; "рубль;рубля;рублей;копейка;копейки;копеек")

где:

  • 📌 A1 — ячейка с числом.
  • 📌 1 — режим вывода (1 — рубли, 2 — доллары, 3 — евро и т.д.).
  • 📌 Текст в кавычках — шаблон склонения для валют.

Преимущества надстроек:

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

Недостатки:

  • ❌ Требуется установка на каждый компьютер.
  • ❌ Может конфликтовать с другими надстройками.

Убедитесь, что Excel разблокировал макросы|Скачайте надстройку с официального источника|Проверьте совместимость с вашей версией Excel (32-bit или 64-bit)|Создайте резервную копию важных файлов-->

4. VBA-скрипты: гибкое решение для продвинутых пользователей

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

Как добавить функцию в Excel:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. В меню выберите Insert → Module.
  3. Скопируйте код ниже в открывшееся окно:
Function NumberToRubles(ByVal n As Double) As String

Dim rub As String, kop As String

Dim rublText As String, kopText As String

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

rub = Int(n)

kop = Round((n - rub) * 100, 0)

' Преобразуем рубли в текст

rublText = Application.WorksheetFunction.Text(rub, "[$-419]0")

rublText = Application.WorksheetFunction.BahtText(rub)

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

If kop > 0 Then

kopText = Application.WorksheetFunction.Text(kop, "[$-419]0")

kopText = " " & Application.WorksheetFunction.BahtText(kop) & " копеек"

Else

kopText = ""

End If

' Складываем результат

NumberToRubles = rublText & kopText

' Исправляем склонение для рублей

Dim lastDigit As Integer, lastTwoDigits As Integer

lastDigit = rub Mod 10

lastTwoDigits = rub Mod 100

If lastTwoDigits >= 11 And lastTwoDigits <= 19 Then

NumberToRubles = Replace(NumberToRubles, "руб.", "рублей")

Else

Select Case lastDigit

Case 1: NumberToRubles = Replace(NumberToRubles, "руб.", "рубль")

Case 2, 3, 4: NumberToRubles = Replace(NumberToRubles, "руб.", "рубля")

Case Else: NumberToRubles = Replace(NumberToRubles, "руб.", "рублей")

End Select

End If

End Function

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

=NumberToRubles(A1)

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

Важно: функция BahtText в VBA работает только на русскоязычных версиях Excel. Если у вас англоязычная версия, замените её на вызов ЧИСЛТЕКСТ через Application.WorksheetFunction.

Преимущества VBA-решения:

  • 🔧 Полный контроль над логикой преобразования.
  • 🔧 Возможность интеграции с другими макросами.
  • 🔧 Работает без подключения к интернету.

5. Онлайн-сервисы для преобразования чисел в текст

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

Популярные сервисы:

Сервис Поддержка валют Падежи Ограничения
Num2Word Рубли, доллары, евро, гривны Именительный, родительный Ограничение на количество запросов
Numerex 20+ валют Все падежи Реклама
Calculat.org Только рубли Именительный Нет API для Excel
PlanetCalc Рубли, доллары Именительный Медленная работа при больших числах

Как использовать онлайн-сервис в Excel:

  1. Скопируйте числа из Excel в буфер обмена.
  2. Вставьте их в поле на сайте сервиса.
  3. Скопируйте полученный текстовый результат.
  4. Вставьте его обратно в Excel как значения (через Специальная вставка).

⚠️

Внимание: Онлайн-сервисы не подходят для работы с конфиденциальными данными (например, суммами по счетам клиентов). Все введённые числа передаются на сторонние серверы.

6. Ручной ввод: когда автоматизация не подходит

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

  • 📄 Документы с юридической силой, где важна точная формулировка.
  • 📄 Нестандартные валюты (например, криптовалюты: "0.5 биткоина").
  • 📄 Тексты с дополнительными условиями (например, "не менее одной тысячи рублей").

В таких ситуациях лучше вводить числа прописью вручную. Чтобы ускорить процесс:

  1. Используйте ЧИСЛТЕКСТ как основу, а затем редактируйте результат.
  2. Создайте шаблоны для часто используемых фраз (например, "Сумма сделки составляет [вставить текст]").
  3. Применяйте Найти и заменить (Ctrl + H) для исправления типичных ошибок (например, замены "руб." на "рублей").

Пример ручного редактирования:

  1. Исходная формула: =ЧИСЛТЕКСТ(1500) → "Одна тысяча пятьсот".
  2. Ручная правка: "Сумма составляет одну тысячу пятьсот рублей 00 копеек".

⚠️

Внимание: При ручном вводе легко допустить ошибку в склонении или написании числа. Всегда перепроверяйте результат с помощью сервисов вроде Грамота.ру.

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

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

Ошибка Причина Решение
#ИМЯ? Функция ЧИСЛТЕКСТ не поддерживается в вашей версии Excel Обновите Excel или используйте VBA/надстройки
"Одна тысяча двести тридцать четыре целых ноль сотых" Функция выводит дробную часть как "ноль сотых" Используйте формулу с ЕСЛИ для скрытия нулевых копеек
"1234 руб." (без склонения) Формула не учитывает падежи Добавьте проверку остатка от деления (см. раздел 2)
Ошибка #ЗНАЧ! в VBA Некорректный тип данных (например, текст вместо числа) Проверьте формат ячейки (Числовой)
"Минус одна тысяча рублей" отображается как "Одна тысяча рублей" Функция игнорирует знак минус Добавьте проверку: =ЕСЛИ(A1<0; "Минус " & ЧИСЛТЕКСТ(ABS(A1)); ЧИСЛТЕКСТ(A1))

Ещё одна частая проблема — некорректное отображение больших чисел (например, "один миллион двести три тысячи" вместо "один миллион двести три тысячи"). Это происходит из-за ошибок в логике склонения. Чтобы избежать таких ошибок:

  • 🔍 Тестируйте формулы на числах разной величины (1, 999, 1000, 1001, 1000000).
  • 🔍 Используйте надстройки с открытым исходным кодом (можно проверить логику).

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

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

Да, но стандартная функция ЧИСЛТЕКСТ поддерживает только русский и английский. Для украинского или казахского нужно:

  1. Использовать надстройки (например, NumToText с поддержкой мног языков).
  2. Написать VBA-функцию с правилами склонения для нужного языка.
  3. Вручную редактировать результат ЧИСЛТЕКСТ (заменить "рублей" на "гривен"/"тенге").
Как сделать, чтобы сумма прописью начиналась с заглавной буквы?

Используйте функцию ПРОПНАЧ или ЗАГЛАВНЫЕ:

=ПРОПНАЧ(ЧИСЛТЕКСТ(A1))  // "Одна тысяча двадцать три"

=ЗАГЛАВНЫЕ(ЛЕВСИМВ(ЧИСЛТЕКСТ(A1))) & ПСТР(ЧИСЛТЕКСТ(A1);2;99) // "Одна тысяча двадцать три"

Для VBA добавьте строку NumberToRubles = UCase(Left(NumberToRubles, 1)) & Mid(NumberToRubles, 2) в конец функции.

Почему после копирования формулы в другую ячейку результат становится неверным?

Скорее всего, в формуле используются относительные ссылки (например, A1 вместо $A$1). Исправьте ссылки на абсолютные:

=ЧИСЛТЕКСТ($A$1)  // Фиксированная ссылка на ячейку A1

Также проверьте, не изменился ли формат ячейки (например, с Числовой на Текстовый).

Можно ли преобразовать число в текст в Google Таблицах?

В Google Sheets нет функции ЧИСЛТЕКСТ, но есть альтернативы:

  1. Используйте =RUB(1234) для рублей (только целые числа).
  2. Установите надстройку Number to Words из Google Workspace Marketplace.
  3. Напишите кастомную функцию на Google Apps Script:
function NumberToRubles(number) {

return Utilities.formatString(

"%s руб.%s коп.",

numToText(Math.floor(number)),

numToText(Math.round((number - Math.floor(number)) * 100))

);

}

Как преобразовать дату в текст (например, "первое января")?

Для преобразования дат используйте комбинацию функций ДЕНЬ, МЕСЯЦ, ГОД и ВЫБОР:

=ВЫБОР(ДЕНЬ(A1);

"первое", "второе", "третье", "четвёртое", "пятое",

"шестое", "седьмое", "восьмое", "девятое", "десятое",

... // продолжение для всех дней

) & " " &

ВЫБОР(МЕСЯЦ(A1);

"января", "февраля", "марта", ..., "декабря"

) & " " &

ЧИСЛТЕКСТ(ГОД(A1)) & " года"

Для упрощения можно создать таблицу соответствий дней/месяцев и использовать ПОИСКПОЗ.