பக்கங்கள்

19 நவ., 2013

How To Convert Number Into Words In MS Excel

How To Convert Number Into Words In MS Excel ? (Example 100 = Hundred Dollars)


MS Excel has so many Text, Financial and Statistical Formulas. But Unfortunately, we don't have the direct formula to convert Number to the Text Words. Fortunately, we have a Macro Code to act for the same.

I found a Macro Code to convert Number to the English Text Words, and I did few modifications to customize.


Steps Need to Follow :-

1. Open MS Excel Workbook
2. Click Alt + F11
    Then, Microsoft Visual Basic Window opens
3. Click Alt + I, M (or Click Module from Insert Menu Bar)
    Then, Module Window opens
4. Copy the below Code (Short Cut: Ctrl + C (or) Alt + E, C (or) Right Click, C (or) Ctrl + Insert)


Option Explicit
'Main Function
Function NumWords(ByVal MyNumber)
Dim Rupees, Paises, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "
' String representation of amount.
MyNumber = Trim(Str(MyNumber))
' Position of decimal place 0 if none.
DecimalPlace = InStr(MyNumber, ".")
' Convert Paises and set MyNumber to Rupee amount.
If DecimalPlace > 0 Then
Paises = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
"00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Select Case Rupees
Case ""
Rupees = "No Rupees"
Case "One"
Rupees = "One Rupee"
Case Else
Rupees = Rupees & " Rupees"
End Select
Select Case Paises
Case ""
Paises = " and No Paises"
Case "One"
Paises = " and One Paise"
Case Else
Paises = " and " & Paises & " Paises"
End Select
NumWords = Rupees & Paises
End Function

' Converts a number from 100-999 into text
Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
' Convert the hundreds place.
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If
' Convert the tens and ones place.
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

' Converts a number from 10 to 99 into text.
Function GetTens(TensText)
Dim Result As String
Result = "" ' Null out the temporary function value.
If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
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"
Case Else
End Select
Else ' If value between 20-99...
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 "
Case Else
End Select
Result = Result & GetDigit _
(Right(TensText, 1)) ' Retrieve ones place.
End If
GetTens = Result
End Function

' Converts a number from 1 to 9 into text.
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



5. Paste into the Module Window (Short Cut: Ctrl + V (or) Alt + E, V (or) Right Click, V)
  
6. Close Microsoft Visual Basic Window

7. That's All !!!

How can I Test ?

Through the above Macro Code we created a new formula "NumWords".

Now, we can use "NumWords" Formula to Convert Number to the Text Words.

Example:

1. Enter Number into the Formula

=numwords(100)

The above formula results "One Hundred  Rupees and No Paise"

2. Using Cell Reference into the Formula

Let Say, A1 cell contains 1500 and we want to text words in A2

Then the Formula in A2 cell is =numwords(A1)

A2 cell results "One Thousand Five Hundred  Rupees and No Paise"

Now, You can test with more examples.

Thanks Lostinexcell.blogspot.in
-- 

கருத்துகள் இல்லை:

கருத்துரையிடுக

Total Pageviewers (Last week)