Aug
29

Two best ways to convert numbers to words in Excel

In this article I will show you two quick and free ways to convert currency numbers into English words in Excel 2010, 2013 and other versions.

Microsoft Excel is a great program to calculate this and that. It was initially developed to process large data arrays. However, it also lets creating accounting records like invoices, evaluation or balance sheets quickly and effectively.

In more or less solid payment documents it is necessary to duplicate numeric values with their word form. It is much harder to falsify typed numbers than those written by hand. Some swindler can try to make 8000 out of 3000, while it is almost impossible to secretly replace "three" with "eight".

So what you need is not just convert numbers to words in Excel (е.g. 123.45 to "one hundred and twenty three, forty five"), but spell out dollars and cents (е.g. $29.95 as "twenty nine dollars and ninety nine cents" ), pounds and pence for GBP, euros and eurocents for EUR, etc.
Convert number to words in Excel 2010

Even Excel 2013 doesn't have a built-in tool for spelling numbers, not to mention earlier versions. But that is when Excel is really good. You can always improve its functionality using formulas in all their
combinations, VBA macros, or third-party add-ins.

Below you'll find two ways to convert numbers from figures to words

And, possibly, you may need to convert Words to Numbers in Excel

Note. If you are looking for the number to text conversion, which means you want Excel to see your number as text, it's a bit different thing. Usually, you simply need to change the cell format in Excel (select your range with numbers, press Ctrl+1 on the Number tab, and select "Text" in the Category field). You can also use the formula =text().

Please find the details in the article Ways to convert numbers to text in Excel.

SpellNumber VBA macro to convert numbers to words

As I have already mentioned, Microsoft didn't want to add a tool for this task. However, when they saw how many users needed it, they created and published the special VBA macro on their website. The macro does what its name SpellNumber suggests. All other macros I came across are based on the Microsoft code.

You can find the macro mentioned as "spellnumber formula". However, it is not a formula, but a macro function, or to be more precise Excel User defined function (UDF).

The spellnumber option is able to write dollars and cents. If you need a different currency, you can change "dollar" and "cent" with the name of your one.

If you are not a VBA savvy guy, below you will find a copy of the code. If you still don't want or haven't time to sort this out, please use this solution.

  1. Open the workbook where you need to spell the numbers.
  2. Press Alt+F11 to open the Visual Basic editor window.
  3. If you have several books opened, check that the needed workbook is active using the list of projects in the upper left corner of the editor (one of the workbook elements is highlighted with blue).
  4. In the editor menu go to Insert-> Module.
    Excel Visual Basic editor - insert module
  5. You should see a window named YourBook - Module1. Select all of the code in the frame below and paste it to this window.
    SpellNumber VBA macro to convert numbers to words

    Option Explicit
    'Main Function
    Function SpellNumber(ByVal MyNumber)
        Dim Dollars, Cents, Temp
        Dim DecimalPlace, Count
        ReDim Place(9) As String
        Place(2) = " Thousand "
        Place(3) = " Million "
        Place(4) = " Billion "
        Place(5) = " Trillion "
    
        MyNumber = Trim(Str(MyNumber))
        DecimalPlace = InStr(MyNumber, ".")
        If DecimalPlace > 0 Then
            Cents = 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 Dollars = Temp & Place(Count) & Dollars
            If Len(MyNumber) > 3 Then
                MyNumber = Left(MyNumber, Len(MyNumber) - 3)
            Else
                MyNumber = ""
            End If
            Count = Count + 1
        Loop
        Select Case Dollars
            Case ""
                Dollars = "No Dollars"
            Case "One"
                Dollars = "One Dollar"
             Case Else
                Dollars = Dollars & " Dollars"
        End Select
        Select Case Cents
            Case ""
                Cents = " and No Cents"
            Case "One"
                Cents = " and One Cent"
                  Case Else
                Cents = " and " & Cents & " Cents"
        End Select
        SpellNumber = Dollars & Cents
    End Function
    
    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
    
    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
    
    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
    
  6. Press Ctrl+S to save the updated workbook.

    You will need to resave your workbook. When you try to save the workbook with a macro you'll get the message "The following features cannot be saved in macro-free workbook"

    The following features cannot be saved in macro-free Workbook : VB project

    Click No. When you see a new dialog, chose the Save as option. In the field "Save as type" pick the option "Excel macro-enabled workbook".

    Save your book as 'Excel macro-enabled workbook'

Use SpellNumber macro in your worksheets

Now you can use the function SpellNumber in your Excel documents. Enter =SpellNumber(A2) into the cell where you need to get the number written in words. Here A2 is the address of the cell with the number or amount.

Use SpellNumber macro in your Excel worksheets

Here you can see the result:
Spelled out numbers to dollars and cents

Voila!

Quickly copy the SpellNumber function to other cells.

If you need to convert the entire table, not just 1 cell, place your mouse cursor to the lower right corner of the cell with the formula until it turns into a small black cross:
Quickly copy the SpellNumber function to other cells

Left-click and drag it across the column to fill in the formula. Release the button to see the results:
Spelled out numbers to dollars and cents

Note. Please keep in mind that if you use SpellNumber with a link to another cell, the written sum will be updated each time the number in the source cell is changed.
You can also enter the number directly into the function, for example, =SpellNumber(29.95) (29.95 - without quotation marks and the Dollar sign).

Disadvantages of using macro to spell numbers in Excel

First off, you must know VBA to modify the code according to your needs. It is necessary to paste the code for each workbook, where you plan to change it. Otherwise, you will need to create a template file with macros and configure Excel to load this file at each start.

The main disadvantage of using a macro is if you send the workbook to somebody else, this person will not see the text unless the macro is built into the workbook. And even if it's built-in, they will get an alert that there are macros in the workbook.
Add a macro to your workbook

Free ready-to-use add-in to spell numbers into words

For active Excel users who need to quickly spell sums but don't want to learn VBA or other workarounds, one kind developer created a free add-in - POPUP SPELL NUMBER for Microsoft Excel

Besides being ready for use, the tool is really flexible in converting numbers. You can choose the text case of the result (lower case, Title Case, Sentence case, UPPER CASE ), also you can select how you want to see the fraction:

  • Spells the fraction in cent/cents, оr penny/pennies, оr penny/pence, or centavo/centavos
  • Spells decimal point, each zero and the rest of the number as an integer.
  • Doesn't spell the fraction but writes it as a fraction with denominator of 100, 1000, 1000000

Feel free to explore its possibilities on the product's home page.

The author states that it's tested and works in Excel for Windows 2000, 2002(XP), 2003, 2007, 2010 (32-bit), and 2013 (32-bit) in MSI-based and Click-To-Run installations of Office 365 cloud-based services.

And all is wonderful about POPUP SPELL NUMBER, but...

I hate to say that the add-in doesn't work with 64-bit versions of Excel 2010, 2013, 2007. And it is a considerable obstacle since these versions are becoming more and more popular. So lucky you are if you have Excel 32-bit :) Feel free to download the add-in and check it out.

If you are the one with Excel 64-bit like me, drop the author a line and ask him for a special version.

Reverse conversion - English words into numbers

Frankly, I can't imagine why you may need it. Just in case... :)

It appears that Excel MVP, Jerry Latham, created such Excel User defined function (UDF) as WordsToDigits. It converts English words back to number.

You can download Jerry's WordsToDigits workbook to see the UDF code. Here you'll also find his examples of how to use the function.

Convert english words into numbers

You can see how the function works on the sheet "Sample Entries", where you will also be able to enter your own examples. If you plan to employ WordsToDigits in your documents, please be informed that this function has restrictions. For example, it doesn't recognize fractions entered in words. You will find all the details on the "Information" sheet.

See also

