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

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

Author: Xiaoyang Last Modified: 2025-08-07

Вот как преобразовать числа в слова в индийских рупиях или любой другой валюте в 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, {"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"}, teens, {"Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"}, tens, {"","","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"}, 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) & " Hundred" & IF(MOD(x,100)>0, " " & ConvertTwo(MOD(x,100)), "") ) ) ), words, IF(num=0, "Zero", TEXTJOIN(" ", TRUE, IF(INT(num/10000000)>0, ConvertTwo(INT(num/10000000)) & " Crore", ""), IF(MOD(INT(num/100000),100)>0, ConvertTwo(INT(MOD(num,10000000)/100000)) & " Lakh", ""), IF(MOD(INT(num/1000),100)>0, ConvertTwo(INT(MOD(num,100000)/1000)) & " Thousand", ""), IF(MOD(INT(num/100),10)>0, INDEX(units, INT(MOD(num,1000)/100)+1) & " Hundred", ""), IF(MOD(num,100)>0, ConvertTwo(MOD(num,100)), "") ) ), result, "Rupees " & words & IF(paise>0, " and " & ConvertTwo(paise) & " Paise", "") & " Only", result ))
  • paste-lambda-function
  • Нажмите ОК, чтобы сохранить новое имя.

Шаг 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 > Текст > Числа в слова

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 с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (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% и сократите сотни кликов мышью ежедневно!