*In this article I will show you two quick and free ways to convert currency numbers into English words in Excel 2016, 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.

Even Excel 2016 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

`=text()`

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

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.

- Open the workbook where you need to spell the numbers.
- Press Alt+F11 to open the Visual Basic editor window.
- 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).
- In the editor menu go to
*Insert*->*Module*.

- You should see a window named YourBook - Module1. Select all of the code in the frame below and paste it to this window.

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

- 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*"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*".

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.

Here you can see the result:

**Voila!**

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:

Left-click and drag it across the column to fill in the formula. Release the button to see the results:

You can also enter the number directly into the function, for example,

`=SpellNumber(29.95)`

(29.95 - without quotation marks and the Dollar sign).
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.

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.

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.

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.

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.

Excel formulas
Excel functions
Vlookup in Excel
Merge data in Excel
SumIf
Excel CountIf
Excel Compare
Excel If statement
Excel Charts
Pivot Table
Updates
Excel conditional formatting
Excel formatting
Excel time
Excel duplicates
Excel date
Excel tips
Excel macro
Outlook
Google Sheets
Outlook duplicates
Outlook templates

## 311 Responses to "Two best ways to convert numbers to words in Excel"

please provide sample video

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

when i copy and paste this, it gives me errors, what am i doing wrong?

how can i convert numbers to words for Peso

replace lng mam yung dollars nang pesos (control+h) tapos replace all lng..

dollars to pesos

dollar to peso

I keep getting a syntax error

Do While MyNumber ""

Temp = GetHundreds(Right(MyNumber, 3))

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

Dear, this is to update you that the formula is not working perfectly. See the response that I am getting:->

For Kuwaiti Dinars

for KD 122.050 I got: One Hundred Twenty Two Kuwait Dinar and Five fils

the correct answer has to be: One Hundred Twenty Two Kuwait Dinar and Fifty fils

What to change now

look at the figure, it says .05 and not .50, the result is correct it seems the figure is point zero five, therefore the result should be five instead of fifty

the issue is to replace the separator from "." to "," in the number or in the formula from:

MyNumber = Trim(Str(MyNumber))

DecimalPlace = InStr(MyNumber, ".")

to:

MyNumber = Trim(Str(MyNumber))

DecimalPlace = InStr(MyNumber, ",")

I am getting a value like this :Four Hundred Eighty Dollars and Seventy One Cents. Instead of Dollars I want to have it in Kuwaiti Dinars and fills.

Pls help me

I Was looking for him a lot, This formula hit is very good working on any Currency,

i am very happy thank you very much sir, Great job, May Allah bless you.😊😘💕😘💕😘💕😘💕

Assalam -o- Alaikum

My dear brother i want to convert a mathematical digits in english words without any currency like as

564 Five Hundred and Sixty Four

what i do now please help me as soon as possible

i have to prepare Result Cards

This formula is very good working on any Currency..

Thank you Sir for sharing this formula. It's help me a lot! I really appreciate that. Thanks again.

help me naman po pano mag convert numbers to words sa excell for cheque please ..

Thank you for this.

However, this was noticed.

For example, i tried to spell 450,750.34

Four Hundred Fifty Thousand Seven Hundred Fifty Dollars and Thirty Four Cents

In my country, we spell like this

Four Hundred and Fifty Thousand, Seven Hundred and Fifty Dollars, Thirty Four Cents

Can you please help me tweak the VBA code to have this new result.

did u got that code? i need it too

How can I download vba code to my phone?

i just want the wording not any currency. what should i do?

Thank you Bro....

Hi, can i have the code without dollars and cents, E.g.

Four Million Six Hundred Three Thousand Four Hundred Twenty Two

Hi,

Could you tell me the code where I can mention "and" before the last figures e.g. Rs 1,987,290 (Rupees one million nine Hundred eighty seven thousand two hundred and ninety only)

Thanks you very much....

SIMPLE, LOL, YOUR MACROS WORKED FIRST TIME, NO PROBLEMS, ONLY REQUEST IS FOR A CHANGE TO 00/00...01/00...03/00 AND SO ON INSTEAD OF CENTS, GOT YOURS TO WORK 00/00 AND 01/00 TO WORK, BUT AFTER THAT, ALL IS TEXT /00. SO I DELETED CENTS ALL TOGETHER TILL I GET THE CORRECT MACROS FOR THE OO/00 TO 99/00, PLEASE AND THANKS

I need the answer for this

when i copy and paste this, it gives me errors, what am i doing wrong?

Hi, Can please I have the code without dollars and cents? thanks

Hey Mike!

do you get the code without dollars and cents

i also need this code

if you get this code please send me

i have really need this code

It working very well. Thank's

Thanks for authentic codes. It works where codes from Microsoft gave an error message.

Best wushes!

Regards,

Thank you for this wonderful Module. Take care.

tried it and it worked:

$866.96 Eight Hundred Sixty Six Dollars and Ninety Five Cents

$866.955 Eight Hundred Sixty Six Dollars and Ninety Five Cents

but it does not round up.

it is supposed to be :

Eight Hundred Sixty Six Dollars and Ninety Six Cents

Please advise.

please disregard the previous comment. the code is working fine.

i just need to use the roundup function in excel.

You are a genius, thank you, I had the exact same problem.

Hello. I am wanted to enter the numbers 1 - 4 in each individual cell in an entire column. Once i insert the number and push ENTER, i want a text to replace the number based on which text i attach to that number. For example. The text for 1 is "Shut", i insert one into the cell and hit enter and it changes the value 1 to "shut

thanks brother

Why do I keep on getting #Name? Send Help please

How To convert 48000 RS in English word in M S Excle

Hi,

I need to convert a number with three digits after the decimal point, for example:

122,145 --> one hundred twenty two dollars one hundred forty five cents.

Thank you in advance.

Hi,I need the number without the code of dollers and cents,thanks

Hello, the code is great! I'm using to print checks, so I need to add the word "only" at the end of the spelled number (ie twenty one dollars only). How can I achieve this?

Hi,

I'd like to convert in this format

P151.50 = One Hundred Fifty-One & 50/100 only

Thanks,

UPDATE

I was able to solve this but works only on Windows 8, 8.1, & 10 Machines only

here is the code

Option Explicit

'****************' Main Function *'****************

Function SpellNumber(ByVal MyNumber)

Dim Pesos, Cents, 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 cents and set MyNumber to Peso amount

If DecimalPlace > 0 Then

Cents = Right(MyNumber, 2)

MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))

End If

Count = 1

Do While MyNumber ""

Temp = GetHundreds(Right(MyNumber, 3))

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

If Len(MyNumber) > 3 Then

MyNumber = Left(MyNumber, Len(MyNumber) - 3)

Else

MyNumber = ""

End If

Count = Count + 1

Loop

Select Case Pesos

Case ""

Pesos = "No Pesos"

Case "One"

Pesos = "One Peso"

Case Else

Pesos = Pesos & " Pesos"

End Select

Select Case Cents

Case ""

Cents = " Only"

Case "1"

Cents = " & .1/100 Cent Only"

Case Else

Cents = " & " & (Cents) & "/100 Only"

End Select

SpellNumber = Pesos & Cents

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

Sub test()

Dim number As Double

number = Range("A1").Value

Range("A2").Value = SpellNumber(number)

End Sub