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

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Преобразование чисел в слова в индийских рупиях и других валютах в Excel (2025 Edition)

Author Xiaoyang Last modified

Вот как преобразовать числа в слова в индийских рупиях — или любой другой валюте — в Excel.

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

Пример

12,350.50 → Рупий двенадцать тысяч триста пятьдесят и пятьдесят пайсов только

Хотя Microsoft Excel не имеет встроенной функции для преобразования чисел в слова, существует несколько эффективных способов достичь этого — через VBA, функции LAMBDA или универсальный плагин Kutools для Excel.

Преобразование чисел в слова в индийских рупиях с помощью VBA (все версии Microsoft)

Преобразование чисел в слова в индийских рупиях с помощью функции LAMBDA (только Microsoft 365)

Преобразование чисел в USD, EUR и более чем 30 других валют (все версии Microsoft)

Когда использовать каждый метод


Преобразование чисел в слова в индийских рупиях с помощью VBA (все версии Microsoft)

Для пользователей любой версии Excel VBA (Visual Basic for Applications) предоставляет настраиваемый метод для преобразования числовых сумм в слова, используя индийскую систему нумерации (например, тысячи, лакхи, кроры).

Шаг 1. Нажмите Alt + F11, чтобы открыть редактор VBA (окно Microsoft Visual Basic for Applications).

vba-editor

Шаг 2. Перейдите в меню Вставить > Модуль.

select-module

Шаг 3. Вставьте код VBA в Модуль.

Преобразование чисел в слова в индийских рупиях

Function ConvertToRupees(ByVal MyNumber)
'UpdatebyExtendoffice
    Dim Units As String, SubUnits As String, TempStr As String
    Dim DecimalPlace As Integer, Count As Integer
    Dim Place(9) As String
    Place(2) = " Thousand "
    Place(3) = " Lakh "
    Place(4) = " Crore "
    
    MyNumber = Trim(Str(MyNumber))
    DecimalPlace = InStr(MyNumber, ".")
    
    If DecimalPlace > 0 Then
        SubUnits = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
        MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    End If
    
    Count = 1
    Do While MyNumber <> ""
        TempStr = GetHundreds(Right(MyNumber, 3))
        If TempStr <> "" Then Units = TempStr & Place(Count) & Units
        If Len(MyNumber) > 3 Then
            MyNumber = Left(MyNumber, Len(MyNumber) - 3)
        Else
            MyNumber = ""
        End If
        Count = Count + 1
    Loop
    
    ConvertToRupees = "Rupees " & Application.WorksheetFunction.Trim(Units)
    If SubUnits <> "" Then
        ConvertToRupees = ConvertToRupees & " and " & SubUnits & " Paise"
    End If
    ConvertToRupees = ConvertToRupees & " Only"
End Function

Private Function GetHundreds(ByVal MyNumber)
    Dim Result As String
    If Val(MyNumber) = 0 Then Exit Function
    MyNumber = Right("000" & MyNumber, 3)
    
    If Mid(MyNumber, 1, 1) <> "0" Then
        Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
    End If
    
    If Mid(MyNumber, 2, 1) <> "0" Then
        Result = Result & GetTens(Mid(MyNumber, 2))
    Else
        Result = Result & GetDigit(Mid(MyNumber, 3))
    End If
    GetHundreds = Result
End Function

Private Function GetTens(TensText)
    Dim Result As String
    If Val(Left(TensText, 1)) = 1 Then
        Select Case Val(TensText)
            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"
        End Select
    Else
        Select Case Val(Left(TensText, 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 "
        End Select
        Result = Result & GetDigit(Right(TensText, 1))
    End If
    GetTens = Result
End Function

Private Function GetDigit(Digit)
    Select Case Val(Digit)
        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
paste-code

Шаг 4. Сохраните изменения и вернитесь в Excel.

Шаг 5. Выберите ячейку и используйте формулу следующим образом:

=ConvertToRupees(A2)

Нажмите клавишу Enter

use-formula

💡 Совет: Этот метод поддерживает десятичные дроби (пайсы) и работает офлайн.

Ограничения использования VBA

  • Требуется сохранение книги в формате файла с поддержкой макросов (.xlsm).
  • Макросы могут быть заблокированы настройками безопасности в некоторых средах.

Преобразование чисел в слова в других валютах (USD, EUR и т. д.)

Чтобы настроить вывод для других валют, таких как «доллары» или «евро», вы можете изменить строковые значения в функции VBA. Ниже представлена упрощенная и более гибкая версия функции.

Гибкий шаблон кода VBA (настраиваемая валюта)

'UpdatebyExtendoffice
Public Function NumberToWordsCustom(ByVal num As Double, Optional ByVal currency2 As String, Optional ByVal subCurrency As String) As String
    Dim result As String
    Dim dollars As Long
    Dim cents As Long

    dollars = Int(num)
    cents = Round((num - dollars) * 100)
  
    If Len(currency2) = 0 Then currency2 = "Dollars"
    If Len(subCurrency) = 0 Then subCurrency = "Cents"
    result = currency2 & " " & SpellNumber_English(dollars)

    If cents > 0 Then
        result = result & " and " & SpellNumber_English(cents) & " " & subCurrency
    End If

    NumberToWordsCustom = result & " Only"
End Function

Private Function SpellNumber_English(ByVal MyNumber As Long) As String
    Dim Units As Variant, Tens As Variant, Teens As Variant
    Dim Place() As String
    Dim TempStr As String
    Dim Count As Integer
    Dim t As String
    Dim StrNumber As String
    Dim n As Integer

    Place = Split(" Thousand Million Billion", " ")
    Units = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine")
    Tens = Array("", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
    Teens = Array("Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")

    StrNumber = Trim(Str(MyNumber))
    Count = 0

    Do While StrNumber <> ""
        n = Val(Right(StrNumber, 3))
        If n <> 0 Then
            t = ConvertHundreds(n, Units, Tens, Teens)
            If Count > 0 Then t = t & " " & Place(Count - 1)
            TempStr = t & " " & TempStr
        End If
        If Len(StrNumber) > 3 Then
            StrNumber = Left(StrNumber, Len(StrNumber) - 3)
        Else
            StrNumber = ""
        End If
        Count = Count + 1
    Loop

    SpellNumber_English = Trim(TempStr)
End Function

Private Function ConvertHundreds(ByVal n As Integer, Units As Variant, Tens As Variant, Teens As Variant) As String
    Dim result As String
    If n >= 100 Then
        result = Units(Int(n / 100)) & " Hundred "
        n = n Mod 100
    End If
    If n >= 20 Then
        result = result & Tens(Int(n / 10)) & " "
        n = n Mod 10
    ElseIf n >= 10 Then
        result = result & Teens(n - 10) & " "
        n = 0
    End If
    If n > 0 Then
        result = result & Units(n)
    End If
    ConvertHundreds = Trim(result)
End Function

Пример формулы VBA:

=NumberToWordsCustom(A2, "Dollars", "Cents")
vba-formula-to-other-currency

Пример формулы VBA для другой валюты:

=NumberToWordsCustom(A2, "Euros", "Cents")

=NumberToWordsCustom(A2, "Pounds", "Pence")

Код является гибким — просто передайте желаемую валюту и подраздел.


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

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

Шаг 1. Перейдите в Файл > Сохранить как

use-save-as

Шаг 2. Выберите расположение и тип файла: Книга Excel с поддержкой макросов (*.xlsm).

use-save-as-macro-enabled

Шаг 3. Нажмите Сохранить.

✅ Ваши пользовательские функции, такие как =ConvertToRupees(A2), теперь будут сохранены и их можно будет использовать в любое время.


Преобразование чисел в слова в индийских рупиях с помощью функции LAMBDA (только Microsoft 365)

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

🪄 Что такое LAMBDA?

LAMBDA — это функция в Excel, которая позволяет создавать собственные пользовательские функции с использованием формул — точно так же, как встроенные функции, такие как СУММ или ЕСЛИ, но без необходимости использования кода или макросов. Она отлично подходит для упрощения повторяющейся логики и делает ваши таблицы более чистыми и легкими для поддержки.

Шаг 1: Перейдите в Диспетчер имен и нажмите Формулы > Диспетчер имен.

select-name-manager

Шаг 2: Создайте новое имя.

  • Нажмите кнопку Новое.

    create-new-name
  • Введите имя.

    Пример: RupeeToWords

    create-name
  • Шаг 3: Вставьте эту формулу LAMBDA в поле Ссылается на:

    =LAMBDA(n, LET( units, {"","Один","Два","Три","Четыре","Пять","Шесть","Семь","Восемь","Девять"}, teens, {"Десять","Одиннадцать","Двенадцать","Тринадцать","Четырнадцать","Пятнадцать","Шестнадцать","Семнадцать","Восемнадцать","Девятнадцать"}, tens, {"","","Двадцать","Тридцать","Сорок","Пятьдесят","Шестьдесят","Семьдесят","Восемьдесят","Девяносто"}, num, INT(n), paise, ROUND((n - INT(n)) * 100, 0), ConvertTwo, LAMBDA(x, IF(x<10, INDEX(units, x+1), IF(x<20, INDEX(teens, x-9), INDEX(tens, INT(x/10)+1) & IF(MOD(x,10)>0, " " & INDEX(units, MOD(x,10)+1), "") ) ) ), ConvertThree, LAMBDA(x, IF(x=0, "", IF(x<100, ConvertTwo(x), INDEX(units, INT(x/100)+1) & " Сто" & IF(MOD(x,100)>0, " " & ConvertTwo(MOD(x,100)), "") ) ) ), words, IF(num=0, "Ноль", TEXTJOIN(" ", TRUE, IF(INT(num/10000000)>0, ConvertTwo(INT(num/10000000)) & " Крор", ""), IF(MOD(INT(num/100000),100)>0, ConvertTwo(INT(MOD(num,10000000)/100000)) & " Лакх", ""), IF(MOD(INT(num/1000),100)>0, ConvertTwo(INT(MOD(num,100000)/1000)) & " Тысяча", ""), IF(MOD(INT(num/100),10)>0, INDEX(units, INT(MOD(num,1000)/100)+1) & " Сто", ""), IF(MOD(num,100)>0, ConvertTwo(MOD(num,100)), "") ) ), result, "Рупий " & words & IF(paise>0, " и " & ConvertTwo(paise) & " Пайса", "") & " Только", result ))
  • paste-lambda-function
  • Нажмите OK, чтобы сохранить новое имя.

Шаг 3. Закройте Диспетчер имен и вернитесь в Excel.

Шаг 4. Используйте формулу в любой ячейке следующим образом:

=RupeeToWords(A2)

Нажмите клавишу Enter.

use-lambda-formula

👀 Полный код функции LAMBDA обрабатывает кроры, лакхи, тысячи и десятичные дроби.


Преобразование чисел в USD, EUR и более чем 30 других валют (все версии Microsoft)

Для наиболее эффективного и профессионального решения используйте инструмент Kutools для Excel Numbers to Words. Этот мощный инструмент поддерживает:

🌍 Более 30 валют, включая:

  • Доллары США (USD)
  • Евро (EUR)
  • Китайский юань (CNY)
  • Британский фунт (GBP)
  • и т. д.
Скачать

Шаг 1. Выберите ячейки, которые вы хотите преобразовать.

select-cells

Шаг 2. Перейдите в Kutools > Текст > Numbers to Words

select-numbers-to-words

Шаг 3. Выберите целевую валюту и нажмите OK.

select-currency-in-dialog

Числа преобразованы в указанную валюту.

kutools-convert-result

😁 Совет: Если вы хотите напрямую преобразовать числа в слова, отметьте опцию Не преобразовывать в валюту, и результат будет показан следующим образом:

convert-to-words

Когда использовать каждый метод

  • Используйте VBA, если вам нужен гибкий, программируемый решение, и вы знакомы с макросами.

  • Используйте LAMBDA, если вы используете Excel 365 и вам нужно только изредка преобразовывать значения в индийских рупиях. Это легковесное, совместимое решение, которое не требует макросов или внешних инструментов — идеально подходит для простых или личных задач.
  • Используйте Kutools для Excel, если вы хотите получить самое простое, быстрое и универсальное решение — без необходимости программирования. Kutools особенно полезен, когда:
    • Вы работаете с несколькими валютами.
    • Необходимо конвертировать значения массово или в больших наборах данных.
    • Хотите профессиональный инструмент, готовый к использованию без макросов, с более чем 30 вариантами валют и производительностью, усиленной искусственным интеллектом.

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

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ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% и уменьшите количество щелчков мышью на сотни ежедневно!

Все надстройки Kutools. Один установщик

Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.

Excel Word Outlook Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек