Converting numeric values into words in Indian Rupees (INR) is a common requirement in Excel, especially for invoices, salary slips, financial reports, cheques, and GST documents. While Excel does not provide a built-in function to convert numbers into words in the Indian numbering system, this task can be accomplished using formulas and VBA.
This comprehensive guide explains how to convert numbers to words in Indian Rupees in Excel step by step, covering beginner to intermediate concepts with real-world examples and practical code samples.
In many Indian business and accounting scenarios, amounts must be written both numerically and in words to avoid ambiguity.
Before converting numbers to words, it is essential to understand how the Indian numbering system differs from the international system.
| Number | Indian Format | International Format |
|---|---|---|
| 1,00,000 | One Lakh | One Hundred Thousand |
| 10,00,000 | Ten Lakh | One Million |
| 1,00,00,000 | One Crore | Ten Million |
The most reliable and flexible way to convert numbers to words in Indian Rupees in Excel is by using VBA (Visual Basic for Applications).
Function RupeesToWords(ByVal MyNumber) Dim Rupees As String Dim Paise As String Dim Temp As String MyNumber = Format(MyNumber, "0.00") Rupees = Split(MyNumber, ".")(0) Paise = Split(MyNumber, ".")(1) Temp = ConvertToWords(Rupees) & " Rupees" If Paise > 0 Then Temp = Temp & " and " & ConvertToWords(Paise) & " Paise" End If RupeesToWords = Temp & " Only" End Function
Function ConvertToWords(ByVal MyNumber) Dim Units As Variant Units = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", _ "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", _ "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen") Dim Tens As Variant Tens = Array("", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety") If Val(MyNumber) < 20 Then ConvertToWords = Units(MyNumber) ElseIf Val(MyNumber) < 100 Then ConvertToWords = Tens(Int(MyNumber / 10)) & " " & Units(MyNumber Mod 10) Else ConvertToWords = ConvertToWords(Int(MyNumber / 100)) & " Hundred " & ConvertToWords(MyNumber Mod 100) End If End Function
Once the VBA code is saved, you can use it like a normal Excel function.
=RupeesToWords(A1)
If cell A1 contains 1234.50, the output will be:
One Thousand Two Hundred Thirty Four Rupees and Fifty Paise Only
Excel formulas can handle small numbers, but they are not recommended for large values or production use.
=CHOOSE(A1+1,"Zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine")
This method is useful only for learning purposes and very limited scenarios.
In a GST invoice, the total amount must often be displayed in words.
| Amount | Amount in Words |
|---|---|
| ₹45,678.75 | Forty Five Thousand Six Hundred Seventy Eight Rupees and Seventy Five Paise Only |
Converting numbers to words in Indian Rupees in Excel is an essential skill for finance professionals, accountants, and business users in India. Although Excel does not offer a built-in solution, using VBA provides a powerful, flexible, and reusable approach.
By understanding the Indian numbering system and applying the methods explained in this guide, you can generate professional, error-free financial documents with ease.
No, Excel does not have a built-in function. VBA is required for converting numbers to words, especially in the Indian currency format.
Yes, with minor enhancements, the VBA logic can be extended to fully support Lakhs and Crores.
Yes, VBA is safe when sourced from trusted code. Always enable macros only for trusted documents.
Absolutely. This is one of the most common use cases for converting amounts into words.
Yes, VBA-based solutions work in most desktop versions of Excel including Excel 2016, 2019, and Microsoft 365.
Copyrights © 2024 letsupdateskills All rights reserved