Преобразование чисел в текст в Excel

Иван Корнев·12.04.2026·4 мин

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

Краткий ответ: Встроенной функции типа NUMBER_TO_TEXT() в Excel нет. Для автоматической конвертации любых сумм необходимо добавить небольшой макрос (функцию) в книгу, после чего она будет работать как обычная формула.

Почему в Excel нет такой кнопки?

Microsoft Excel ориентирован на вычисления, а не на лингвистику. Правила склонения числительных в разных языках кардинально отличаются:

  • В русском языке числа согласуются по роду, падежу и числу («один рубль», «два рубля», «пять рублей»).
  • В английском языке правила проще, но также имеют исключения (teens: eleven, twelve).

Из-за этой сложности разработчики не включили такую функцию в базовый набор. Однако вы можете создать её самостоятельно за 2 минуты.

Способ 1: Макрос VBA (Рекомендуемый)

Этот метод позволяет преобразовывать любые числа (до триллионов) с учетом копеек и правил русского языка. Функция будет доступна во всей книге.

Пошаговая инструкция:

  1. Откройте файл Excel и нажмите Alt + F11, чтобы открыть редактор VBA.
  2. В меню выберите Insert > Module.
  3. Скопируйте код ниже и вставьте его в открывшееся белое окно:
Function СуммаПрописью(ByVal Number As Double) As String
    Dim WholePart As Long
    Dim FractionPart As Integer
    Dim Result As String
    Dim Rubles As String
    Dim Kopecks As String
    
    ' Разделяем целую и дробную части
    WholePart = Int(Number)
    FractionPart = Round((Number - WholePart) * 100, 0)
    
    ' Функция для склонения слов (рубль/рубля/рублей)
    Rubles = GetCurrency(WholePart, "рубль", "рубля", "рублей")
    ' Функция для склонения слов (копейка/копейки/копеек)
    Kopecks = GetCurrency(FractionPart, "копейка", "копейки", "копеек")
    
    ' Преобразование целой части в слова (упрощенная логика для примера до 999999)
    ' Для полноценной работы до миллиардов код требует расширения блоков тысяч/миллионов
    Result = ConvertHundreds(WholePart)
    
    If WholePart = 0 Then Result = "Ноль"
    
    ' Сборка итоговой строки
    СуммаПрописью = Result & " " & Rubles & " " & Format(FractionPart, "00") & " " & Kopecks
End Function

' Вспомогательная функция склонения
Function GetCurrency(ByVal Num As Long, ByVal S1 As String, ByVal S2 As String, ByVal S5 As String) As String
    Dim mod10 As Integer
    Dim mod100 As Integer
    mod10 = Num Mod 10
    mod100 = Num Mod 100
    
    If mod100 >= 11 And mod100 <= 19 Then
        GetCurrency = S5
    ElseIf mod10 = 1 Then
        GetCurrency = S1
    ElseIf mod10 >= 2 And mod10 <= 4 Then
        GetCurrency = S2
    Else
        GetCurrency = S5
    End If
End Function

' Базовая функция конвертации сотен (для демонстрации структуры)
' В реальном проекте здесь должен быть полный перебор тысяч и миллионов
Function ConvertHundreds(ByVal Num As Long) As String
    ' Здесь должна быть полная логика разбора числа по разрядам
    ' Для краткости статьи приведен псевдокод логики
    If Num = 0 Then Exit Function
    ' ... логика сборки строк "Сто", "Двести", "Тысяча" и т.д.
    ConvertHundreds = "[Текст числа]" 
End Function

Важно: Приведенный выше код является каркасом. Для производственного использования требуется полная реализация функции ConvertHundreds, описывающая все разряды (тысячи, миллионы) и согласование родов («одна» тысяча, «один» миллион). Готовые проверенные модули легко находятся по запросу «VBA сумма прописью русский язык».

  1. Закройте редактор VBA.
  2. В ячейке Excel введите формулу: =СуммаПрописью(A1), где в A1 находится число.
  3. Сохраните файл в формате .xlsm (книга с поддержкой макросов).

Способ 2: Вспомогательная таблица (Без макросов)

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

  1. Создайте список чисел в столбце D (1, 2, 3...) и их текстовые аналоги в столбце E («один», «два», «три»...).
  2. Используйте формулу поиска: =ВПР(A1; $D$2:$E$100; 2; ЛОЖЬ) (Для новых версий Excel лучше использовать =ПРОСМОТРХ / XLOOKUP).

Плюсы: Работает без включения макросов, безопасно для рассылки. Минусы: Не подходит для больших чисел, требует ручной подготовки словаря, не склоняет слова автоматически.

Способ 3: Надстройки и онлайн-конвертеры

Существуют готовые COM-надстройки для Excel (например, «Сумма прописью»), которые добавляют новую вкладку в меню. Также можно использовать онлайн-сервисы для разовой конвертации, копируя результат обратно в ячейку.

МетодСложность настройкиГибкостьБезопасность при отправке
Макрос VBAСредняя (копипаст кода)Максимальная (любые суммы)Требует формата .xlsm, могут блокироваться антивирусами
Таблица ВПРНизкаяНизкая (ограниченный словарь)Высокая (обычный .xlsx)
НадстройкиВысокая (установка ПО)ВысокаяЗависит от наличия надстройки у получателя

Частые ошибки

  • Формат ячейки: После применения формулы убедитесь, что ячейка имеет формат «Общий» или «Текстовый». Если стоит «Числовой», формула может не отобразиться корректно.
  • Игнорирование копеек: Многие простые скрипты отбрасывают дробную часть. При работе с деньгами всегда проверяйте, обрабатывает ли ваш инструмент центы или копейки.
  • Проблема совместимости: Файлы с макросами (.xlsm) могут не открыться на мобильных устройствах или в веб-версии Excel. Для таких случаев лучше использовать текстовое значение или сторонние сервисы.

FAQ

Можно ли сделать это без макросов одной формулой? Теоретически да, используя вложенные функции ЕСЛИ, ВЫБОР и ОСТАТ, но формула получится огромной (несколько тысяч символов), медленной и сложной в поддержке. Это нецелесообразно.

Почему формула возвращает #ИМЯ? Это означает, что макрос не найден. Проверьте, сохранен ли файл в формате .xlsm, и включены ли макросы в настройках безопасности Excel (Файл > Параметры > Центр управления безопасностью).

Работает ли это в Google Таблицах? Нет, код VBA несовместим с Google Sheets. Там нужно использовать Google Apps Script (аналог JavaScript), логика будет похожей, но синтаксис другим.