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

- Использовать новые встроенные функции (только Microsoft 365)
- Использовать пользовательскую функцию VBA
- Использовать Kutools для Excel за несколько кликов
Методы преобразования чисел в слова в Excel
В этом разделе представлены три эффективных метода преобразования числовых значений валют в слова в Excel. Выберите тот, который лучше всего подходит для вашей версии Excel и вашего случая использования.
Метод 1: Использование новых встроенных функций (только Microsoft 365)
Если вы используете Excel для Microsoft 365, вы можете воспользоваться новой функцией TRANSLATE для легкого преобразования числовых значений валют в слова с помощью творческой комбинации формул.
Как показано на скриншоте ниже, чтобы преобразовать числовые значения валют из диапазона A2:A5 в слова, можно применить следующую формулу.
- Выберите пустую ячейку (например, B2), введите формулу ниже. =ПРОПИСН(ЗАМЕНИТЬ(ЗАМЕНИТЬ(СТРОЧН(ПЕРЕВОД(BAHTTEXT(B9),"th","en")),"baht","dollars"),"satang","cents"))
- Нажмите «Enter» и протяните маркер заполнения вниз, чтобы применить к другим строкам.
Как работает эта формула:
- 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
- Откройте лист, где вы хотите использовать эту функцию.
- Нажмите «Alt» + «F11», чтобы открыть окно «Microsoft Visual Basic for Applications».
- В редакторе нажмите «Вставить» > «Модуль», затем вставьте следующий код 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
- Нажмите «Alt» + «Q», чтобы вернуться к листу.
Шаг 2: Применение функции
- В ячейке введите следующую формулу и нажмите «Enter». =SpellNumberToEnglish(A2)
- Затем протяните маркер заполнения, чтобы применить к другим строкам по необходимости. Теперь ваши числа будут преобразованы в слова, например:
Адаптация для других валют:
Функция выводит значения в формате “Dollar(s)” и “Cent(s)”, что жестко задано только для USD. Если вы хотите конвертировать числа в другие валюты, например, в «Британский Фунт», необходимо вручную изменить основные и младшие единицы в указанных строках кода.

Сохранение книги как файла с поддержкой макросов
По умолчанию функции VBA не сохраняются, если книга не сохранена как книга с поддержкой макросов:
- Нажмите «Ctrl» + «S», чтобы сохранить.
- И выберите кнопку «Go back» в появившемся сообщении о макросах. Примечание: Если в появившемся окне есть только варианты «Да», «Нет» и «Помощь», нажмите «Нет».
- В окне «Сохранить как».
- Выберите место сохранения.
- Выберите «Книга Excel с поддержкой макросов (*.xlsm)» в выпадающем списке «Сохранить как тип».
- Нажмите «Сохранить».
Ограничения функции VBA SpellNumberToEnglish
- Эта функция генерирует результаты только на английском языке.
- Она не поддерживает другие языки (например, французский, немецкий), а также не обрабатывает структуры валют, где единица валюты стоит перед числом (например, «Rupees One Hundred» в индийском английском).
- Если вы не сохраните книгу как книгу с поддержкой макросов (.xlsm), функция будет потеряна при закрытии Excel.
- Если сохранить как обычный файл .xlsx, весь код VBA будет удален.
- Отправка файла с поддержкой макроса другим пользователям вызовет предупреждение «Security Warning – Macros have been disabled» при открытии.
- Некоторые пользователи могут колебаться включать макросы из-за опасений потенциальных рисков безопасности и могут решить не использовать файл.
- Любые изменения в терминах валюты или форматировании требуют ручного редактирования кода 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»)
Шаги для использования:
- Выберите ячейки, содержащие числа, которые вы хотите преобразовать.
- Выберите «Kutools» > «Текст» > «Numbers to Words».
- В диалоговом окне «Numbers to Currency Word» вам нужно:
- Выбрать предпочитаемый язык и стиль валюты (например, английский – США для USD)
- Нажмите «OK».
Опционально: отметьте «Not converted to currency», если вы хотите простые английские слова (без «dollars» или «cents»).
Теперь выбранные числа будут преобразованы в соответствующие валютные слова в зависимости от ваших настроек.
Kutools для Excel - Усильте Excel более чем 300 необходимыми инструментами. Наслаждайтесь постоянно бесплатными функциями ИИ! Получите прямо сейчас
Обратная операция: Преобразование валюты словами обратно в числа
Если у вас есть список денежных сумм, написанных словами на английском языке, например:
и вы хотите преобразовать их в фактические числа в Excel (например, 123.45), вы можете использовать пользовательскую функцию VBA User Defined Function (UDF) следующим образом.

Шаг 1: Откройте редактор VBA и вставьте код VBA
- Откройте вашу рабочую книгу Excel.
- Нажмите «Alt» + «F11», чтобы открыть редактор «Microsoft Visual Basic for Applications (VBA)».
- В редакторе VBA нажмите «Insert» > «Module».
- Скопируйте и вставьте следующий код 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: Применение функции в вашем листе
- Нажмите «Alt» + «Q», чтобы вернуться в Excel.
- В любой пустой ячейке введите эту формулу и нажмите «Enter». Протяните маркер заполнения вниз, чтобы получить остальные результаты. =WordsToNumber(A2)
Заключение
Преобразование чисел в слова — или слов обратно в числа — это не то, что Excel предлагает нативно, но данное руководство показало, что существует множество практических решений в зависимости от ваших потребностей:
- Пользователи Microsoft 365 могут воспользоваться современными встроенными функциями, такими как TRANSLATE, для преобразования числовых значений валют в английские слова с помощью формул, особенно для валют, следующих структуре «основная + дробная единица».
- Пользовательские функции VBA предлагают большую гибкость для преобразования чисел в слова и обратного преобразования слов валют обратно в числовые значения. Однако они сопровождаются проблемами безопасности, связанными с макросами, и лучше всего подходят для пользователей, знакомых с кодированием.
- Kutools для Excel предоставляет самый простой, многоязычный и функционально богатый вариант — без необходимости в формулах или кодировании и с поддержкой десятков валют и языков.
- Если вам нужно преобразовать слова обратно в числа, решение VBA эффективно решает эту задачу, хотя может потребоваться очистка (например, удаление запятых) для получения точных результатов.
Независимо от того, готовите ли вы финансовые документы, автоматизируете печать чеков или просто улучшаете представление данных, выбор правильного метода помогает достичь профессиональных и точных результатов.
Лучшие инструменты для повышения продуктивности в Office
Повысьте свои навыки работы в Excel с Kutools для Excel и ощутите новую эффективность. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Щелкните здесь, чтобы получить наиболее нужную вам функцию...
Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в новых окнах.
- Увеличьте свою продуктивность на50% и сократите сотни кликов мышью ежедневно!