Конвертация Преобразовать в слова в Индийская рупия и другие валюты в Excel (2025 версия)
Вот как преобразовать числа в слова на индийских рупиях — или любой другой валюте — в Excel.
При работе с финансовыми документами — такими как счета, коммерческие предложения, налоговые формы, чеки или платёжные поручения — денежные суммы часто требуется указывать как цифрами, так и прописью в формате Word. Это придаёт документу профессиональный вид и помогает предотвратить мошенничество или недопонимание.
Пример
Хотя в Microsoft Excel нет встроенной функции для преобразования чисел в слова, добиться этого можно несколькими эффективными способами — с помощью VBA, функций LAMBDA или универсальной надстройки Kutools для Excel.
Конвертация Преобразовать в слова в Индийская рупия с помощью VBA (все версии Microsoft)
- Конвертация Преобразовать в слова в другие валюты (USD, EUR и др.)
- Сохраните книгу как файл с поддержкой макросов
Конвертация Преобразовать в слова в Индийская рупия с помощью функции LAMBDA (только Microsoft 365)
Преобразование чисел в USD, EUR и 30+ другие валюты (все версии Microsoft)
Когда какой метод использовать
Конвертация Преобразовать в слова в Индийская рупия с помощью VBA (все версии Microsoft)
Для пользователей любой версии Excel VBA (Visual Basic for Applications) предлагает гибкий способ преобразования числовых сумм в слова по индийской системе счисления — с учётом тысяч, лакхов и кроров.
Шаг 1. Нажмите Alt+F11, чтобы открыть редактор VBA (окно Microsoft Visual Basic for Applications).

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

Шаг 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

Шаг 4. Сохраните изменения и вернитесь в Excel.
Шаг 5. Выберите ячейку и примените формулу следующим образом:
Нажмите клавишу Enter.

💡Совет: этот метод поддерживает десятичные дроби (пайсы) и работает автономно.
Ограничения использования 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:

Пример формулы VBA для другой валюты:
=NumberToWordsCustom(A2, «Euros», «Cents»)
=NumberToWordsCustom(A2, «Pounds», «Pence»)
Код гибкий — просто укажите нужную валюту и её подразделение.
Сохраните книгу как файл с поддержкой макросов
Если вы используете VBA, обязательно сохраните книгу в формате с поддержкой макросов — иначе ваш код будет безвозвратно утерян при закрытии файла.
Шаг 1. Перейдите в меню Файл > Сохранить как

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

Шаг 3. Нажмите Сохранить.
✅ Ваши пользовательские функции, например =ConvertToRupees(A2), теперь сохраняются и всегда готовы к повторному использованию.
Конвертация Преобразовать в слова в Индийская рупия с помощью функции LAMBDA (только Microsoft 365)
Пользователям Excel 365 доступна функция LAMBDA — инновационный инструмент Excel для создания собственных формул без применения VBA.
🪄 Что такое LAMBDA?
Функция LAMBDA в Excel позволяет создавать собственные пользовательские функции с помощью формул — так же просто, как использовать встроенные функции вроде СУММ или ЕСЛИ, но без написания кода или макросов. Она идеально подходит для упрощения повторяющейся логики и делает ваши таблицы чище и проще в обслуживании.
Шаг 1: перейдите на вкладку Формулы и нажмите Менеджер имен.

Шаг 2: создайте новое имя.
Нажмите кнопку Создать.

Введите имя.
Пример: RupeeToWords

Шаг 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(x0, « » &, INDEX(units, MOD(x,10)+1), «») ) ) ), ConvertThree, LAMBDA(x, IF(x=0, «», IF(x0, « » & 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 ))Нажмите ОК, чтобы сохранить новое имя.

Шаг 3. Закройте окно «Менеджер имен» и вернитесь в Excel.
Шаг 4. Введите формулу в любую ячейку следующим образом:
Нажмите клавишу Enter.

👀 Полный код функции LAMBDA корректно обрабатывает кроры, лакхи, тысячи и десятичные дроби.
Преобразование чисел в USD, EUR и 30+ другие валюты (все версии Microsoft)
Для самого эффективного и профессионального решения используйте Kutools для Excel's Преобразовать в слова. Этот мощный инструмент поддерживает:
🌍 Более 30 валют, включая:
- Доллары США (USD)
- Евро (EUR)
- Китайские юани (CNY)
- Британские фунты стерлингов (GBP)
- и др.
Шаг 1. Выделите ячейки, которые нужно преобразовать.

Шаг 2. Перейдите в меню Kutools > Содержимое > Преобразовать в слова

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

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

😁Совет: если вы хотите сразу конвертировать Преобразовать в слова, установите флажок Не преобразовывать в валюту, и результат будет отображён следующим образом:

Когда какой метод использовать
Используйте VBA, если вам нужен гибкий программируемый инструмент и вы уже знакомы с макросами.
- Используйте LAMBDA, если вы работаете в Excel 365 и лишь изредка конвертируете значения индийских рупий. Это лёгкое и удобное для совместного использования решение, не требующее макросов или внешних инструментов — идеальный выбор для простых или личных задач.
- Воспользуйтесь Kutools для Excel, если вам нужно самое простое, быстрое и универсальное решение — без программирования. Kutools особенно полезен, когда:
- Вы работаете с несколькими валютами.
- Требуется массовая конвертация значений или обработка крупных наборов данных.
- Хотите профессиональный инструмент без макросов с более чем 30 вариантами валют и производительностью на базе ИИ?
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал 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 и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек

