Введение: зачем переводить числа в слова в 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 или надстройки.
Метод 2: Надстройка "NumToText" для английских версий Excel
Если вы работаете с Excel на английском языке или ваша версия программы не поддерживает ЧИСЛОПРОПИСЬ, можно воспользоваться бесплатными надстройками. Одна из самых популярных — NumToText от Microsoft Apps. Она добавляет в ленту новую функцию =NumToText, которая работает с числами до 999 триллионов.
Как установить надстройку:
- Перейдите в
Файл → Параметры → Надстройки. - Внизу окна выберите
Перейти...(Go). - Нажмите
Обзори найдите скачанный файлNumToText.xlam. - Активируйте надстройку и подтвердите установку.
Пример использования:
=NumToText(A1; "RUB"; TRUE)
Где:
A1— ячейка с числом;"RUB"— код валюты (доступныUSD,EUR,GBP);TRUE— флаг для отображения копеек/центов.
⚠️ Внимание: Надстройки от сторонних разработчиков могут содержать вредоносный код. Скачивайте файлы только с официальных источников, например, Microsoft AppSource.
Метод 3: Ручное создание формулы без VBA (для чисел до 999 999)
Если вам нужно преобразовать числа в пределах от 0 до 999 999 и вы не хотите использовать макросы, можно создать сложную формулу на основе функций ЕСЛИ, ВЫБОР и ТЕКСТ. Этот метод требует предварительной настройки, но работает во всех версиях Excel.
Алгоритм:
- Создайте вспомогательную таблицу с названиями чисел (единицы, десятки, сотни).
- Используйте функции
ЦЕЛОЕиОСТАТдля разбивки числа на разряды. - Соберите результат с помощью
СЦЕПИТЬилиОБЪЕДИНИТЬ.
Пример формулы для числа в ячейке A1:
=ЕСЛИ(A1=0;"ноль";
СЦЕПИТЬ(
ЕСЛИ(ЦЕЛОЕ(A1/100000)>0; ВЫБОР(ЦЕЛОЕ(A1/100000); "сто"; "двести"; ...); "");
" ";
... [продолжение для десятков тысяч, тысяч и т.д.]
)
)
Полную формулу с разбором всех разрядов можно скачать здесь (шаблон Excel).
Подробный разбор формулы для сотен
Для преобразования чисел от 100 до 999 используется конструкция:
=ВЫБОР(ЦЕЛОЕ(A1/100); "сто"; "двести"; "триста"; "четыреста"; "пятьсот"; "шестьсот"; "семьсот"; "восемьсот"; "девятьсот")
Для десятков (20-90) — отдельный блок с ВЫБОР, а для 10-19 — специальные названия ("десять", "одиннадцать" и т.д.).
Метод 4: VBA-скрипт для универсального преобразования
Наиболее гибкий способ — создание пользовательской функции на VBA. Этот метод работает во всех версиях Excel, поддерживает любые числа (включая дробные и отрицательные) и позволяет настраивать формат вывода.
Инструкция по добавлению функции:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - В меню выберите
Insert → Module. - Вставьте следующий код:
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
Метод 5: Онлайн-конвертеры и внешние сервисы
Если вам нужно одноразово преобразовать числа в слова или вы работаете с Excel Online, можно воспользоваться внешними сервисами. Популярные варианты:
- 🌐 NumToWord.ru — поддерживает рубли, доллары, евро;
- 🌐 Calculator.net — английские числа до 999 триллионов;
- 🌐 PlanetCalc — кастомные форматы для российских валют.
Как импортировать результаты в Excel:
- Скопируйте числа из Excel в буфер обмена.
- Вставьте их в поле на сайте-конвертере.
- Скопируйте полученный текстовый результат.
- В 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, добавив массив склонений для новой единицы.