Перейти к содержимому

Преобразование чисел в слова в Excel – исчерпывающее руководство

Author: Xiaoyang Last Modified: 2025-08-07

Преобразование чисел в письменные слова часто требуется для финансовых отчетов, юридических документов, счетов или чеков. Хотя Excel не предлагает этой функциональности из коробки, существует несколько надежных способов ее достижения: от встроенных функций Microsoft 365 до пользовательских функций VBA и мощных сторонних надстроек. Это исчерпывающее руководство проведет вас через каждый метод, выделяя их преимущества и ограничения, и поможет выбрать лучший подход для ваших конкретных потребностей.

A screenshot showing converting numbers to words in Excel

Методы преобразования чисел в слова в Excel

В этом разделе представлены три эффективных метода преобразования числовых значений валют в слова в Excel. Выберите тот, который лучше всего подходит для вашей версии Excel и вашего случая использования.


Метод 1: Использование новых встроенных функций (только Microsoft 365)

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

Как показано на скриншоте ниже, чтобы преобразовать числовые значения валют из диапазона A2:A5 в слова, можно применить следующую формулу.

  1. Выберите пустую ячейку (например, B2), введите формулу ниже.
    =ПРОПИСН(ЗАМЕНИТЬ(ЗАМЕНИТЬ(СТРОЧН(ПЕРЕВОД(BAHTTEXT(B9),"th","en")),"baht","dollars"),"satang","cents"))
  2. Нажмите «Enter» и протяните маркер заполнения вниз, чтобы применить к другим строкам.
    A screenshot showing how to use the new function to convert numbers to words

Как работает эта формула:

  • BAHTTEXT: Преобразует число в текст тайской валюты бат (например, “один бат”).
  • TRANSLATE(...,"th","en"): Переводит текст с одного языка на другой (требуется Microsoft 365). В данном случае переводится с тайского на английский.
  • СТРОЧН(): Приводит всю строку к нижнему регистру для согласованности.
  • ЗАМЕНИТЬ(): Заменяет названия валют, такие как "baht" и "satang", на нужные термины.
  • ПРОПИСН(): Ставит заглавную букву в начале каждого слова для правильного форматирования.

Адаптация для других валют:

Указанная выше формула выводит результат в долларах США. Её можно настроить для других валют, заменив основные и младшие единицы.

  • Замените "dollars" на основную единицу целевой валюты, например, "pounds" для британского фунта.
  • Замените "cents" на младшую единицу, например, "pence" для британского фунта.

В следующей таблице перечислены совместимые валюты и соответствующие формулы, которые вы можете использовать:

ВалютаЗамена основной единицыЗамена младшей единицыПример формулы (предполагая, что значение находится в ячейке A2)
USD dollars cents =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","dollars"),"satang","cents"))
GBP pounds pence =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","pounds"),"satang","pence"))
EUR euros cents =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","euros"),"satang","cents"))
MYR ringgit sen =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","ringgit"),"satang","sen"))

Ограничения этого метода:

  • Работает только в Excel для Microsoft 365 (из-за функции TRANSLATE()).
  • Результат сильно зависит от точности форматирования BAHTTEXT().
  • Этот метод подходит для валют, таких как тайский бат, имеющих основную единицу и дробную часть (например, доллары и центы). Не рекомендуется для валют, которые не имеют аналогичной структуры.

Метод 2: Использование пользовательской функции VBA

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

Шаг 1: Вставка кода VBA

  1. Откройте лист, где вы хотите использовать эту функцию.
  2. Нажмите «Alt» + «F11», чтобы открыть окно «Microsoft Visual Basic for Applications».
  3. В редакторе нажмите «Вставить» > «Модуль», затем вставьте следующий код VBA.
    Function SpellNumberToEnglish(ByVal pNumber)
    'Update by Extendoffice
    Dim Dollars, Cents
    arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
    pNumber = Trim(Str(pNumber))
    xDecimal = InStr(pNumber, ".")
    If xDecimal > 0 Then
        Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2))
        pNumber = Trim(Left(pNumber, xDecimal - 1))
    End If
    xIndex = 1
    Do While pNumber <> ""
        xHundred = ""
        xValue = Right(pNumber, 3)
        If Val(xValue) <> 0 Then
            xValue = Right("000" & xValue, 3)
            If Mid(xValue, 1, 1) <> "0" Then
                xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred "
            End If
            If Mid(xValue, 2, 1) <> "0" Then
                xHundred = xHundred & GetTens(Mid(xValue, 2))
            Else
                xHundred = xHundred & GetDigit(Mid(xValue, 3))
            End If
        End If
        If xHundred <> "" Then
            Dollars = xHundred & arr(xIndex) & Dollars
        End If
        If Len(pNumber) > 3 Then
            pNumber = Left(pNumber, Len(pNumber) - 3)
        Else
            pNumber = ""
        End If
        xIndex = xIndex + 1
    Loop
    Select Case Dollars
        Case ""
            Dollars = "No Dollars"
        Case "One"
            Dollars = "One Dollar"
        Case Else
            Dollars = Dollars & " Dollars"
    End Select
    Select Case Cents
        Case ""
            Cents = " and No Cents"
        Case "One"
            Cents = " and One Cent"
        Case Else
            Cents = " and " & Cents & " Cents"
    End Select
    SpellNumberToEnglish = Dollars & Cents
    End Function
    Function GetTens(pTens)
    Dim Result As String
    Result = ""
    If Val(Left(pTens, 1)) = 1 Then
        Select Case Val(pTens)
            Case 10: Result = "Ten"
            Case 11: Result = "Eleven"
            Case 12: Result = "Twelve"
            Case 13: Result = "Thirteen"
            Case 14: Result = "Fourteen"
            Case 15: Result = "Fifteen"
            Case 16: Result = "Sixteen"
            Case 17: Result = "Seventeen"
            Case 18: Result = "Eighteen"
            Case 19: Result = "Nineteen"
            Case Else
        End Select
    Else
    Select Case Val(Left(pTens, 1))
        Case 2: Result = "Twenty "
        Case 3: Result = "Thirty "
        Case 4: Result = "Forty "
        Case 5: Result = "Fifty "
        Case 6: Result = "Sixty "
        Case 7: Result = "Seventy "
        Case 8: Result = "Eighty "
        Case 9: Result = "Ninety "
        Case Else
    End Select
    Result = Result & GetDigit(Right(pTens, 1))
    End If
    GetTens = Result
    End Function
    Function GetDigit(pDigit)
    Select Case Val(pDigit)
        Case 1: GetDigit = "One"
        Case 2: GetDigit = "Two"
        Case 3: GetDigit = "Three"
        Case 4: GetDigit = "Four"
        Case 5: GetDigit = "Five"
        Case 6: GetDigit = "Six"
        Case 7: GetDigit = "Seven"
        Case 8: GetDigit = "Eight"
        Case 9: GetDigit = "Nine"
        Case Else: GetDigit = ""
    End Select
    End Function
    A screenshot showing the code editor
  4. Нажмите «Alt» + «Q», чтобы вернуться к листу.

Шаг 2: Применение функции

  1. В ячейке введите следующую формулу и нажмите «Enter».
    =SpellNumberToEnglish(A2)
  2. Затем протяните маркер заполнения, чтобы применить к другим строкам по необходимости. Теперь ваши числа будут преобразованы в слова, например:
    A screenshot showing the user-defined function and the results

Адаптация для других валют:

Функция выводит значения в формате “Dollar(s)” и “Cent(s)”, что жестко задано только для USD. Если вы хотите конвертировать числа в другие валюты, например, в «Британский Фунт», необходимо вручную изменить основные и младшие единицы в указанных строках кода.

A screenshot showing how to change the codes to adapt for other currencies

Сохранение книги как файла с поддержкой макросов

По умолчанию функции VBA не сохраняются, если книга не сохранена как книга с поддержкой макросов:

  1. Нажмите «Ctrl» + «S», чтобы сохранить.
  2. И выберите кнопку «Go back» в появившемся сообщении о макросах.
    Примечание: Если в появившемся окне есть только варианты «Да», «Нет» и «Помощь», нажмите «Нет».
    A screenshot showing how to change the codes to adapt for other currencies
  3. В окне «Сохранить как».
    1. Выберите место сохранения.
    2. Выберите «Книга Excel с поддержкой макросов (*.xlsm)» в выпадающем списке «Сохранить как тип».
    3. Нажмите «Сохранить».
      A screenshot showing how to change the codes to adapt for other currencies

Ограничения функции VBA SpellNumberToEnglish

Нет поддержки нескольких языков
  • Эта функция генерирует результаты только на английском языке.
  • Она не поддерживает другие языки (например, французский, немецкий), а также не обрабатывает структуры валют, где единица валюты стоит перед числом (например, «Rupees One Hundred» в индийском английском).
Не сохраняется в стандартных файлах Excel
  • Если вы не сохраните книгу как книгу с поддержкой макросов (.xlsm), функция будет потеряна при закрытии Excel.
  • Если сохранить как обычный файл .xlsx, весь код VBA будет удален.
Предупреждение о безопасности макросов при обмене
  • Отправка файла с поддержкой макроса другим пользователям вызовет предупреждение «Security Warning – Macros have been disabled» при открытии.
  • Некоторые пользователи могут колебаться включать макросы из-за опасений потенциальных рисков безопасности и могут решить не использовать файл.
Требуются знания VBA для настройки
  • Любые изменения в терминах валюты или форматировании требуют ручного редактирования кода VBA.
  • Не идеально для пользователей, не знакомых с макросами или скриптами.

Метод 3: Использование Kutools для Excel (без формул или VBA)

Если вы установите «Kutools для Excel», вы можете использовать его функцию «Numbers to Words» для преобразования чисел в английский язык (валюту или простые слова), десятки других языков и валют, таких как EUR, GBP, JPY и т.д.

Если вы ищете решение без кода, удобное для пользователя и универсальное для преобразования чисел в слова в Excel, Kutools для Excel предлагает специальную функцию «Numbers to Words», которая поддерживает:

  • Английский (USD, GBP, EUR и т.д.)
  • Десятки других языков и валют (например, японская йена, индийская рупия, китайский юань)
  • Формат валюты или простые слова (например, «One Hundred Twenty-Three» вместо «One Hundred Twenty-Three Dollars»)

Шаги для использования:

  1. Выберите ячейки, содержащие числа, которые вы хотите преобразовать.
  2. Выберите «Kutools» > «Текст» > «Numbers to Words».
  3. В диалоговом окне «Numbers to Currency Word» вам нужно:
    1. Выбрать предпочитаемый язык и стиль валюты (например, английский – США для USD)
    2. Нажмите «OK».
      A screenshot showing the numbers to currency word dialog box

Опционально: отметьте «Not converted to currency», если вы хотите простые английские слова (без «dollars» или «cents»).

Теперь выбранные числа будут преобразованы в соответствующие валютные слова в зависимости от ваших настроек.

Kutools для Excel - Усильте Excel более чем 300 необходимыми инструментами. Наслаждайтесь постоянно бесплатными функциями ИИ! Получите прямо сейчас


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

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

«One hundred twenty-three dollars and forty-five cents»

и вы хотите преобразовать их в фактические числа в Excel (например, 123.45), вы можете использовать пользовательскую функцию VBA User Defined Function (UDF) следующим образом.

Шаг 1: Откройте редактор VBA и вставьте код VBA

  1. Откройте вашу рабочую книгу Excel.
  2. Нажмите «Alt» + «F11», чтобы открыть редактор «Microsoft Visual Basic for Applications (VBA)».
  3. В редакторе VBA нажмите «Insert» > «Module».
  4. Скопируйте и вставьте следующий код VBA в пустое окно модуля:
    Function WordsToNumber(ByVal Txt As String) As Double
    'Updated by Extendoffice
        Dim x As Object: Set x = CreateObject("Scripting.Dictionary")
        Dim units, tens, specials
        Dim part As String, parts() As String
        Dim total As Double, partial As Double, multiplier As Double
        Dim i As Long, word As String
        
        Txt = LCase(Trim(Txt))
        Txt = Replace(Txt, ",", "")
        Txt = Replace(Txt, "-", " ")
        Txt = Replace(Txt, " and ", " ")
        Txt = Replace(Txt, "  ", " ")
        
        ' Setup basic number words
        x.Add "zero", 0: x.Add "one", 1: x.Add "two", 2: x.Add "three", 3
        x.Add "four", 4: x.Add "five", 5: x.Add "six", 6: x.Add "seven", 7
        x.Add "eight", 8: x.Add "nine", 9: x.Add "ten", 10: x.Add "eleven", 11
        x.Add "twelve", 12: x.Add "thirteen", 13: x.Add "fourteen", 14
        x.Add "fifteen", 15: x.Add "sixteen", 16: x.Add "seventeen", 17
        x.Add "eighteen", 18: x.Add "nineteen", 19: x.Add "twenty", 20
        x.Add "thirty", 30: x.Add "forty", 40: x.Add "fifty", 50
        x.Add "sixty", 60: x.Add "seventy", 70: x.Add "eighty", 80
        x.Add "ninety", 90: x.Add "hundred", 100: x.Add "thousand", 1000
        x.Add "million", 1000000: x.Add "billion", 1000000000
        
        Dim dollarPart As String, centPart As String
        Dim dollarValue As Double, centValue As Double
        
        ' Split into dollars and cents
        If InStr(Txt, "dollar") > 0 Then
            dollarPart = Trim(Split(Txt, "dollar")(0))
        End If
        If InStr(Txt, "cent") > 0 Then
            centPart = Trim(Split(Txt, "cent")(0))
            If InStr(centPart, "dollar") > 0 Then
                centPart = Trim(Split(centPart, "dollar")(1))
            End If
        End If
        
        dollarValue = ParseWordsToNumber(dollarPart, x)
        centValue = ParseWordsToNumber(centPart, x)
        
        WordsToNumber = dollarValue + centValue / 100
    End Function
    
    Private Function ParseWordsToNumber(ByVal Txt As String, x As Object) As Double
        Dim parts() As String: parts = Split(Txt, " ")
        Dim total As Double, current As Double
        Dim i As Long, val As Double
        
        For i = 0 To UBound(parts)
            If x.exists(parts(i)) Then
                val = x(parts(i))
                Select Case val
                    Case 100
                        If current = 0 Then current = 1
                        current = current * val
                    Case Is >= 1000
                        If current = 0 Then current = 1
                        total = total + current * val
                        current = 0
                    Case Else
                        current = current + val
                End Select
            End If
        Next i
        
        total = total + current
        ParseWordsToNumber = total
    End Function