186 Responses to "Two best ways to convert numbers to words in Excel"

  1. Rahim Zulfiqar Ali says:

    You can also do it by Formula:

    =TRIM(IF(A2=10^5,CHOOSE(FLOOR(MOD(A2,10^6)/10^5,1)+1,"","One","Two",Three","Four","Five","Six", "Seven","Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen",
    "Seventeen","Eighteen","Nineteen")&" Hundred","")&IF(MOD(A2,10^5)>=20000," "&CHOOSE(FLOOR(MOD(A2,10^5)/10^4,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(A2,10^5),10^4)>=10^3," "&CHOOSE(FLOOR(MOD(MOD(A2,10^5),10^4)/10^3,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen", "Seventeen","Eighteen","Nineteen"),""),IF(MOD(A2,10^5)>=10^3," "&CHOOSE(FLOOR(MOD(A2,10^5)/10^3,1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&" Thousand") & IF(A2=10^2," "&CHOOSE(FLOOR(MOD(A2,10^3)/10^2,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen", "Seventeen","Eighteen","Nineteen")&" Hundred","")&IF(MOD(A2,10^2)>=20," "&CHOOSE(FLOOR(MOD(A2,10^2)/10,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety"
    )&IF(MOD(MOD(A2,10^2),10)>=1," "&CHOOSE(FLOOR(MOD(MOD(A2,10^2),10),1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen", "Seventeen","Eighteen","Nineteen"),""),IF(MOD(A2,10^2)>=1," "&CHOOSE(FLOOR(MOD(A2,10^2),1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&""))

  2. Jennifer says:

    Hi! Thanks for the formula. It works, I have created the VB formula. But what should I do if I only want the words "Six Only" rather than "Six Dollars and None Cents?"

    My currency happens to be different so I prefer without the currency in words. Thanks!

    • Zubair says:

      Change the Dollars & " Dollars" to Dollars only without quotation marks mean give only variable name and & to forward part be omitted.

  3. Parvendar Rathi says:

    There is some Error in this formula becouse the every time after close Excel file then we open next time file we have need to microsoft visual basic for application and save the same seting again and agian. we want to that after one time save the setting the formula contuning in work.

  4. Raz says:

    hi sir
    please help me to do spellnumber code in check format

    Ex. if i type $1,000.15
    it will be ***One Thousand Dollar and 15/100 Only***

    im so glad if you help me

    thank you :D

  5. Anonymous says:

    Option Explicit
    'Main Function
    Function SpellNumber(ByVal MyNumber)
    Dim Riyals, Halalas, Temp
    Dim DecimalPlace, Count
    ReDim Place(9) As String
    Place(2) = " Thousand "
    Place(3) = " Million "
    Place(4) = " Billion "
    Place(5) = " Trillion "

    MyNumber = Trim(Str(MyNumber))
    DecimalPlace = InStr(MyNumber, ".")
    If DecimalPlace > 0 Then
    Halalas = 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 Riyals = Temp & Place(Count) & Riyals
    If Len(MyNumber) > 3 Then
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    Else
    MyNumber = ""
    End If
    Count = Count + 1
    Loop
    Select Case Riyals
    Case ""
    Riyals = "No Riyals"
    Case "One"
    Riyals = "One Riyal"
    Case Else
    Riyals = Riyals & " Riyals"
    End Select
    Select Case Halalas
    Case ""
    Halalas = " and 0 Halalas"
    Case "One"
    Halalas = " and One Cent"
    Case Else
    Halalas = " and " & Halalas & " Halalas"
    End Select
    SpellNumber = Riyals & Halalas
    End Function

    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

    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

    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

    • Janardhan says:

      hi sir
      please help me to do spellnumber code in Omani Rials

      Ex. if i type 750.650
      it will be ***One Thousand Rials and 650/1000 Only***
      or

      ***One Thousand Rials and Six Hundred fifty Baiza Only***

      looking forward for your help

      Thank you

  6. Ali Ahmed says:

    very helpful thanks indeed

  7. azeem says:

    can you please provide me the easiest way to find spellnumber to convert numbers to words

  8. hui says:

    if my number is $500.07 and my word want to convert to "Say Dollars Five Hundreds and cents Seven Only). What is the format for this?

  9. hazem says:

    your solution is amazing but i wonder if i just want the number as it is without dollars without saudi rayal without any currency name , how can i do that in the module

  10. Nick T says:

    I came across an article on another site, to embed this function permanently into Excel, without it being a macro and creating opening and saving nightmares.

    Similar process as listed above, and as you may have seen before, but with a twist...

    >> Open a blank workbook in Excel
    >> Hit ALT-F11
    >> On the top menu, select Insert>Module
    >> Copy and paste the above mentioned VBA code (from the original post, way up top)
    >> Back in VBA, on the top menu, select File>Save Book#
    >> Once in the Save As menu, go down to "Save as type:", click the down arrow, and select "Excel Add-In"
    >> Type a file name of your choosing, (I chose SpellNumber) and choose a file location you'll remember. (the predefined location will work just fine, but you may want to note the location, just in case.
    >> Close out of the VBA editor
    >> On the top main Excel menu, select File>Options
    >> In the Excel Options menu, on the left side, select "Add-Ins"
    >> In the Add-ins menu, at the bottom, under "Manage:" click the down arrow, and select "Excel Add-ins", and then click "Go..."
    >> In the subsequent Add-ins menu, on the right side, click "Browse..."
    >> In the Browse pop-up, you may or may not see the add-in that you previously created and saved. If you see it, select it and click OK. If you do not see it, navigate to the location where you saved it, then select the file and click OK.
    >> Now back in the previous Add-ins menu, you will see your Add-in in the list. If it's box is not checked, click to check it at this time, then on the right, click OK.
    >> Your Add-in will now load every time you open Excel, allowing you to use and perform this function all the time. Also, it is now an add-in, not a macro, so will not create the hassles macro-enabled workbooks carry.
    >> To actually use the function, simply start typing =Spellnu the function should auto populate. Double-click the popup, select the cell you want spelled out, close the parenthesis ), and voila!

    • MG says:

      Thnku.. Nick T...It works..

    • nayan says:

      Dear Mr. Nick T, What should I change in this formula if I Have to write the word for example Taka 9,875 (Taka Nine Thousand Eight Hundred and Seventy Five Only ) ? would You likely to help me to get rid off it ? Thanks

    • AranFa says:

      Thank you NickT, this helped me at work a lot. I have a question tho, I've been playing with the macro functions but i don't seem to be able to get the fills/cents in this format "50/100" "30/100" "89/100" do you have a function i can use for it?
      In the link https://goo.gl/tdBmGQ is the current macro i used as i don't want any currency, also i wanted the word only at the end but i manage that just adding & only at the end it works as well, so not too important that one.
      I would really appreciate if you could help me out with that function.

      Many many thanks!!!!

    • Knightven7 says:

      Indeed! It works!

      Thanks for this!

  11. kudzi says:

    thanks Nick T

  12. kudzi says:

    If you have added the add in like Nick T instructed above, but you say you are filling a checque in excel and you would want

    e.g 4000 to be "four thousand dollars only" and not "four thousand dollars and no cents" but you would also want 4000.36 to be "four thousand dollars and thirty six cents only" when there are cents added.

    lets say the number you want to convert is in cell "B" use the following formula

    '=IF(NUMBERVALUE(RIGHT(B6,2),".",",")>0,CONCATENATE(UPPER(SpellNumber(B6))," ONLY"),CONCATENATE(LEFT(UPPER(SpellNumber(B6)),LEN(UPPER(SpellNumber(B6)))-12)," ONLY"))

  13. yenyen says:

    how if we don't want the words "dollars" in our converted sentences.. Pls show me the module, Thank you so much.

    • sakhone says:

      if i no need "dollars" what should i do ?
      the thing i want (1001.10=One thousand one point ten) who know
      pls help me.
      thanks

  14. satish says:

    we convert in indian currency e.g 12(tweleve) in this way not dollar

  15. Hamiza says:

    Hi Kudzi

    Tried yr formula but was fail. What do you mean by "NUMBERVALUE"?

    Best Regards.

  16. Hamiza says:

    thanks it works

  17. Qaiser Bukhari says:

    Dear, can anyone help me to convert numbers into words like "Nine Thousand and Eighty Five Rupees" instead of "Nine Thousand Eighty Five Rupees and No Cents"? means i don't need cents in conversion.

    • Janardhan says:

      Function ConvertCurrencyToEnglish(ByVal MyNumber)
      ' Edited by Karthikeyan karthikeyan@livetolearn.in
      Dim Temp
      Dim Rupees, Paise
      Dim DecimalPlace, Count

      ReDim Place(9) As String
      Place(2) = " Thousand "
      Place(3) = " lakh "
      Place(4) = " Crore "

      ' Convert MyNumber to a string, trimming extra spaces.
      MyNumber = Trim(Str(MyNumber))

      ' Find decimal place.
      DecimalPlace = InStr(MyNumber, ".")

      ' If we find decimal place...
      If DecimalPlace > 0 Then
      ' Convert Paise
      Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
      ' Hi! Note the above line Mid function it gives right portion
      ' after the decimal point
      'if only . and no numbers such as 789. accures, mid returns nothing
      ' to avoid error we added 00
      ' Left function gives only left portion of the string with specified places here 2

      Paise = ConvertTens(Temp)

      ' Strip off paise from remainder to convert.
      MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
      End If

      Count = 1
      If MyNumber "" Then

      ' Convert last 3 digits of MyNumber to Indian Rupees.
      Temp = ConvertHundreds(Right(MyNumber, 3))

      If Temp "" Then Rupees = Temp & Place(Count) & Rupees

      If Len(MyNumber) > 3 Then
      ' Remove last 3 converted digits from MyNumber.
      MyNumber = Left(MyNumber, Len(MyNumber) - 3)
      Else
      MyNumber = ""
      End If

      End If

      ' convert last two digits to of mynumber
      Count = 2

      Do While MyNumber ""
      Temp = ConvertTens(Right("0" & MyNumber, 2))

      If Temp "" Then Rupees = Temp & Place(Count) & Rupees
      If Len(MyNumber) > 2 Then
      ' Remove last 2 converted digits from MyNumber.
      MyNumber = Left(MyNumber, Len(MyNumber) - 2)

      Else
      MyNumber = ""
      End If
      Count = Count + 1

      Loop

      ' Clean up rupees.
      Select Case Rupees
      Case ""
      Rupees = ""
      Case "One"
      Rupees = "One Rupee"
      Case Else
      Rupees = Rupees & " Rupees"
      End Select

      ' Clean up paise.
      Select Case Paise
      Case ""
      Paise = ""
      Case "One"
      Paise = "One Paise"
      Case Else
      Paise = Paise & " Paise"
      End Select

      If Rupees = "" Then
      ConvertCurrencyToEnglish = Paise
      ElseIf Paise = "" Then
      ConvertCurrencyToEnglish = Rupees
      Else
      ConvertCurrencyToEnglish = Rupees & " and " & Paise
      End If

      End Function

      Private Function ConvertDigit(ByVal MyDigit)
      Select Case Val(MyDigit)
      Case 1: ConvertDigit = "One"
      Case 2: ConvertDigit = "Two"
      Case 3: ConvertDigit = "Three"
      Case 4: ConvertDigit = "Four"
      Case 5: ConvertDigit = "Five"
      Case 6: ConvertDigit = "Six"
      Case 7: ConvertDigit = "Seven"
      Case 8: ConvertDigit = "Eight"
      Case 9: ConvertDigit = "Nine"
      Case Else: ConvertDigit = ""
      End Select

      End Function

      Private Function ConvertHundreds(ByVal MyNumber)
      Dim Result As String

      ' Exit if there is nothing to convert.
      If Val(MyNumber) = 0 Then Exit Function

      ' Append leading zeros to number.
      MyNumber = Right("000" & MyNumber, 3)

      ' Do we have a hundreds place digit to convert?
      If Left(MyNumber, 1) "0" Then
      Result = ConvertDigit(Left(MyNumber, 1)) & " Hundred "
      End If

      ' Do we have a tens place digit to convert?
      If Mid(MyNumber, 2, 1) "0" Then
      Result = Result & ConvertTens(Mid(MyNumber, 2))
      Else
      ' If not, then convert the ones place digit.
      Result = Result & ConvertDigit(Mid(MyNumber, 3))
      End If

      ConvertHundreds = Trim(Result)
      End Function

      Private Function ConvertTens(ByVal MyTens)
      Dim Result As String

      ' Is value between 10 and 19?
      If Val(Left(MyTens, 1)) = 1 Then
      Select Case Val(MyTens)
      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
      ' .. otherwise it's between 20 and 99.
      Select Case Val(Left(MyTens, 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

      ' Convert ones place digit.
      Result = Result & ConvertDigit(Right(MyTens, 1))
      End If

      ConvertTens = Result
      End Function

  18. cody says:

    Hi there,

    I really need to fix the format on the big numbers to say "thiry thousand five hundred AND Ninty dollars and fifty four cents"
    I need the AND after the five hundred... please help, I just what to know where to fix the code...

  19. Gil says:

    I need to convert on checks a number without the dollar sign to words with a dollar sign. Can you send me a spread sheet with a working module. I copied and pasted but get a pop up on the VBA. Thanks

    • dagm says:

      USE Rahim Zulfiqar AlI'S FORMAUL AND COPY PASTE THE RESULT AS TEXT AND MATCH IT WITH THE ADDITIONAL THAT YOU WANT IT BE REDA WITH

  20. dagm says:

    =TRIM(IF(A2=10^5,CHOOSE(FLOOR(MOD(A2,10^6)/10^5,1)+1,"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen")&" Hundred","")&IF(MOD(A2,10^5)>=20000," "&CHOOSE(FLOOR(MOD(A2,10^5)/10^4,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety")&IF(MOD(MOD(A2,10^5),10^4)>=10^3," "&CHOOSE(FLOOR(MOD(MOD(A2,10^5),10^4)/10^3,1)+1,"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"),""),IF(MOD(A2,10^5)>=10^3," "&CHOOSE(FLOOR(MOD(A2,10^5)/10^3,1)+1,"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"),""))&" Thousand")&IF(A2=10^2," "&CHOOSE(FLOOR(MOD(A2,10^3)/10^2,1)+1,"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen")&" Hundred","")&IF(MOD(A2,10^2)>=20," "&CHOOSE(FLOOR(MOD(A2,10^2)/10,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"))&IF(MOD(MOD(A2,10^2),10)>=1," "&CHOOSE(FLOOR(MOD(MOD(A2,10^2),10),1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine")) just TRIED TO FIX SOME OF THE ERRORS ON Rahim Zulfiqar AlI'S FORMAUL BUT STILL IT AIN'T SPELL OUT DIGITS AFTER A POINT; IF SOME ONE COULD HELP ON THAT THAT WOULD BE perfect!! THANK YOU Rahim Zulfiqar AlI and Alexander Frolov thank you TOO using VBA ur formal works perfect but in MY office VBA is deactivated

    • Arkan says:

      dagm please if you can help me that code is working bu i dont nee thousand
      for example 55 = fifty five
      and 50 or 60 0r 40
      fifty only
      if any one help me to do it

  21. olu says:

    plsss....I tried it.... but I got error message... LOOP WITHOUT DO.....plss..kindly send the excel file to my mail..... ifelekods @gmail.com. thanks

  22. dan says:

    help me on below codes,to be faster it's taking to wrong to execute .i have tried all in vain

    Sub CheckoutBook()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.DisplayStatusBar = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
    Dim studentID As String
    studentID = Worksheets("main").Cells(4, 4).Value
    Dim studentFirstName As String
    studentFirstName = Worksheets("main").Cells(5, 4).Value
    Dim studentLastName As String
    studentLastName = Worksheets("main").Cells(6, 4).Value
    Dim bookID As String
    bookID = Worksheets("main").Cells(9, 4).Value
    Dim bookTitle As String
    bookTitle = Worksheets("main").Cells(10, 4).Value

    checkoutDuration = Worksheets("main").Cells(4, 8).Value

    If checkoutDuration 365 Then
    MsgBox ("Checkout duration cannot be more than 365 days")
    ElseIf studentFirstName = "" Then
    MsgBox ("Student first name is empty")
    ElseIf studentLastName = "" Then
    MsgBox ("Student last name is empty")
    ElseIf bookTitle = "" Then
    MsgBox ("Book title is empty")
    ElseIf bookID = "" Then
    MsgBox ("Book ID is empty")
    Else
    Dim checkOutID As String
    checkOutID = bookID & studentID

    With Sheets("checkouts").Range("K:K")
    Set DupRng = .Find(What:=checkOutID, _
    After:=.Cells(.Cells.Count), _
    LookIn:=xlValues, _
    LookAt:=xlWhole, _
    SearchOrder:=xlByRows, _
    SearchDirection:=xlNext, _
    MatchCase:=False)
    End With

    If DupRng Is Nothing Then
    With Sheets("checkouts").Range("A:A")
    Set rng = .Find(What:="", _
    After:=.Cells(.Cells.Count), _
    LookIn:=xlValues, _
    LookAt:=xlWhole, _
    SearchOrder:=xlByRows, _
    SearchDirection:=xlNext, _
    MatchCase:=False)

    rng.Cells(1, 1).Value = bookID
    rng.Cells(1, 2).Value = bookTitle
    rng.Cells(1, 3).Value = studentID

    rng.Cells(1, 4).Value = studentFirstName
    rng.Cells(1, 5).Value = studentLastName
    rng.Cells(1, 6).Value = Now()
    rng.Cells(1, 7).Value = Now() + checkoutDuration

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    Application.DisplayStatusBar = statusBarState
    Application.Calculation = calcState
    Application.EnableEvents = eventsState
    ActiveSheet.DisplayPageBreaks = displayPageBreaksState
    MsgBox ("Book successfully checked out")
    End With
    Else
    MsgBox ("This student has already checked out this book. Checkout failed.")
    End If
    End If
    End Sub

  23. Renju Kuriakose says:

    how can i change from Dollar to Saudi Riyal

  24. SAADULLAH says:

    GREAT HELP . THANKS

    THE WORD """DOLLARS""" AND """CENTS"""

    YOU CAN ALSO USE THE CURRENCY OF YOUR COUNTRY LIKE

    I USE................. """RUPEES""" AND """PAISA"""

    AND ITS WORKING FINE..............

    FOR PAKISTANI CURRENCY..............

  25. Beejay says:

    Very great. Kudos to all who contributed to this knowledge sharing medium. However, it can be improved upon by adding seperators in form of commas ','. For example, converting $1,500.00 into words would be 'One thousand five hundred dollars' rather than 'One thousand, five hundred dollars'.

  26. jessica says:

    Hi, how can I convert 1,547.50 into "One thousand five hundred forty seven and cents fifty only"?

  27. Ricardo Zavala says:

    I need help from some excel masters. I need excel convert from numbers like $1234.50 ...to text, but writing the cents in the form of 50/100 and word USD at the end...I would really apreciate somebody share this trick please.

  28. Anwar says:

    Hi! Thanks for the formula. It works, I have created the VB formula. But I Just need "Ten Thousand" rather than "Ten Thousand Dollors And None Cents?"

  29. VINAYAK says:

    FOR IN RUPEES CONVERTER ONLY NO PAISA

    USE ALT+F11
    AND INSERT FUNCTION GO MOUDEL
    PASTE THIS FORMULA

    Option Explicit
    'Main Function
    Function SpellNumber(ByVal MyNumber)
    Dim Rupees, 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, ".")
    If DecimalPlace > 0 Then
    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 Rupees"
    Case Else
    Rupees = Rupees & " Rupees"
    End Select
    SpellNumber = Rupees
    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

    AND THEN
    =CONCATENATE(TEXT((spellnumber(B19)),0)," Only")

    THANKING YOU
    VINAYAK(BF.TECH)

    • javed says:

      This macro coding is not working SO Is it possible please correct the coding. and forward on my Email Id.
      Thanks

  30. sam says:

    how to the change the format to Lakh & Crores instead of Million & Trillion

    • Samir says:

      I need your help,
      Please know me Lac & Croers formula,
      very urgent your co operation.
      Best Regards
      Samir.
      Dhaka.

  31. PABAN JAISWAL says:

    THANKS

  32. Mohammed Hussain says:

    DEAR FRIENDS, CAN I HAVE THE SAME THAT CAN AUTO SELECT CURRENCY ,,

    SOMETIME IT MAY BE IN USD, EUR, AED, SAR, KWD
    AND SO ON . SO HOW TO ENABLE THE FORMULA FOR MULTIPLE CURRENCY ..

    THANKS

  33. Mohammed Iftekhar Ahmed says:

    Dear
    We are working in Oman .SO can you please send us the VBA MICRO code for Oman Currency.We write omani currency in three decimal palce
    e.g 450.560 four hundred fifty Rials and five hundred sixty Baiza.
    Pease help me to convert nuemerical Omani currencyin word in excel.
    WITH REGARDS
    MOHAMMED IFTEKHAR AHMED

  34. thaipv says:

    You can also do it by my function :

    Option Explicit
    Option Base 0
    'Author: thaipv@live.com
    'Date: 30/11/2014
    'Reference: http://support.microsoft.com/kb/95640
    'More: http://www.techonthenet.com/excel/formulas/curr_to_words.php
    Function READNUMBER(ByVal CNUMBER, Optional UPPER As Boolean = True) As String
    Dim DIGIT, ATEEN, ATENS, PLACE(13), READ1__$, READ_23$, READ123$
    Dim NUMBER1 As Byte, NUMBER2 As Byte, NUMBER3 As Byte, V As Byte

    DIGIT = Array("", " one", " two", " three", " four", " five", " six", " seven", " eight", " nine")
    ATEEN = Array(" ten", " elevent", " twelve", " thirteen", " fourteen", " fifteen", " sixteen", " seventeen", " eighteen", " nineteen")
    ATENS = Array("", "", " twenty", " thirty", " forty", " fifty", " sixty", " seventy", " eighty", " ninety")
    PLACE(1) = " trillion,": PLACE(4) = " billion,"
    PLACE(7) = " million,": PLACE(10) = " thousand,"

    If Trim$(CNUMBER) = "" Then
    READNUMBER = ""
    ElseIf Not IsNumeric(CNUMBER) Then
    READNUMBER = "(ò_ó) Hmm, It is too embarrassing! XA can not read this number: " & "'" & CNUMBER & "'"
    ElseIf CNUMBER 10 ^ 15 Then
    READNUMBER = "(ò_ó) Hmm, It is too embarrassing! This number is too large to read."
    Else
    '// Doc dau am/duong cua so tien va xy ly so tien truoc khi doc//
    READNUMBER = IIf(Round(CNUMBER, 0) < 0, "minus", "")
    CNUMBER = Round(Abs(CNUMBER), 0): CNUMBER = "000000000000000" & CNUMBER
    CNUMBER = Replace$(CNUMBER, ",", ""): CNUMBER = Right$(CNUMBER, 15)

    '// Bat dau doc so //
    For V = 1 To 13 Step 3
    NUMBER1 = Mid$(CNUMBER, V, 1)
    NUMBER2 = Mid$(CNUMBER, V + 1, 1)
    NUMBER3 = Mid$(CNUMBER, V + 2, 1)
    READ123 = ""
    READ1__ = IIf(NUMBER1 = 0, "", DIGIT(NUMBER1) & " hundread")
    Select Case NUMBER2
    Case 0: READ_23 = DIGIT(NUMBER3)
    Case 1: READ_23 = ATEEN(NUMBER3)
    Case Else: READ_23 = ATENS(NUMBER2) & DIGIT(NUMBER3)
    End Select
    READ123 = READ1__ & READ_23
    READNUMBER = Trim$(READNUMBER & IIf(Len(READ123) = 0, "", READ123 & PLACE(V)))
    Next V

    '// Xu ly (nhung) dau phay (",") du thua va VIET HOA chu dau tien //
    READNUMBER = IIf(Right$(READNUMBER, 1) = ",", Left$(READNUMBER, Len(READNUMBER) - 1), READNUMBER)
    READNUMBER = IIf(UPPER = True, UCase$(Left$(READNUMBER, 1)) & Mid$(READNUMBER, 2), READNUMBER)
    End If
    End Function

  35. Mukto Ahmed says:

    I want to convert numeric value with word form without any currency.
    Pl help me

  36. Cathrine says:

    HI, im unable to understand and work the formula pls help..

  37. Anonymous says:

    great it worked for me perfectly

  38. Keshav Gupta says:

    By this Indian rupees and paise is not convert in words.Plz solve this problem.

  39. Vipin says:

    How to insert Rupees instead of Dollar and Paise instead of Cent in the outcome from above =spellnumber() function ?

  40. Anonymous says:

    in Indian Format (Excel Formula)

    =TRIM(IF(C6=1," Rupee","")&IF(C6>1," Rupees","")&IF(MOD(C6,10^15)>=(2*(10^14))," "&CHOOSE(FLOOR(MOD(C6,10^15)/10^14,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(C6,10^15),10^14)>=10^13," "&CHOOSE(FLOOR(MOD(MOD(C6,10^15),10^14)/10^13,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(C6,10^15)>=10^13," "&CHOOSE(FLOOR(MOD(C6,10^15)/10^13,1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(MOD(C6,10^15)>=10^13," Neel"," ")&IF(MOD(C6,10^13)>=(2*(10^12))," "&CHOOSE(FLOOR(MOD(C6,10^13)/10^12,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(C6,10^13),10^12)>=10^11," "&CHOOSE(FLOOR(MOD(MOD(C6,10^13),10^12)/10^11,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(C6,10^13)>=10^11," "&CHOOSE(FLOOR(MOD(C6,10^13)/10^11,1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(MOD(C6,10^13)>=10^11," Kharab"," ")&IF(MOD(C6,10^11)>=(2*(10^10))," "&CHOOSE(FLOOR(MOD(C6,10^11)/10^10,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(C6,10^11),10^10)>=10^9," "&CHOOSE(FLOOR(MOD(MOD(C6,10^11),10^10)/10^9,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(C6,10^11)>=10^9," "&CHOOSE(FLOOR(MOD(C6,10^11)/10^9,1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(MOD(C6,10^11)>=10^9," Arab"," ")&IF(MOD(C6,10^9)>=200000000," "&CHOOSE(FLOOR(MOD(C6,10^9)/10^8,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(C6,10^9),10^8)>=10^7," "&CHOOSE(FLOOR(MOD(MOD(C6,10^9),10^8)/10^7,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(C6,10^9)>=10^7," "&CHOOSE(FLOOR(MOD(C6,10^9)/10^7,1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(MOD(C6,10^9)>=10^7," Crore"," ")&IF(MOD(C6,10^7)>=2000000," "&CHOOSE(FLOOR(MOD(C6,10^7)/10^6,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(C6,10^7),10^6)>=10^5," "&CHOOSE(FLOOR(MOD(MOD(C6,10^7),10^6)/10^5,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(C6,10^7)>=10^5," "&CHOOSE(FLOOR(MOD(C6,10^7)/10^5,1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(MOD(C6,10^7)>=10^5," Lakh"," ")&IF(MOD(C6,10^5)>=20000," "&CHOOSE(FLOOR(MOD(C6,10^5)/10^4,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(C6,10^5),10^4)>=10^3," "&CHOOSE(FLOOR(MOD(MOD(C6,10^5),10^4)/10^3,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(C6,10^5)>=10^3," "&CHOOSE(FLOOR(MOD(C6,10^5)/10^3,1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(MOD(C6,10^5)>=10^3," Thousand"," ")&IF(C6>=10^2," "&CHOOSE(FLOOR(MOD(C6,10^3)/10^2,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),"")&IF(MOD(C6,10^3)>=10^2," Hundred"," ")&IF(MOD(C6,10^2)>=20," "&CHOOSE(FLOOR(MOD(C6,10^2)/10,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(C6,10^2),10)>=1," "&CHOOSE(FLOOR(MOD(MOD(C6,10^2),10),1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(C6,10^2)>=1," "&CHOOSE(FLOOR(MOD(C6,10^2),1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(AND(C6>0.99,MOD(RIGHT((ROUND(C6,2))*100,2),10^2)>0)," and","")&IF(MOD(RIGHT((ROUND(C6,2))*100,2),10^2)>0," Paise","")&IF(MOD(RIGHT((ROUND(C6,2))*100,2),10^2)>=20," "&CHOOSE(FLOOR(MOD(RIGHT((ROUND(C6,2))*100,2),10^2)/10,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(RIGHT((ROUND(C6,2))*100,2),10^2),10)>=1," "&CHOOSE(FLOOR(MOD(MOD(RIGHT((ROUND(C6,2))*100,2),10^2),10),1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(RIGHT((ROUND(C6,2))*100,2),10^2)>=1," "&CHOOSE(FLOOR(MOD(RIGHT((ROUND(C6,2))*100,2),10^2),1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(C6>0.01," Only",""))

  41. Anonymous says:

    in Million Format (Excel Formula)

    =TRIM(IF(C5>=10^14," "&CHOOSE(FLOOR(MOD(C5,10^15)/10^14,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),"")&IF(MOD(C5,10^15)>=10^14," Hundred"," ")&" "&IF(MOD(C5,10^14)>=2*10^13," "&CHOOSE(FLOOR(MOD(C5,10^14)/10^13,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(C5,10^14),10^13)>=10^12," "&CHOOSE(FLOOR(MOD(MOD(C5,10^14),10^13)/10^12,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(C5,10^14)>=10^12," "&CHOOSE(FLOOR(MOD(C5,10^14)/10^12,1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(MOD(C5,10^15)>=10^12," Trillion"," ")&" "&IF(C5>=10^11," "&CHOOSE(FLOOR(MOD(C5,10^12)/10^11,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),"")&IF(MOD(C5,10^12)>=10^11," Hundred"," ")&" "&IF(MOD(C5,10^11)>=2*10^10," "&CHOOSE(FLOOR(MOD(C5,10^11)/10^10,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(C5,10^11),10^10)>=10^9," "&CHOOSE(FLOOR(MOD(MOD(C5,10^11),10^10)/10^9,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(C5,10^11)>=10^9," "&CHOOSE(FLOOR(MOD(C5,10^11)/10^9,1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(MOD(C5,10^12)>=10^9," Billion"," ")&" "&IF(C5>=10^8," "&CHOOSE(FLOOR(MOD(C5,10^9)/10^8,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),"")&IF(MOD(C5,10^9)>=10^8," Hundred"," ")&" "&IF(MOD(C5,10^8)>=2*10^7," "&CHOOSE(FLOOR(MOD(C5,10^8)/10^7,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(C5,10^8),10^7)>=10^6," "&CHOOSE(FLOOR(MOD(MOD(C5,10^8),10^7)/10^6,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(C5,10^8)>=10^6," "&CHOOSE(FLOOR(MOD(C5,10^8)/10^6,1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(MOD(C5,10^9)>=10^6," Million"," ")&" "&IF(C5>=10^5," "&CHOOSE(FLOOR(MOD(C5,10^6)/10^5,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),"")&IF(MOD(C5,10^6)>=10^5," Hundred"," ")&" "&IF(MOD(C5,10^5)>=20000," "&CHOOSE(FLOOR(MOD(C5,10^5)/10^4,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(C5,10^5),10^4)>=10^3," "&CHOOSE(FLOOR(MOD(MOD(C5,10^5),10^4)/10^3,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(C5,10^5)>=10^3," "&CHOOSE(FLOOR(MOD(C5,10^5)/10^3,1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(MOD(C5,10^6)>=10^3," Thousand"," ")&IF(C5>=10^2," "&CHOOSE(FLOOR(MOD(C5,10^3)/10^2,1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),"")&IF(MOD(C5,10^3)>=10^2," Hundred"," ")&IF(MOD(C5,10^2)>=20," "&CHOOSE(FLOOR(MOD(C5,10^2)/10,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(C5,10^2),10)>=1," "&CHOOSE(FLOOR(MOD(MOD(C5,10^2),10),1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(C5,10^2)>=1," "&CHOOSE(FLOOR(MOD(C5,10^2),1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(C5=1," Dollar","")&IF(C5>1," Dollars","")&IF(AND(C5>0.99,MOD(RIGHT((ROUND(C5,2))*100,2),10^2)>0)," and","")&IF(MOD(RIGHT((ROUND(C5,2))*100,2),10^2)>=20," "&CHOOSE(FLOOR(MOD(RIGHT((ROUND(C5,2))*100,2),10^2)/10,1)+1,"","","Twenty","Thirty","Forty","Fifty","Sixty", "Seventy","Eighty","Ninety")&IF(MOD(MOD(RIGHT((ROUND(C5,2))*100,2),10^2),10)>=1," "&CHOOSE(FLOOR(MOD(MOD(RIGHT((ROUND(C5,2))*100,2),10^2),10),1)+1,"","One","Two","Three","Four","Five","Six", "Seven","Eight","Nine"),""),IF(MOD(RIGHT((ROUND(C5,2))*100,2),10^2)>=1," "&CHOOSE(FLOOR(MOD(RIGHT((ROUND(C5,2))*100,2),10^2),1)+1,"","One","Two","Three","Four","Five","Six","Seven", "Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen", "Eighteen","Nineteen"),""))&IF(MOD(RIGHT((ROUND(C5,2))*100,2),10^2)=1," Cent","")&IF(MOD(RIGHT((ROUND(C5,2))*100,2),10^2)>1," Cents",""))

  42. Anonymous says:

    In Indian Format you can convert up to neel rupee
    &
    In million format you can convert up to trillion dollar

    You can change your currency by find and replace rupee-paise or dollar-cent to any other currency
    Or
    You can also use it without any currency just find and replace rupee-paise or dollar-cent with blank (spacebar)

  43. aadil says:

    sir i got that formula and its works at once.but when i close excel and reopen then #name error comes and format formula has been out

  44. rich says:

    hi how will i convert 100.47 into "one hundred & 47/100 Only"

    i tried suggested response but all of them are not working did i missed something. can i have the detailed steps

    thank you

  45. Khushhal Togra says:

    Hi,

    I have an Problem. the Number convert into word the following example. I want (two lakh four hundred seventy four dollars and 24 Cents). Please help me.

    2,00,474.25
    Two Hundred Thousand Four Hundred Seventy Four Dollars and Twenty Five Cents

  46. TRUE USER says:

    sir i got that formula and its works at once.but when i close excel and reopen then #name error comes and format formula has been out

  47. jawanova says:

    I would like complete this using the formula only (no macro) and also have the text read the cents as "55/100 DOLLARS". So, for example, $7,547.55 = "SEVEN THOUSAND FIVE HUNDRED FORTY-SEVEN AND 55/100 DOLLARS" Can anyone help with that? I'd prefer not to use a macro, if possible.

  48. nauman says:

    I want amount 500.260 as " Five hundered Riyal and 260 Baisa Only" How can i get do it decimals till 3 digits and also in numeric.

  49. Michelle says:

    Thank you so much! Works like a charm!!!!!! (=spellnumber) - Just what the doctor ordered!

  50. naeem ali says:

    these formulas are not working

  51. Naeem Ali says:

    all formulas showing error

  52. Veronika says:

    Alexandre,
    Thank you for your help! This article is excellent!

    I have only one question. The formula is working perfect when I have the spreadsheet saved in my own hard disk, but when I save the file on my share drive the formula doesn't work. Is there any way to fix it?

  53. azhar siddique says:

    Greetings Sir.
    I want code for text of spell number in Indian Rupees and Paisas with shoing Rupees at start of text figure. for example

    1000.50 is to text as

    Rupees One Thousand and fifty paisas only.

    Thanks for your urgent reply

  54. Nousheer says:

    Hi Sir,

    Please send me formula for write only for the words without dollars ans cents

  55. Ashish Ranjan says:

    Hi!
    I still am not able to convert figures in words. Can you please send me the formula in excel sheet without any currency.
    Thanks

  56. Anon says:

    "Reverse conversion - English words into numbers

    Frankly, I can't imagine why you may need it. Just in case... :)"

    Thank you so much - this was exactly what we were looking for!!! Kudos!

  57. shamim says:

    Need this sample spellnumber, please help anybody me, for share spell number in my email, exp: 125000=Twelve milion five thousand this formula

  58. shamim says:

    (100000=one Million) need this formula (No need currency)

  59. sandip sutariya says:

    This is to inform you that I m using Ms office 7 . The issue is that when i use any amount in excel , it gets converted into words only in the file which i have saved it.

    When I open a new fle, it doesn't automatically accept it. I have to use the formula again in the new sheet to convert it. So, is there any setting in Ms office 7 that I can convert numbers into alphabetical while writing amount in excel in each and every file.

    For Eg:
    10000 - Ten Thousand.

    Plz help.

  60. Mesh says:

    I want to convert number to word in nepali format .But I don't know how to create formula in excel sheet.

  61. Mahafuz says:

    Hello. I want to calculate numeric to inward and linking in The Excel2010. How to possible please inform me by sending mail.

  62. Shukoor says:

    Very Very help full this method thank you very much

  63. Rowane says:

    Hi, I have made a slight change to the code and it allows me to spellnumber as eg.Two hundreds and Cents Thirteen Only. However, i am facing a problem when the amount turns out with 3 decimal places e.g. $200.137. I need the spell number to be $200.14 and not spelled as $200.13. Could you help? Thank you very much.

  64. Narsing Rao K says:

    Good evening Sir,
    How to Covert date of birth into worlds
    Exm: 02/02/1966
    Second february ninteen sixty six
    is any formula pl

  65. Fakharuddin Chowdhury says:

    In Indian currency format we write Rupees One crore ninety nine lac ninety nine thousand nine hundred ninety nine and ninety nine paisas. In your formula we need little change. Million, billion and trillion should be replaced with Lacs and Crores in proper places. Here is some tips:
    1 million = 10 lacs
    10 million = 1 crore.
    We can write lacs limited up to ninety nine lac but crore is ulimited up to some extent. E.g. 100 crores, 10000 crores etc.
    Can you please take some burden to upgrade your version for indian format. Thanks in advance.

  66. urvesh says:

    how to convert 1,342.50 in to words as per indian currency

  67. Nitesh Agarwal says:

    When I wrote =spellnumber(A2)

    It shows name error.

  68. Ali Khan says:

    How I can change numeric to word in rupees please solve my problem thanks

  69. Paras Sugandh says:

    I am from INDIA and i use my own Function. My currency is Rupees and Paise(coins)

    Function SPELL(amt As Variant) As Variant
    Dim FIGURE As Variant
    Dim FIGLEN As Integer
    Dim i As Integer, Iden(4) As String
    Dim WORDs(19) As String
    Dim tens(9) As String
    WORDs(1) = "One"
    WORDs(2) = "Two"
    WORDs(3) = "Three"
    WORDs(4) = "Four"
    WORDs(5) = "Five"
    WORDs(6) = "Six"
    WORDs(7) = "Seven"
    WORDs(8) = "Eight"
    WORDs(9) = "Nine"
    WORDs(10) = "Ten"
    WORDs(11) = "Eleven"
    WORDs(12) = "Twelve"
    WORDs(13) = "Thirteen"
    WORDs(14) = "Fourteen"
    WORDs(15) = "Fifteen"
    WORDs(16) = "Sixteen"
    WORDs(17) = "Seventeen"
    WORDs(18) = "Eighteen"
    WORDs(19) = "Nineteen"
    tens(2) = "Twenty"
    tens(3) = "Thirty"
    tens(4) = "Fourty"
    tens(5) = "Fifty"
    tens(6) = "Sixty"
    tens(7) = "Seventy"
    tens(8) = "Eighty"
    tens(9) = "Ninety"
    Iden(1) = "Crore"
    Iden(2) = "Lakh"
    Iden(3) = "Thousand"
    Iden(4) = "Hundred"
    FIGURE = amt
    FIGURE = Format(FIGURE, "FIXED")
    FIGLEN = Len(FIGURE)

    'Rupees/Rupee/Paise Indentifier
    If Val(Left(FIGURE, FIGLEN)) = 1 Then
    SPELL = "Rupee"
    ElseIf Val(Left(FIGURE, FIGLEN)) < 1 Then
    SPELL = "Paise"
    Else
    SPELL = "Rupees"
    End If

    '@@@@@@@@@ BIG LOOP @@@@@@@@@
    Do
    '##### Value Identifier #####
    Select Case FIGLEN
    Case 12, 10, 8, 5
    If Val(Left(FIGURE, 2)) = 1 Then
    SPELL = SPELL & " " & WORDs(Val(Left(FIGURE, 2)))
    ElseIf Val(Left(FIGURE, 2)) >= 20 And Val(Left(FIGURE, 2)) < 100 Then
    SPELL = SPELL & " " & tens(Val(Left(FIGURE, 1))) & " " & WORDs(Mid(FIGURE, 2, 1))
    End If
    Case 11, 9, 7, 6, 4
    SPELL = SPELL & " " & WORDs(Val(Left(FIGURE, 1)))
    End Select

    '##### Identor Identifier #####
    Select Case FIGLEN
    Case 12, 11
    SPELL = SPELL & " " & Iden(1)
    Case 10, 9
    SPELL = SPELL & " " & Iden(2)
    Case 8, 7
    SPELL = SPELL & " " & Iden(3)
    Case 6
    SPELL = SPELL & " " & Iden(4)
    Case 5, 4
    Exit Do
    End Select

    '##### For Next Case #####
    Select Case FIGLEN
    Case 12, 10, 8, 5
    FIGURE = Right(FIGURE, FIGLEN - 2)
    FIGLEN = Len(FIGURE)
    Case 11, 9, 7, 6
    FIGURE = Right(FIGURE, FIGLEN - 1)
    FIGLEN = Len(FIGURE)
    Case 4, 3
    Exit Do
    End Select

    If Val(Left(FIGURE, FIGLEN - 3)) = 0 Then Exit Do

    '@@@@@@@@ LOOP CONDITION @@@@@@@@
    Loop Until FIGLEN = 4

    '##### PAISE VALUE #####
    If Val(Right(FIGURE, 2)) = 1 Then
    SPELL = SPELL & " " & "and" & " " & WORDs(Val(Right(FIGURE, 2))) & " " & "Paise"
    ElseIf Val(Right(FIGURE, 2)) >= 20 And Val(Right(FIGURE, 2)) < 100 Then
    SPELL = SPELL & " " & "and" & " " & tens(Val(Left(Right(FIGURE, 2), 1))) & " " & WORDs(Right(FIGURE, 1)) & " " & "Paise"
    End If

    '##### ENDING WITH ONLY #####
    SPELL = SPELL & " " & "Only."

    End Function

    Try Function by typing without quotes "=UPPER(SPELL(A1))"

  70. Dharvender Rawat says:

    How to Use TRIM formula Please Help Me

  71. Mahir says:

    is ther eany way to dynamically change the currency depending on the currency format in the reference cell ..

  72. Michael Leng says:

    Ah...that's so good for share your such a cool informative method. It benefits for me to apply to my job.

    Although, I have been using Excel program for my office work, yet I think I still know it too little if compare to yours.

    Thanks,

  73. Purushottam Thapa says:

    Dear Sir
    I have been working in Oman and I Need the VBA code for Omani currency. First I would like to give some information.
    Currency name=Omani Rial
    1 Omani Rial=1000 Baiza
    So I need it in international system. I have been facing the problem like -1256475.256. how to spell after decimal sir? Please send me the vba code in my mail id-purushottamthapa568@gmail.com. I would you be very grateful .

  74. Purushottam Thapa says:

    Please sir help me to spell number to words in Omani rial.
    1 OMR=1000 Baiza
    so I need to change like this
    234.345
    I mean i need to spell 3 digit after decimal as Omani Rial is prounced like this.
    Thanks in advance.

  75. Mauro says:

    I wrote this.
    It works with numbers 0 Then
    Dim G(5, 3) As Integer
    For j = 1 To 5
    For k = 3 To 1 Step -1
    I = I / 10
    G(j, k) = (I - Int(I)) * 10
    I = Int(I)
    Next
    Next
    For j = 5 To 1 Step -1
    If G(j, 1) + G(j, 2) + G(j, 3) = 0 Then
    Else
    If G(j, 1) > 0 Then L$ = L$ & Words(G(j, 1)) & Words(30)
    If G(j, 2) = 1 Then
    L$ = L$ & Words(G(j, 3) + 10)
    Else
    L$ = L$ & Words(G(j, 2) + 20) & Words(G(j, 3))
    End If
    L$ = L$ & Words(j + 30)
    End If
    Next
    End If

    If D(1) = 1 Then
    F$ = Words(D(2) + 10)
    Else
    If D(1) > 0 Then F$ = F$ & Words(D(1) + 18)
    If D(2) > 0 Then F$ = F$ & Words(D(2))
    If D(1) = 0 And D(2) = 0 Then F$ = "no"
    End If

    NumToDol = Trim(L$) & " Dollars" & " and " & F$ & " Cents"
    End Function

  76. Mauro says:

    Sorry,the previous message was published incomplete.
    I retry to post it.

  77. Mauro says:

    It works with numbers big as 999.999.999.999.999,19

    For example
    137.895,19 results as
    One Hundred Thirty Seven Thousand Eight Hundred Ninety Five Dollars and Nineteen Cents

    Public Function NumToDol(N) As String

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

    I = Int(N)
    dd = Round(N - I, 2)
    Dim D(1 To 2)
    For j = 1 To 2
    dd = dd * 10
    D(j) = Int(dd)
    dd = dd - Int(dd)
    Next
    If I = 0 Then L$ = "Zero"
    If I > 0 Then
    Dim G(5, 3) As Integer
    For j = 1 To 5
    For k = 3 To 1 Step -1
    I = I / 10
    G(j, k) = (I - Int(I)) * 10
    I = Int(I)
    Next
    Next
    For j = 5 To 1 Step -1
    If G(j, 1) + G(j, 2) + G(j, 3) = 0 Then
    Else
    If G(j, 1) > 0 Then L$ = L$ & Words(G(j, 1)) & Words(30)
    If G(j, 2) = 1 Then
    L$ = L$ & Words(G(j, 3) + 10)
    Else
    L$ = L$ & Words(G(j, 2) + 20) & Words(G(j, 3))
    End If
    L$ = L$ & Words(j + 30)
    End If
    Next
    End If

    If D(1) = 1 Then
    F$ = Words(D(2) + 10)
    Else
    If D(1) > 0 Then F$ = F$ & Words(D(1) + 18)
    If D(2) > 0 Then F$ = F$ & Words(D(2))
    If D(1) = 0 And D(2) = 0 Then F$ = "no"
    End If

    NumToDol = Trim(L$) & " Dollars" & " and " & F$ & " Cents"
    End Function

  78. RONAK MANIYA says:

    I want to convert 11 into " ONE ONE ".
    12 into " ONE TWO " AND SO ON.
    It's possible or not????

  79. RONAK MANIYA says:

    IF ITS POSSIBLE THEN WHAT IS THE FORMULA????

  80. Ramki says:

    Hi Ronak,

    Follow the steps below to split the numbers you have mentioned and any other number.
    1. Highlight the column you want the numbers to be split.

    2. On the formula tab select Data and then select Text to columns. Step 1 of 3: Of the two option in the dialogue box select Fixed width and click on Next.
    3. Step 2 of 3:In the lower section of the dialogue box, Data preview, section place your cursor where you want the numbers to be split and click on Next.
    4. Step 3 of 3: Select "General" in the column data format section and in the Destination option select the cell you want the data to be split.
    When you click on Finish you will see the data split in the number of columns depending on the number of digits.
    Word of caution - The original data will no longer be available so if you need to see the data in its original form then retain the original column and split the numbers from a copied column next to the original to for verifying purposes.

    Regards.

  81. Aamir Anwar Lang says:

    Please use following formulas and change cell references according to your sheet and dont forget to add a 1-99 numbers and their words in sheet1 like A1=1,B1=One and up to 99. This works and dont need micros also.
    =CONCATENATE(IF(IF(QUOTIENT($A$3,10000000)0,VLOOKUP(QUOTIENT($A$3,10000000),Sheet1!$A$1:$B$99,2),"")"",CONCATENATE(IF(QUOTIENT($A$3,10000000)0,VLOOKUP(QUOTIENT($A$3,10000000),Sheet1!$A$1:$B$99,2),"")," Cror "),""),IF(IF(QUOTIENT(MOD($A$3,10000000),100000)0,VLOOKUP(QUOTIENT(MOD($A$3,10000000),100000),Sheet1!$A$1:$B$99,2),"")"",CONCATENATE(IF(QUOTIENT(MOD($A$3,10000000),100000)0,VLOOKUP(QUOTIENT(MOD($A$3,10000000),100000),Sheet1!$A$1:$B$99,2),"")," Lac "),""),IF(IF(QUOTIENT(MOD($A$3,100000),1000)0,VLOOKUP(QUOTIENT(MOD($A$3,100000),1000),Sheet1!$A$1:$B$99,2),"")"", CONCATENATE(IF(QUOTIENT(MOD($A$3,100000),1000)0,VLOOKUP(QUOTIENT(MOD($A$3,100000),1000),Sheet1!$A$1:$B$99,2),"")," Thousand "),""),IF(IF(QUOTIENT(MOD(MOD($A$3,100000),1000),100)0,VLOOKUP(QUOTIENT(MOD(MOD($A$3,100000),1000),100),Sheet1!$A$1:$B$99,2),"")"",CONCATENATE(IF(QUOTIENT(MOD(MOD($A$3,100000),1000),100)0,VLOOKUP(QUOTIENT(MOD(MOD($A$3,100000),1000),100),Sheet1!$A$1:$B$99,2),"")," Hundred "),""),IF(MOD(MOD(MOD($A$3,100000),1000),100)0,VLOOKUP(MOD(MOD(MOD($A$3,100000),1000),100),Sheet1!$A$1:$B$99,2)))

  82. Aamir Anwar Lang says:

    =CONCATENATE(IF(IF(QUOTIENT($A$3,10000000)0,VLOOKUP(QUOTIENT($A$3,10000000),Sheet1!$A$1:$B$99,2),"")"",CONCATENATE(IF(QUOTIENT($A$3,10000000)0,VLOOKUP(QUOTIENT($A$3,10000000),Sheet1!$A$1:$B$99,2),"")," Cror "),""),IF(IF(QUOTIENT(MOD($A$3,10000000),100000)0,VLOOKUP(QUOTIENT(MOD($A$3,10000000),100000),Sheet1!$A$1:$B$99,2),"")"",CONCATENATE(IF(QUOTIENT(MOD($A$3,10000000),100000)0,VLOOKUP(QUOTIENT(MOD($A$3,10000000),100000),Sheet1!$A$1:$B$99,2),"")," Lac "),""),IF(IF(QUOTIENT(MOD($A$3,100000),1000)0,VLOOKUP(QUOTIENT(MOD($A$3,100000),1000),Sheet1!$A$1:$B$99,2),"")"", CONCATENATE(IF(QUOTIENT(MOD($A$3,100000),1000)0,VLOOKUP(QUOTIENT(MOD($A$3,100000),1000),Sheet1!$A$1:$B$99,2),"")," Thousand "),""),IF(IF(QUOTIENT(MOD(MOD($A$3,100000),1000),100)0,VLOOKUP(QUOTIENT(MOD(MOD($A$3,100000),1000),100),Sheet1!$A$1:$B$99,2),"")"",CONCATENATE(IF(QUOTIENT(MOD(MOD($A$3,100000),1000),100)0,VLOOKUP(QUOTIENT(MOD(MOD($A$3,100000),1000),100),Sheet1!$A$1:$B$99,2),"")," Hundred "),""),IF(MOD(MOD(MOD($A$3,100000),1000),100)0,VLOOKUP(MOD(MOD(MOD($A$3,100000),1000),100),Sheet1!$A$1:$B$99,2)))

  83. Mark says:

    Please send me a formula.
    i'm using Microsoft 2010.
    hoping for your immediate reply.

    Thank you,

  84. Mark says:

    Please send me a formula for the number to word.
    i'm using Microsoft 2010.
    hoping for your immediate reply.

    Thank you,

  85. dilshad says:

    I convert degree s for student therfore I want to appear only the word with out any other add.
    ex: 0 appear zero
    no thing appear no thing
    41 appear forty one

  86. Senay Fitsum says:

    Thank u very much it's works perfectly nice job.

  87. chan says:

    Hi,
    is it possible to get this formula for use in french.

    Great job

    Regards

  88. Arsalan says:

    There IS An Error In Formula

  89. Bharathningappa says:

    Dear sir/Madam
    Kindly request to send excel file - to convert numbers to words in Excel

  90. SAJID says:

    PLZ GIVE ME SHORT FORMULA CONVERT NUMBER INTO WORD I CAN'T UNDERSTANDING THE FUNCTION OF THIS PROCEDURE

  91. Adedoja Olusegun says:

    Pls I need the formula on how to convert figures to words in Nigeria currency. Thanks

  92. Guard Muparadzi says:

    Great thanks. This is awesome.

  93. Gaurav says:

    Vinayak There is A Bug in the Module you have pasted request you to pls send me the Revised VBA if possible

    Thanks...

  94. susindran says:

    Dear Friends,

    Requesting you, kindly share the any worked excel sheet to me.
    i need the how to change the number to words, becoz i want to create the new manual invoice sheet. any time i want to change the value in number and words also.

    kindly do needful

  95. Bipul das says:

    For Indian

    Option Explicit
    Dim iLoop ' For Lacs

    '****************' Main Function *'****************
    Public Function SpellNumber(ByVal MyNumber)
    Dim Rupees, Paisas, Temp
    Dim DecimalPlace, Count
    ReDim Place(9) As String
    Place(2) = " Thousand "
    Place(3) = " Lacs " '
    Place(4) = " Crores "
    Place(5) = " Trillion "
    MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none
    ' Expand the logic to 999 crores from 9 lacs
    If (MyNumber > 999999999.99) Then
    'If (MyNumber > 999999.99) Then
    SpellNumber = "Digit excced Maximum limit"
    Exit Function
    End If
    DecimalPlace = InStr(MyNumber, ".")
    'Convert Paisas and set MyNumber to rupees amount
    If DecimalPlace > 0 Then
    Paisas = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
    MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    End If
    Count = 1
    Dim iTemp As Integer
    Do While MyNumber ""
    If (Count >= 2) Then
    iTemp = Right(MyNumber, 2)
    Else
    If (Len(MyNumber) = 2) Then
    iTemp = Right(MyNumber, 2)
    ElseIf (Len(MyNumber) = 1) Then
    iTemp = Right(MyNumber, 1)
    Else
    iTemp = Right(MyNumber, 3)
    End If
    End If
    If iTemp > 99 Then
    iTemp = Right(MyNumber, 3)
    Temp = GetHundreds(iTemp)
    ElseIf iTemp 9 Then
    iTemp = Right(MyNumber, 2)
    Temp = GetTens(iTemp)
    ElseIf iTemp < 10 Then
    iTemp = Right(MyNumber, 2)
    Temp = GetDigit(iTemp)
    End If
    'end if
    If Temp "" Then
    Rupees = Temp & Place(Count) & Rupees
    End If
    'If Len(MyNumber) > 3 Then
    If Count = 2 Then
    If Len(MyNumber) = 1 Then
    MyNumber = ""
    Else
    MyNumber = Left(MyNumber, Len(MyNumber) - 2)
    End If
    ElseIf Count = 3 Then
    If Len(MyNumber) >= 3 Then
    MyNumber = Left(MyNumber, Len(MyNumber) - 2)
    Else
    MyNumber = ""
    End If
    ElseIf Count = 4 Then
    MyNumber = ""
    Else
    If Len(MyNumber) <= 2 Then
    MyNumber = ""
    Else
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    End If
    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 Paisas
    Case ""
    Paisas = ""
    Case "One"
    Paisas = " and One Paisa"
    Case Else
    Paisas = " and " & Paisas & " Paisas"
    End Select
    SpellNumber = Rupees & Paisas & " Only"
    iLoop = 0
    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
    If (iLoop > 0) Then
    Result = GetDigit(Mid(MyNumber, 1, 1)) & " Lac "
    iLoop = 0
    Else
    Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
    iLoop = iLoop + 1
    End If
    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

  96. Bipul das says:

    =SpellNumber(...)

  97. prakash says:

    48,683.00

  98. yidnek says:

    could you please send me the copy of these excel sheet please ,as soon as possible , please please

  99. AK says:

    How can I change Dollars to US Dollars?

  100. Umer says:

    Sir, How can i convert dollar into Rupees and cent Into paisa in SpellNumber. I mean i want to change numeric value into words in pakistani currency. Kindly guide.
    Your early response must be appreciated

  101. Albert says:

    Beautiful!!!!

    Thank you for posting and making it so easy to implement. Really helped out in a crunch.

  102. Irfan says:

    Please send me same excel sheet with formula,

  103. Thangamani says:

    This one how do the amount currency change?

  104. Jolyn says:

    Hi,
    Can i have a copy of the formula in excel for the converted value, please ?

  105. Ali Mehran Wafai says:

    Thank You So Much :)

  106. Salman says:

    If you want only integers to be spelled no decimals.. here is the code

    Option Explicit
    'Main Function
    Function SpellNumber(ByVal MyNumber)
    Dim Rupees, Paisas, 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 Paisas and set MyNumber to Rupee amount.
    If DecimalPlace > 0 Then
    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
    SpellNumber = Rupees
    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

    "Ctrl+H" and replace "Rupees & Rupee" to your respective currency

  107. SIKANDAR GHODESHWAR says:

    Sir,

    Please send details of excel sheet in permanent add for automatically spellnumber on MS excel- 2007.

    Thanking you

  108. Saiful Islam says:

    Dear Stephen,
    please send me excel sheet for
    converting same

  109. vampire says:

    I have a lot of city name and code

    Example
    i type a code 001 At Cell (A1) - spell Number will show (american) at the another sheet
    i type a code 002 At Cell (A1) Also - spell Number will show (african) at the another sheet and so on... I have a lot of city name to make it, please help me

    Thanks

  110. sultan says:

    Dear Kindly let me know in dirham how to change spellnum in dirham

  111. Bicky kumar says:

    Dear Stephen,

    please send me excel sheet for converting same Pls

    thanks

  112. ravi says:

    please suggest me how to use spellnumber in excel ,i fallowed your steps as u say ,the results came" #name?,",like that,so plz show me right usage .....

  113. Vishal Patel says:

    i want number to ward in rupees and due to this formula it comes into dollars, than what's the step for it..............

  114. Raj Kumar says:

    Hi Sir,

    I am very much need the program that convert the numbers in to English words in excel 2007.(Ex: 11- One One, 20- Two Zero, 21-Two Zero like that)
    Please send me the solution for above querry,

    it is very much urgent..
    thank you very much..

  115. jansen says:

    i use the module, but our central bank required us to put a "ONLY" word in the end of the Check. how can i do this?

  116. Richard Robertson says:

    Please the code to convert amount to words is excellent, only i think there's something missing. after the code is pasted in Excel Module, and you key-in 420, the result that comes is: Four Hundred Twenty Dollars and No Cents. But am expecting Four Hundred and Twenty Dollars and No Cents. This means the an "and" is missing in-between Hundred and twenty. Thank you and looking forward to hear from you soon.

  117. Puvanah says:

    Can i get modules for spellnumbers in words with cents. I have those modules with currency. But i'm using multi currencies so i don't want modules with currencies. Please help email me the modules which i request. Urgent. Please and Thanks.

    Regards,
    Puvanah

  118. MN says:

    How can we split the amount in words into 2 lines in case 1 line is not enough to accommodate the amount in words? This is needed when printing on pre-printed cheque leaves.

    Can anyone please help on the above?

  119. Aklanka says:

    Dear . Alexander Frolov
    Thanks for the formula, its works nicely

  120. Abu Sayed kazi says:

    Dear Sir please send me the copy of these excel sheet please ,as soon as possible , please please

  121. KCraton says:

    Thank you! Copied and pasted the module, saved my file as an .xlm and bada-boom!

  122. sunil kumar yadav says:

    how to delete the rows using check bos in excel.

  123. RAZAK says:

    Working done ,
    after save i close this file again open try modify and try change then its showing error

  124. Daniel Kwame Dadzie says:

    Hi all,
    Can someone assist me to write
    1020 as one thousand and twenty not one thousand twenty please.
    Thank you in advance

  125. Boss says:

    What if I would like to put a special name?
    ex. for 100 will be "clint"

    Therefore,
    100 = Clint
    150 = Clint Fifthy
    123 = Clint Twenty Three
    etc..

    NB: Only for "100"

  126. ASIF KHAN says:

    It is very simple to convert dollar into your currency for example if you have a Rupee go to Module (micro-soft visual basic) enter Ctrl + R just replace dollar and cent with your currency.

    Thanks for more details kindly contact on my email. asifashraf930@gmail.com

  127. Beth says:

    Please send me the excel sheet for converting dollars to words. I tried to paste from an earlier Spellnumber post using VBA but I get a #Name error.

    Thank you.

    • The VBA code from the example above works perfectly when we try it. Please, repeat the steps from the tutorial making sure that you paste the code without losing any lines, and save your document in the proper way as it is described. If this still doesn't help, try our add-in. If the error won't disappear, send us your workbook and the link to this article and your comment to support@ablebits.com.

  128. tanjil says:

    Dear sir, please how to make wordstodigit formula details

  129. Amal says:

    Very useful and clear explanation. 5 Star:D
    Thank you for sharing this information with us.

  130. Rohit says:

    Thnks for ur help. Its been a pleasure to have guidance.

  131. JB says:

    I have follwed your instruction & But still the error as #Name is apprearing on the spell number formula. please help

  132. Srinivas says:

    Please send me also

  133. Thu Hien Nguyen says:

    Please kindly send me the formula also.
    Many thanks.

Post a comment



Unfortunately, due to the volume of comments received we cannot guarantee that we will be able to give you a timely response. When posting a question, please be very clear and concise. We thank you for understanding!
Excel add-ins and Outlook tools - Ablebits.com
Ultimate Suite for Excel Professionals
 
 
50+ professional tools for Excel 2016-2007 to do your daily work
Incredible product, even better tech support…AbleBits totally delivers!
Deborah Bryant
Anyone who works with Excel is sure to find their work made easier
Jackie Lee
The best spent money on software I've ever spent!
Patrick Raugh
Ablebits is a fantastic product - easy to use and so efficient.
Debra Celmer
Excel is at its best now
Annie C.
I don't know how to thank you enough for your Excel add-ins
Jennifer Morningstar
Anybody who experiences it, is bound to love it!
Kumar Nepa
AbleBits suite has really helped me when I was in a crunch!
Nelda Fink
I have enjoyed every bit of it and time am using it
Christian Onyekachi Nwosu
It's the best $100 we've ever spent!
Mike Cavanagh
I love the program, and I can't imagine using Excel without it!
Robert Madsen
One word… WOW!
Dave Brown
Love the products!
David Johnston
It is like having an expert at my shoulder helping me…
Linda Shakespeare
Your software really helps make my job easier
Jeannie C.
Thanks for a terrific product that is worth every single cent!
Dianne Young
I love your product
Brad Gibson
Awesome!!!
Sheila Blanchard