How to Convert Currency to Words in Excel – 2 Easy Methods

In the following dataset there are several amounts that you want to convert to words.

Sample Dataset to Convert Currency to Words in Excel


Method 1 – Creating a User-Defined Function Using VBA

Step 1: Create a Function in a VBA Module

  • Go to the Developer tab > Code > Visual Basic.
    You can also press Alt+F11 to launch the VBA window.
    Launching VBA windowThe Microsoft Visual Basic for Applications window will open.
  • In the VBA window, go to Insert tab > Module.
    insert module
  • Enter the VBA code below in the module window:
    Function SpellNumber(ByVal GivenCurrency)
    Dim USD, C
    Words = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
    GivenCurrency = Trim(Str(GivenCurrency))
    FractionCurrency = InStr(GivenCurrency, ".")
    If FractionCurrency > 0 Then
    C = TensPlace(Left(Mid(GivenCurrency, FractionCurrency + 1) & "00", 2))
    GivenCurrency = Trim(Left(GivenCurrency, FractionCurrency - 1))
    End If
    GetIndex = 1
    Do While GivenCurrency <> ""
    GetHundred = ""
    GetValue = Right(GivenCurrency, 3)
    If Val(GetValue) <> 0 Then
    GetValue = Right("000" & GetValue, 3)
    If Mid(GetValue, 1, 1) <> "0" Then
    GetHundred = OnesPlace(Mid(GetValue, 1, 1)) & " Hundred "
    End If
    If Mid(GetValue, 2, 1) <> "0" Then
    GetHundred = GetHundred & TensPlace(Mid(GetValue, 2))
    Else
    GetHundred = GetHundred & OnesPlace(Mid(GetValue, 3))
    End If
    End If
    If GetHundred <> "" Then
    USD = GetHundred & Words(GetIndex) & USD
    End If
    If Len(GivenCurrency) > 3 Then
    GivenCurrency = Left(GivenCurrency, Len(GivenCurrency) - 3)
    Else
    GivenCurrency = ""
    End If
    GetIndex = GetIndex + 1
    Loop
    Select Case USD
    Case ""
    USD = "No USD"
    Case "One"
    USD = "One Dollar"
    Case Else
    USD = USD & " USD"
    End Select
    Select Case C
    Case ""
    C = " and No C"
    Case "One"
    C = " and One Cent"
    Case Else
    C = " and " & C & " C"
    End Select
    SpellNumber = USD & C
    End Function
    Function TensPlace(TensDigit)
    Dim Output As String
    Output = ""
    If Val(Left(TensDigit, 1)) = 1 Then
    Select Case Val(TensDigit)
    Case 10: Output = "Ten"
    Case 11: Output = "Eleven"
    Case 12: Output = "Twelve"
    Case 13: Output = "Thirteen"
    Case 14: Output = "Fourteen"
    Case 15: Output = "Fifteen"
    Case 16: Output = "Sixteen"
    Case 17: Output = "Seventeen"
    Case 18: Output = "Eighteen"
    Case 19: Output = "Nineteen"
    Case Else
    End Select
    Else
    Select Case Val(Left(TensDigit, 1))
    Case 2: Output = "Twenty "
    Case 3: Output = "Thirty "
    Case 4: Output = "Forty "
    Case 5: Output = "Fifty "
    Case 6: Output = "Sixty "
    Case 7: Output = "Seventy "
    Case 8: Output = "Eighty "
    Case 9: Output = "Ninety "
    Case Else
    End Select
    Output = Output & OnesPlace(Right(TensDigit, 1))
    End If
    TensPlace = Output
    End Function
    Function OnesPlace(OnesDigit)
    Select Case Val(OnesDigit)
    Case 1: OnesPlace = "One"
    Case 2: OnesPlace = "Two"
    Case 3: OnesPlace = "Three"
    Case 4: OnesPlace = "Four"
    Case 5: OnesPlace = "Five"
    Case 6: OnesPlace = "Six"
    Case 7: OnesPlace = "Seven"
    Case 8: OnesPlace = "Eight"
    Case 9: OnesPlace = "Nine"
    Case Else: OnesPlace = ""
    End Select
    End Function
  • Click Save.
    Inserting code
  • In Save As, select Excel Macro-Enabled Workbook in Save as type > Save.
    Save Excel as .xlsm Format to Convert Currency to Words in Excel

A new function: SpellNumber was created.

Step 2: Apply the User Defined Function

  • Go back to the workbook and select a blank cell.
  • In B5, enter the formula: =SpellNumber(B5).
  • Press Enter.
    The currency will be converted to words.
    Inserting function
  • Drag down the Fill Handle.
    Drag Fill Handle Downward

All currency amounts will be converted into words.

Converted Currency to Words in Excel


Method 2 – Applying an Excel Formula

Only the integers are correctly converted. Decimal conversion can result in errors.

  • In B5, enter the formula:

=IF(OR(LEN(FLOOR(B5,1))=13,FLOOR(B5,1)<=0),"Out of range",PROPER(SUBSTITUTE(CONCATENATE(CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),1,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),2,1)+1,"",CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),3,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),IF(VALUE(MID(TEXT(INT(B5),REPT(0,12)),2,1))>1,CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),3,1)+1,"","-one","-two","-three","-four","-five","-six","-seven","-eight","-nine"),IF(VALUE(MID(TEXT(INT(B5),REPT(0,12)),2,1))=0,CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),3,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")),IF(B5>=10^9," billion ",""),CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),4,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),5,1)+1,"",CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),6,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),IF(VALUE(MID(TEXT(INT(B5),REPT(0,12)),5,1))>1,CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),6,1)+1,"","-one","-two","-three","-four","-five","-six","-seven","-eight","-nine"),IF(VALUE(MID(TEXT(INT(B5),REPT(0,12)),5,1))=0,CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),6,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")),IF(VALUE(MID(TEXT(INT(B5),REPT(0,12)),4,3))>0," million ",""),CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),7,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),8,1)+1,"",CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),9,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),IF(VALUE(MID(TEXT(INT(B5),REPT(0,12)),8,1))>1,CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),9,1)+1,"","-one","-two","-three","-four","-five","-six","-seven","-eight","-nine"),IF(VALUE(MID(TEXT(INT(B5),REPT(0,12)),8,1))=0,CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),9,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")),IF(VALUE(MID(TEXT(INT(B5),REPT(0,12)),7,3))," thousand ",""),CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),10,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),11,1)+1,"",CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),12,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),IF(VALUE(MID(TEXT(INT(B5),REPT(0,12)),11,1))>1,CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),12,1)+1,"","-one","-two","-three","-four","-five","-six","-seven","-eight","-nine"),IF(VALUE(MID(TEXT(INT(B5),REPT(0,12)),11,1))=0,CHOOSE(MID(TEXT(INT(B5),REPT(0,12)),12,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")))," "," ")&IF(FLOOR(B5,1)>1,"",""))&IF(ISERROR(FIND(".",B5,1)),""," "&PROPER(IF(LEN(LEFT(TRIM(MID(SUBSTITUTE(Sheet1!B5,".",REPT(" ",255)),255,200)),2))=1,CHOOSE(1*LEFT(TRIM(MID(SUBSTITUTE(Sheet1!B5,".",REPT(" ",255)),255,200)),2),"ten","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety")&"","")&CONCATENATE(CHOOSE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE(Sheet1!B5,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),11,1)+1,"",CHOOSE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE(Sheet1!B5,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),12,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen")&"","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),IF(VALUE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE(Sheet1!B5,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),11,1))>1,CHOOSE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE(Sheet1!B5,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),12,1)+1,"","-one","-two","-three","-four","-five","-six","-seven","-eight","-nine")&"",IF(LEFT(TRIM(MID(SUBSTITUTE(Sheet1!B5,".",REPT(" ",255)),255,200)),2)="01","one cent",IF(LEFT(TRIM(MID(SUBSTITUTE(Sheet1!B5,".",REPT(" ",255)),255,200)),1)="0",CHOOSE(MID(TEXT(INT(LEFT(TRIM(MID(SUBSTITUTE(Sheet1!B5,".",REPT(" ",255)),255,200)),2)),REPT(0,12)),12,1)+1,"","one","two","three","four","five","six","seven","eight","nine")&"","")))))))

  • Press Enter. Integer numbers were converted to words.
    Using Formula to Convert Currency to Words in Excel
  • Drag down the Fill Handle.
    Drag Fill Handle Downward

All amounts will be converted to words.

Converted Currency to Words


Download Practice Workbook

Download the practice workbook.


Frequently Asked Questions

Can I customize the VBA code to meet specific styling requirements?

The VBA code can be customized to suit specific styling requirements or additional formatting needs.

Can I use this method for different currencies and locales?

Yes, you will have to modify the VBA code or localization settings.


<< Go Back to Currency Format | Number Format | Learn Excel

Get FREE Advanced Excel Exercises with Solutions!
Tanjim Reza
Tanjim Reza

Md. Tanjim Reza Tanim, a BUET graduate in Naval Architecture & Marine Engineering, contributed over one and a half years to the ExcelDemy project. As an Excel & VBA Content Developer, he authored 100+ articles and, as Team Leader, reviewed 150+ articles. Tanim, leading research, ensures top-notch content on MS Excel features, formulas, solutions, tips, and tricks. His expertise spans Microsoft Office Suites, Automating Finance Templates, VBA, Python, and Developing Excel Applications, showcasing a multifaceted commitment to the... Read Full Bio

2 Comments
  1. extremely useful!

    • Hi Bernadeth,

      Thanks for your appreciation. To get more useful content kindly visit our site.

      Thanks
      Regards
      ExcelDemy

Leave a reply

Advanced Excel Exercises with Solutions PDF

 

 

ExcelDemy
Logo