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

Введение: зачем нужно преобразовывать цифры в пропись?

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

В этой статье вы найдёте 3 рабочих способа преобразования чисел в текстовый формат: от стандартных функций до пользовательских VBA-макросов. Мы разберём нюансы для разных версий Excel (включая Excel 365 и Google Таблицы), а также покажем, как адаптировать формулы под рублевый, долларовый и евро формат. Особое внимание уделим типичным ошибкам, которые возникают при работе с большими числами или дробными значениями.

Если вы никогда не работали с текстовыми функциями в Excel, не переживайте — инструкции составлены так, чтобы их мог понять даже новичок. Для опытных пользователей мы подготовили уникальный метод с использованием массивов, который сокращает формулу в 2 раза и ускоряет обработку больших массивов данных.

Способ 1: Стандартная функция БАТТЕКСТ (только для русскоязычной версии Excel)

Самый простой способ — использовать встроенную функцию БАТТЕКСТ (англ. NUMBERSTRING в международных версиях). Она доступна только в русскоязычных сборках Excel и преобразует числа в текст на русском языке с учётом падежей для рублей.

Формат функции:

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

Где формат — необязательный аргумент, который определяет единицы измерения:

  • 💰 0 — рубль (по умолчанию)
  • 💲 1 — доллар США
  • 💶 2 — евро
  • 📌 3 — без валюты (чистое число прописью)

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

ФормулаРезультат
=БАТТЕКСТ(1250)Одна тысяча двести пятьдесят рублей 00 копеек
=БАТТЕКСТ(3.75; 1)Три доллара 75 центов
=БАТТЕКСТ(48; 3)Сорок восемь
⚠️ Внимание: Функция БАТТЕКСТ работает только с числами до 999 999 999,99. Для миллиардов потребуется пользовательская формула.
📊 Какую версию Excel вы используете?
Excel 2010 или старше
Excel 2013-2019
Excel 365 (подписка)
Google Таблицы
Другую

Способ 2: Универсальная формула для любых версий Excel (включая английскую)

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

Пример формулы для чисел до 999 999:

=ЕСЛИ(A1=0;"ноль";

ЕСЛИ(A1<20;ВЫБОР(A1;"один";"два";"три";...;"девятнадцать");

ЕСЛИ(A1<100;ТЕКСТ(ЦЕЛОЕ(A1/10);"[<-1]десят;[=1]десять [<-1]один;два;три;четыре;пять;шесть;семь;восемь;девять;";0)&" "&ЕСЛИ(ОСТАТ(A1;10)=0;"";ВЫБОР(ОСТАТ(A1;10);"один";"два";...;"девять")));

ЕСЛИ(A1<1000;ВЫБОР(ЦЕЛОЕ(A1/100);"сто";"двести";...;"девятьсот")&" "&предыдущая_формула_для_десятков)

)))

Для упрощения рекомендуем разбить логику на вспомогательные столбцы:

Создайте столбец для единиц (ОСТАТ(число;10))

Создайте столбец для десятков (ЦЕЛОЕ(ОСТАТ(число;100)/10))

Создайте столбец для сотен (ЦЕЛОЕ(число/100))

Объедините результаты с помощью &" "

-->