Шаг 2: Применение функции в вашем листе

  1. Нажмите «Alt» + «Q», чтобы вернуться в Excel.
  2. В любой пустой ячейке введите эту формулу и нажмите «Enter». Протяните маркер заполнения вниз, чтобы получить остальные результаты.
    =WordsToNumber(A2)
    A screenshot showing how to convert words to numbers

Заключение

Преобразование чисел в слова — или слов обратно в числа — это не то, что Excel предлагает нативно, но данное руководство показало, что существует множество практических решений в зависимости от ваших потребностей:

  • Пользователи Microsoft 365 могут воспользоваться современными встроенными функциями, такими как TRANSLATE, для преобразования числовых значений валют в английские слова с помощью формул, особенно для валют, следующих структуре «основная + дробная единица».
  • Пользовательские функции VBA предлагают большую гибкость для преобразования чисел в слова и обратного преобразования слов валют обратно в числовые значения. Однако они сопровождаются проблемами безопасности, связанными с макросами, и лучше всего подходят для пользователей, знакомых с кодированием.
  • Kutools для Excel предоставляет самый простой, многоязычный и функционально богатый вариант — без необходимости в формулах или кодировании и с поддержкой десятков валют и языков.
  • Если вам нужно преобразовать слова обратно в числа, решение VBA эффективно решает эту задачу, хотя может потребоваться очистка (например, удаление запятых) для получения точных результатов.

Независимо от того, готовите ли вы финансовые документы, автоматизируете печать чеков или просто улучшаете представление данных, выбор правильного метода помогает достичь профессиональных и точных результатов.


Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Переворот в анализе данных на основе: Интеллектуальное выполнение   |  Сгенерировать код  |  Создать Пользовательские Формулы  |  Анализ данных и генерация диаграмм  |  Вызов Kutools Functions
Популярные функции: Найти, выделить или отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячейки без потери данных   |   Округлить...
Супер ПОИСК: VLookup с несколькими критериями    VLookup с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (Auto Text)   |  Выбор даты   |  Объединить данные   |  Шифрование/Расшифровка ячеек    Отправить письмо по списку   |  Супер фильтр   |   Специальный фильтр (фильтр по жирному/курсиву/зачеркиванию...) ...
Топ–15 наборов инструментов: 12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...)   |   50+ типов диаграмм (Диаграмма Ганта, ...)   |   40+ практических формул (Расчет возраста на основе даты рождения, ...)   |   19 инструментов вставки (Вставить QR-код, Вставить изображение из пути, ...)   |  12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...)   |  7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...)   |   ... и многое другое
Используйте Kutools на вашем предпочитаемом языке – поддерживаются английский, испанский, немецкий, французский, китайский и более40 других языков!

Повысьте свои навыки работы в Excel с Kutools для Excel и ощутите новую эффективность. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени.  Щелкните здесь, чтобы получить наиболее нужную вам функцию...


Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна, а не в новых окнах.
  • Увеличьте свою продуктивность на50% и сократите сотни кликов мышью ежедневно!