Как перевести число в слова в Excel: от простых формул до VBA-скриптов

Введение: зачем переводить числа в слова в Excel

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

Типичные сценарии использования: формирование платёжных поручений, договоров, счетов-фактур, где суммы прописью являются обязательным реквизитом. Например, вместо "1 250,50 ₽" требуется указать "Одна тысяча двести пятьдесят рублей 50 копеек". Без специальных инструментов эта задача может занять часы ручной работы, особенно при обработке больших массивов данных.

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

Метод 1: Использование функции ЧИСЛОПРОПИСЬ (для русскоязычных версий Excel)

В локализованных версиях Excel для России и стран СНГ доступна встроенная функция ЧИСЛОПРОПИСЬ, которая автоматически преобразует числа в текстовый формат на русском языке. Эта функция поддерживает:

  • 💰 Валюты: рубли, доллары, евро (с указанием копеек/центов)
  • 📏 Дробные числа: до двух знаков после запятой
  • Отрицательные значения: с корректным отображением знака "минус"

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

=ЧИСЛОПРОПИСЬ(число; [формат_валютного_обозначения]; [указать_единица_измерения])

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

ФормулаРезультат
=ЧИСЛОПРОПИСЬ(1250,5)Одна тысяча двести пятьдесят рублей 50 копеек
=ЧИСЛОПРОПИСЬ(42; 0; "штука|штуки|штук")Сорок две штуки
=ЧИСЛОПРОПИСЬ(-300; 1)Минус триста долларов 00 центов
⚠️ Внимание: Функция ЧИСЛОПРОПИСЬ доступна только в Excel 2016 и новее для русскоязычных регионов. В английских версиях (Excel US) её аналога нет — потребуется использовать VBA или надстройки.
📊 Какую версию Excel вы используете?
Excel 2016 или новее
Excel 2013
Excel 2010
Другую версию

Метод 2: Надстройка "NumToText" для английских версий Excel

Если вы работаете с Excel на английском языке или ваша версия программы не поддерживает ЧИСЛОПРОПИСЬ, можно воспользоваться бесплатными надстройками. Одна из самых популярных — NumToText от Microsoft Apps. Она добавляет в ленту новую функцию =NumToText, которая работает с числами до 999 триллионов.

Как установить надстройку:

  1. Перейдите в Файл → Параметры → Надстройки.
  2. Внизу окна выберите Перейти... (Go).
  3. Нажмите Обзор и найдите скачанный файл NumToText.xlam.
  4. Активируйте надстройку и подтвердите установку.

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

=NumToText(A1; "RUB"; TRUE)

Где:

  • A1 — ячейка с числом;
  • "RUB" — код валюты (доступны USD, EUR, GBP);
  • TRUE — флаг для отображения копеек/центов.
⚠️ Внимание: Надстройки от сторонних разработчиков могут содержать вредоносный код. Скачивайте файлы только с официальных источников, например, Microsoft AppSource.

Метод 3: Ручное создание формулы без VBA (для чисел до 999 999)

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

Алгоритм:

  1. Создайте вспомогательную таблицу с названиями чисел (единицы, десятки, сотни).
  2. Используйте функции ЦЕЛОЕ и ОСТАТ для разбивки числа на разряды.
  3. Соберите результат с помощью СЦЕПИТЬ или ОБЪЕДИНИТЬ.

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

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

СЦЕПИТЬ(

ЕСЛИ(ЦЕЛОЕ(A1/100000)>0; ВЫБОР(ЦЕЛОЕ(A1/100000); "сто"; "двести"; ...); "");

" ";

... [продолжение для десятков тысяч, тысяч и т.д.]

)

)

Полную формулу с разбором всех разрядов можно скачать здесь (шаблон Excel).

Подробный разбор формулы для сотен

Для преобразования чисел от 100 до 999 используется конструкция: =ВЫБОР(ЦЕЛОЕ(A1/100); "сто"; "двести"; "триста"; "четыреста"; "пятьсот"; "шестьсот"; "семьсот"; "восемьсот"; "девятьсот")

Для десятков (20-90) — отдельный блок с ВЫБОР, а для 10-19 — специальные названия ("десять", "одиннадцать" и т.д.).

Метод 4: VBA-скрипт для универсального преобразования

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

Инструкция по добавлению функции:

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

Dim RUB As String, Kop As String, Temp As String

Dim DecimalPlace As Integer, Count As Integer

Dim Place(9) As String

Place(2) = " тысяча "

Place(3) = " миллион "

Place(4) = " миллиард "

Place(5) = " триллион "

' [далее идёт массив названий чисел и логика преобразования]

' ... (полный код доступен по ссылке ниже)

End Function

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

  • 📌 =NumToWords(1234.56) → "Одна тысяча двести тридцать четыре рубля пятьдесят шесть копеек"
  • 📌 =NumToWords(-1000) → "Минус одна тысяча рублей ноль копеек"
⚠️ Внимание: При использовании VBA в книгах с макросами (.xlsm) убедитесь, что уровень безопасности в Excel позволяет их выполнение. Для этого перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра... и выберите "Включить все макросы" (только для доверенных файлов!).

☑️ Подготовка к использованию VBA

Выполнено: 0 / 4

Метод 5: Онлайн-конвертеры и внешние сервисы

Если вам нужно одноразово преобразовать числа в слова или вы работаете с Excel Online, можно воспользоваться внешними сервисами. Популярные варианты:

  • 🌐 NumToWord.ru — поддерживает рубли, доллары, евро;
  • 🌐 Calculator.net — английские числа до 999 триллионов;
  • 🌐 PlanetCalc — кастомные форматы для российских валют.

Как импортировать результаты в Excel:

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

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

Распространённые ошибки и как их избежать

При преобразовании чисел в слова пользователи часто сталкиваются с типичными проблемами:

ОшибкаПричинаРешение
#ИМЯ? при использовании ЧИСЛОПРОПИСЬАнглоязычная версия ExcelИспользуйте VBA или надстройки
Неправильное склонение валют ("1 рубль" → "один рубля")Ошибка в логике функцииПроверьте параметры склонения в коде
Округление дробных чисел (123.456 → 123.46)Функция ограничена двумя знаками после запятойОкруглите число заранее с помощью ОКРУГЛ
Макросы не работают после сохраненияФайл сохранён как .xlsx вместо .xlsmИзмените формат файла

Чтобы минимизировать ошибки:

  • 🔍 Тестируйте формулы на небольших диапазонах данных.
  • 📊 Используйте условное форматирование для выделения ячеек с ошибками (#ИМЯ?, #ЗНАЧ!).
  • 🔄 Проверяйте результаты на крайних значениях (0, 1, 999 999, отрицательные числа).

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

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

Да, но потребуется модифицировать VBA-скрипт или использовать специализированные надстройки. Для украинского языка подойдёт функция ЧИСЛОПРОПИСЬ в локализованной версии Excel, для казахского — потребуется ручная правка массивов названий чисел в коде.

Как преобразовать даты в текст (например, "15 марта 2026 года")?

Для дат используйте функцию ТЕКСТ с кастомным форматом:

=ТЕКСТ(A1; "DD MMMM YYYY года")

Где A1 — ячейка с датой. Для полного названия месяля на русском языке убедитесь, что в настройках Excel выбран русский язык.

Почему функция ЧИСЛОПРОПИСЬ не работает с дробными числами?

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

=ЧИСЛОПРОПИСЬ(123,45; 1)

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

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

Да, если вы используете формулы (ЧИСЛОПРОПИСЬ, VBA-функции) или надстройки. При ручном вводе текста связь с исходным числом теряется. Для динамического обновления также можно использовать Power Query с кастомными скриптами.

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

В VBA-функции или формуле с ЧИСЛОПРОПИСЬ укажите единицы как третий параметр:

=ЧИСЛОПРОПИСЬ(42; 0; "килограмм|килограмма|килограммов")

Для английских версий Excel потребуется модифицировать код VBA, добавив массив склонений для новой единицы.