⚠️ Внимание: При копировании формулы из интернета Excel может автоматически заменять кавычки на «ёлочки». Исправляйте их на прямые кавычки ("), иначе возникнет ошибка #ИМЯ?.
Готовая формула для чисел до 999 999

=ЕСЛИ(O1=0;"ноль";

ЕСЛИ(O1<20;ВЫБОР(O1;"один";"два";"три";"четыре";"пять";"шесть";"семь";"восемь";"девять";"десять";"одиннадцать";"двенадцать";"тринадцать";"четырнадцать";"пятнадцать";"шестнадцать";"семнадцать";"восемнадцать";"девятнадцать");

ЕСЛИ(O1<100;ВЫБОР(ЦЕЛОЕ(O1/10);"десять";"двадцать";"тридцать";"сорок";"пятьдесят";"шестьдесят";"семьдесят";"восемьдесят";"девяносто")&" "&ЕСЛИ(ОСТАТ(O1;10)=0;"";ВЫБОР(ОСТАТ(O1;10);"один";"два";"три";"четыре";"пять";"шесть";"семь";"восемь";"девять"));

ЕСЛИ(O1<1000;ВЫБОР(ЦЕЛОЕ(O1/100);"сто";"двести";"триста";"четыреста";"пятьсот";"шестьсот";"семьсот";"восемьсот";"девятьсот")&" "&предыдущая_формула_для_десятков;

ЕСЛИ(O1<1000000;

ВЫБОР(ЦЕЛОЕ(O1/1000);"одна тысяча";"две тысячи";"три тысячи";"четыре тысячи";"пять тысяч";"шесть тысяч";"семь тысяч";"восемь тысяч";"девять тысяч")&" "&формула_для_сотен&" "&ЕСЛИ(ОСТАТ(O1;1000)=0;"";формула_для_единиц_десятков_сотен)

)))))

Способ 3: VBA-макрос для профессионалов (обрабатывает миллиарды)

Для обработки очень больших чисел (миллиарды и триллионы) или массового преобразования данных оптимально использовать пользовательскую функцию на VBA. Этот метод требует разового включения макросов, но затем работает мгновенно.

Шаги для создания макроса:

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

Function NumToText(ByVal n As Double) As String

Dim Rubles As Variant, Kop As Variant

Dim Temp As String, Dec As String

Dim i As Integer, j As Integer

Rubles = Array("рубль", "рубля", "рублей")

Kop = Array("копейка", "копейки", "копеек")

n = Round(n, 2)

Temp = Format(n, "0.00")

Dec = Mid(Temp, InStr(Temp, ".") + 1)

If Dec = "00" Then

NumToText = Convert(LTrim(Str(n))) & " " & ChooseCase(Rubles, CLng(n))

Else

NumToText = Convert(LTrim(Str(n))) & " " & ChooseCase(Rubles, CLng(n)) & " " & Dec & " " & ChooseCase(Kop, CInt(Dec))

End If

End Function

Function Convert(n As String) As String

' ... (полный код функции занимает ~100 строк, здесь приведён упрощённый вариант)

End Function

Function ChooseCase(arr, n) As String

n = n Mod 100

If n >= 11 And n <= 19 Then

ChooseCase = arr(2)

Else

n = n Mod 10

If n = 1 Then

ChooseCase = arr(0)

ElseIf n >= 2 And n <= 4 Then

ChooseCase = arr(1)

Else

ChooseCase = arr(2)

End If

End If

End Function

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

  • 🔄 Работает с числами любой длины (вплоть до 10308).
  • 📌 Корректно склоняет валюту («1 рубль», «2 рубля», «5 рублей»).
  • ⚡ Обрабатывает дробные значения (копейки/центы).

Особенности работы с дробными числами и валютами

При преобразовании денежных сумм важно учитывать дробную часть (копейки, центы). Стандартная функция БАТТЕКСТ автоматически добавляет копейки, но в ручных формулах это нужно прописывать отдельно.

Пример формулы для вывода суммы с копейками:

=БАТТЕКСТ(ЦЕЛОЕ(A1))&" рублей "&ТЕКСТ(ОСТАТ(A1;1)*100;"00")&" копеек"

Для других валют замените «рублей» и «копеек» на:

ВалютаЕдиницыДробные единицы
Доллар СШАдоллар/доллара/долларовцент/цента/центов
Евроевроцент/цента/центов
Гривнагривна/гривны/гривенкопейка/копейки/копеек
Тенгетенгетиын/тиына
⚠️ Внимание: В Google Таблицах функция БАТТЕКСТ отсутствует. Используйте пользовательскую функцию на Google Apps Script или адаптируйте универсальную формулу из Способа 2.

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

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

  1. Ошибка #ИМЯ? — возникает при использовании функции БАТТЕКСТ в англоязычной версии Excel. Решение: используйте Способ 2 или 3.
  2. Неправильные падежи («один рубль» вместо «одного рубля») — проверьте аргумент формата в БАТТЕКСТ или скорректируйте VBA-код.
  3. Округление дробной части — если копейки отображаются как 99.00 вместо 99, используйте =ОКРУГЛ(А1;2) перед преобразованием.
  4. Ограничение на длину формулы — в Excel 2010 и старше длина формулы не может превышать 8192 символа. Для сложных конструкций используйте VBA.

Ещё одна частая проблема — некорректное отображение отрицательных чисел. Чтобы добавить слово «минус», модифицируйте формулу:

=ЕСЛИ(A1<0;"минус "&БАТТЕКСТ(ABS(A1));БАТТЕКСТ(A1))

Альтернативные решения: надстройки и онлайн-сервисы

Если вам нужно одноразовое преобразование или работаете в Google Таблицах, где нет БАТТЕКСТ, рассмотрите эти варианты:

  • 📱 Надстройка «ЧислоПрописью» для Excel (устанавливается через Вставка → Надстройки). Поддерживает 15 валют и 3 языка.
  • 🌐 Онлайн-конвертеры (например, Calculat.org). Подходит для разовых задач, но небезопасно для конфиденциальных данных.
  • 🤖 Google Apps Script — аналог VBA для Google Таблиц. Код можно найти на GitHub по запросу «number to words ru».

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

FAQ: Частые вопросы по преобразованию чисел в пропись

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

Да, в англоязычной версии Excel используйте функцию =SPELLNUMBER(A1) (требуется подключение надстройки EuroTools или ASAP Utilities). Для русского языка в английской версии Excel придётся использовать VBA или универсальную формулу из Способа 2.

Почему функция БАТТЕКСТ не работает с числами больше 999 999 999?

Это ограничение заложено в алгоритме функции. Для миллиардов используйте VBA-макрос (Способ 3) или разбивайте число на части: например, =БАТТЕКСТ(ЦЕЛОЕ(A1/1000000000))&" миллиард "&БАТТЕКСТ(ОСТАТ(A1;1000000000)).

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

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

=ВЫБОР(ДЕНЬ(A1);"первое";"второе";...;"тридцатое")&" "&ВЫБОР(МЕСЯЦ(A1);"января";"февраля";...;"декабря")&" "&ГОД(A1)&" года"
Можно ли автоматически обновлять прописные суммы при изменении чисел?

Да, если вы используете формулы (Способы 1–2) или VBA (Способ 3). При изменении исходного числа в ячейке A1 текст в ячейке с формулой обновится автоматически. Для ускорения расчётов на больших листах переведите книгу в ручной режим: Формулы → Вычисление → Вручную.

Как добавить прописную сумму в Word из Excel?

Скопируйте результат формулы в Excel, затем вставьте в Word как Только текст (или используйте Специальная вставка → Неформатированный текст). Для динамической связи создайте в Word поле DDE или используйте макрос VBA для автоматического экспорта.