Disclosure: This post may contain affiliate links, meaning when you click the links and make a purchase, we receive a commission.

How to Convert Number to Words in Excel (4 Suitable Ways)

Spreadsheets are used by many people in their daily jobs, making them an important element of their office. While the majority of people use spreadsheets in a reasonably basic manner, some advanced users find it difficult or complicated to convert number to words in Excel. In this guide, we have addressed this issue and provided four different methods to convert number to words in Excel. Furthermore, there are three more methods for converting numbers into text formats.

Download Workbook

You can download the workbook that we used in this article from below and practice with it by yourself.

4 Ways to Convert Number to Words in Excel

This section of the article explains how to convert numbers to words in Excel. Moreover, we’re going to demonstrate four techniques to perform the operation. For conducting the session, we’re going to use Microsoft 365 version.

1. Use of Combined Functions in Excel to Convert Number to Words

The Excel formula that we used here relies on four functions. The LEFT, MID, TEXT, and CHOOSE functions.

Firstly, syntax of the LEFT function is as follows:

Basically, this function is used to extract characters from text.

=LEFT (text, [num_chars])

Text: The text string to extract the characters from.

num_chars [Optional]: The number of characters to extract. It starts from the left. By default, num_chars=1.

Secondly, the syntax of the MID function is as follows:

Actually, this function is used to extract text from inside a string.

=MID (text, start_num, num_chars)

Text: The text to extract from.

start_num: The location of the first character to extract.

num_chars: The number of characters to extract.

Thirdly, the syntax of the TEXT function is as follows:

Eventually, this function converts a number into a text in number format.

=TEXT (value, format_text)

value: The number to convert.

format_text: The number format to use.

Next, the syntax of the CHOOSE function is as follows:

This function gets a value from a list based on position.

=CHOOSE (index_num, value1, [value2], …)

index_num: The value to choose. A number between 1 and 254.

value1: The first value from which to choose.

value2 [optional]: The second value from which to choose.

  • Here, we will convert the number in the Numbers in Words column.

use of combined functions to convert number to words in Excel

  • Now, write down the following formula in the C5 cell.


&IF(–LEFT(TEXT(B5,”000000000.00″))=0,,IF(AND(–MID(TEXT(B5,”000000000.00″),2,1)=0,–MID(TEXT(B5,”000000000.00″),3,1)=0),” Hundred”,” Hundred and “))

&CHOOSE(MID(TEXT(B5,”000000000.00″),2,1)+1,,,”Twenty “,”Thirty “,”Forty “,”Fifty “,”Sixty “,”Seventy “,”Eighty “,”Ninety “)



&IF((–LEFT(TEXT(B5,”000000000.00″))+MID(TEXT(B5,”000000000.00″),2,1)+MID(TEXT(B5,”000000000.00″),3,1))=0,,IF(AND((–MID(TEXT(B5,”000000000.00″),4,1)+MID(TEXT(B5,”000000000.00″),5,1)+MID(TEXT(B5,”000000000.00″),6,1)+MID(TEXT(B5,”000000000.00″),7,1))=0,(–MID(TEXT(B5,”000000000.00″),8,1)+RIGHT(TEXT(B5,”000000000.00″)))>0),” Million and “,” Million “))


&IF(–MID(TEXT(B5,”000000000.00″),4,1)=0,,IF(AND(–MID(TEXT(B5,”000000000.00″),5,1)=0,–MID(TEXT(B5,”000000000.00″),6,1)=0),” Hundred”,” Hundred and”))

&CHOOSE(MID(TEXT(B5,”000000000.00″),5,1)+1,,,” Twenty”,” Thirty”,” Forty”,” Fifty”,” Sixty”,” Seventy”,” Eighty”,” Ninety”)

&IF(–MID(TEXT(B5,”000000000.00″),5,1)<>1,CHOOSE(MID(TEXT(B5,”000000000.00″),6,1)+1,,” One”,” Two”,” Three”,” Four”,” Five”,” Six”,” Seven”,” Eight”,” Nine”),CHOOSE(MID(TEXT(B5,”000000000.00″),6,1)+1,” Ten”,” Eleven”,” Twelve”,” Thirteen”,” Fourteen”,” Fifteen”,” Sixteen”,” Seventeen”,” Eighteen”,” Nineteen”))

&IF((–MID(TEXT(B5,”000000000.00″),4,1)+MID(TEXT(B5,”000000000.00″),5,1)+MID(TEXT(B5,”000000000.00″),6,1))=0,,IF(OR((–MID(TEXT(B5,”000000000.00″),7,1)+MID(TEXT(B5,”000000000.00″),8,1)+MID(TEXT(B5,”000000000.00″),9,1))=0,–MID(TEXT(B5,”000000000.00″),7,1)<>0),” Thousand “,” Thousand and “))


&IF(–MID(TEXT(B5,”000000000.00″),7,1)=0,,IF(AND(–MID(TEXT(B5,”000000000.00″),8,1)=0,–MID(TEXT(B5,”000000000.00″),9,1)=0),” Hundred “,” Hundred and “))&

CHOOSE(MID(TEXT(B5,”000000000.00″),8,1)+1,,,”Twenty “,”Thirty “,”Forty “,”Fifty “,”Sixty “,”Seventy “,”Eighty “,”Ninety “)


Formula to convert number to words

The entire formula may appear complicated at first glance, yet it is essentially a repetition of a single portion. So, if you can understand the first portion of the formula, you should be able to understand the rest.

  • Subsequently, press ENTER.

As a result, you will see the following output.

Formula Breakdown:

At first, the TEXT function is used here to turn the number into a “000000000.00” text format.


After that, the LEFT function is used to extract the left-most character from the number. It allows us to identify if the return number is zero or any other value.


Next, the CHOOSE function is used to represent the extracted number with appropriate words.


Now, it checks if the value is zero or not. If it is zero then it displays nothing.



It will display “Hundred” if the next two numbers are zero. Otherwise, it will display “Hundred and.”


&IF(–LEFT(TEXT(B7,”000000000.00″))=0,,IF(AND(–MID(TEXT(B7,”000000000.00″),2,1)=0,–MID(TEXT(B7,”000000000.00″),3,1)=0),” Hundred”,” Hundred and “))

This formula does not require VBA or arrays. It’s an excellent method for turning numbers into words. However, it has two flaws. One, it can’t perfectly represent decimal numbers after points. Two, the maximum number limit is 999, 999, 999. Actually, Mr. Pete M. came up with this formula.

Lastly, you will get all the converted numbers into words.

Result for how does excel convert number to words

Read More: How to Convert Number to Text with 2 Decimal Places in Excel (5 Ways)

2. Applying VLOOKUP Function to Convert Numbers to Words

You can apply the VLOOKUP function to convert numbers to words in Excel. Let’s do something different. Here, you have to insert all the numbers in words first then you may use this function to convert any number into words from them.


  • Firstly, write down all the numbers in words manually in the C column.

Applying VLOOKUP Function to Convert Numbers to Words in Excel

  • Now, use the following formula in the C12 cell.
  • Then, press ENTER.

Formula Breakdown

In this formula, the VLOOKUP function will return a value from a given array.

  • Firstly, B12 is the lookup value that it looks for in the given table.
  • Secondly, B4:C9 is the table array in which it looks for the target value.
  • Thirdly, 2 is the number of columns in the table from which a value is to be returned.
  • Fourthly, False denotes an exact match.

Read More: How to Convert Number to Text for VLOOKUP in Excel (2 Ways)

Similar Readings

3. Using a VBA to convert Number to words in Excel

The most interesting part is that you can build your own function to convert the numbers to words in Excel. Moreover, you can employ the VBA code to develop a defined function. The steps are given below.


  • Firstly, you have to choose the Developer tab >> then select Visual Basic.

Using a VBA macro for Wording Numbers in Excel

  • Now, from the Insert tab >> you have to select Module.

  • At this time, you need to write down the following Code in the Module.
Function number_converting_into_words(ByVal MyNumber)
Dim x_string As String
Dim whole_num As Integer
Dim x_string_pnt
Dim x_string_Num
Dim x_pnt As String
Dim x_numb As String
Dim x_P() As Variant
Dim x_DP
Dim x_cnt As Integer
Dim x_output, x_T As String
Dim x_my_len As Integer
On Error Resume Next
x_P = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
x_numb = Trim(Str(MyNumber))
x_DP = InStr(x_numb, ".")
x_pnt = ""
x_string_Num = ""
If x_DP > 0 Then
x_pnt = " point "
x_string = Mid(x_numb, x_DP + 1)
x_string_pnt = Left(x_string, Len(x_numb) - x_DP)
For whole_num = 1 To Len(x_string_pnt)
x_string = Mid(x_string_pnt, whole_num, 1)
x_pnt = x_pnt & get_digit(x_string) & " "
Next whole_num
x_numb = Trim(Left(x_numb, x_DP - 1))
End If
x_cnt = 0
x_output = ""
x_T = ""
x_my_len = 0
x_my_len = Int(Len(Str(x_numb)) / 3)
If (Len(Str(x_numb)) Mod 3) = 0 Then x_my_len = x_my_len - 1
Do While x_numb <> ""
If x_my_len = x_cnt Then
x_T = get_hundred_digit(Right(x_numb, 3), False)
If x_cnt = 0 Then
x_T = get_hundred_digit(Right(x_numb, 3), True)
x_T = get_hundred_digit(Right(x_numb, 3), False)
End If
End If
If x_T <> "" Then
x_output = x_T & x_P(x_cnt) & x_output
End If
If Len(x_numb) > 3 Then
x_numb = Left(x_numb, Len(x_numb) - 3)
x_numb = ""
End If
x_cnt = x_cnt + 1
x_output = x_output & x_pnt
number_converting_into_words = x_output
End Function
Function get_hundred_digit(xHDgt, y_b As Boolean)
Dim x_R_str As String
Dim x_string_Num As String
Dim x_string As String
Dim y_I As Integer
Dim y_bb As Boolean
x_string_Num = xHDgt
x_R_str = ""
On Error Resume Next
y_bb = True
If Val(x_string_Num) = 0 Then Exit Function
x_string_Num = Right("000" & x_string_Num, 3)
x_string = Mid(x_string_Num, 1, 1)
If x_string <> "0" Then
x_R_str = get_digit(Mid(x_string_Num, 1, 1)) & "Hundred "
If y_b Then
x_R_str = "and "
y_bb = False
x_R_str = " "
y_bb = False
End If
End If
If Mid(x_string_Num, 2, 2) <> "00" Then
x_R_str = x_R_str & get_ten_digit(Mid(x_string_Num, 2, 2), y_bb)
End If
get_hundred_digit = x_R_str
End Function
Function get_ten_digit(x_TDgt, y_b As Boolean)
Dim x_string As String
Dim y_I As Integer
Dim x_array_1() As Variant
Dim x_array_2() As Variant
Dim x_T As Boolean
x_array_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
x_array_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
x_string = ""
x_T = True
On Error Resume Next
If Val(Left(x_TDgt, 1)) = 1 Then
y_I = Val(Right(x_TDgt, 1))
If y_b Then x_string = "and "
x_string = x_string & x_array_1(y_I)
y_I = Val(Left(x_TDgt, 1))
If Val(Left(x_TDgt, 1)) > 1 Then
If y_b Then x_string = "and "
x_string = x_string & x_array_2(Val(Left(x_TDgt, 1)))
x_T = False
End If
If x_string = "" Then
If y_b Then
x_string = "and "
End If
End If
If Right(x_TDgt, 1) <> "0" Then
x_string = x_string & get_digit(Right(x_TDgt, 1))
End If
End If
get_ten_digit = x_string
End Function
Function get_digit(xDgt)
Dim x_string As String
Dim x_array_1() As Variant
x_array_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
x_string = ""
On Error Resume Next
x_string = x_array_1(Val(xDgt))
get_digit = x_string
End Function

  • Now, you have to save the code.
  • Then, you need to go to the Excel worksheet.

At this time, you can use your defined function. For this, you should follow the given steps.


  • Now, select the cell you want to show the converted output. (In our case, cell C5).
  • Then, enter the Equal sign (=) in the cell. It should enable you to type formulas.
  • After that, type in “=number_converting_into_words” or select the number_converting_into_words function from the drop-down menu.
  • Subsequently, select the cell with the number value that you want to convert into words (In our case, cell B5).
  •  Finally, hit the ENTER button.

As a result, it will convert your selected cell number into the corresponding words. Lastly, you can simply copy this formula to the rest of the cells as well.

Read More: How to Convert a Numeric Value into English Words in Excel

4. Employing VBA for Wording Currencies in Excel

This method is similar to the last one. It also works by inserting a module using VBA (Visual Basic for Application) and using it as a function. Where it differs from the last method is that it converts the numbers into appropriate currency words. Furthermore, an example is given below.

375.65=Three Hundred Seventy Five Dollars and Sixty Five Cents

Now, follow these steps to apply this method:

  • Firstly, follow method-3 to insert the module.
  • Secondly, write down the following code in Module 2.
Function Convert_Number_into_word_with_currency(ByVal whole_number)
Dim converted_into_dollar, converted_into_cent
my_ary = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
whole_number = Trim(Str(whole_number))
x_decimal = InStr(whole_number, ".")
If x_decimal > 0 Then
    converted_into_cent = get_ten(Left(Mid(whole_number, x_decimal + 1) & "00", 2))
    whole_number = Trim(Left(whole_number, x_decimal - 1))
End If
xIndex = 1
Do While whole_number <> ""
    xHundred = ""
    xValue = Right(whole_number, 3)
    If Val(xValue) <> 0 Then
        xValue = Right("000" & xValue, 3)
        If Mid(xValue, 1, 1) <> "0" Then
            xHundred = get_digit(Mid(xValue, 1, 1)) & " Hundred "
        End If
        If Mid(xValue, 2, 1) <> "0" Then
            xHundred = xHundred & get_ten(Mid(xValue, 2))
            xHundred = xHundred & get_digit(Mid(xValue, 3))
        End If
    End If
    If xHundred <> "" Then
        converted_into_dollar = xHundred & my_ary(xIndex) & Dollar
    End If
    If Len(whole_number) > 3 Then
        whole_number = Left(whole_number, Len(whole_number) - 3)
        whole_number = ""
    End If
    xIndex = xIndex + 1
Select Case converted_into_dollar
    Case ""
        converted_into_dollar = " Zero Dollar"
    Case "One"
        converted_into_dollar = " One Dollar"
    Case Else
        converted_into_dollar = converted_into_dollar & "Dollars"
End Select
Select Case converted_into_cent
    Case ""
        converted_into_cent = " and Zero Cent"
    Case "One"
        converted_into_cent = " and One Cent"
    Case Else
        converted_into_cent = " and " & converted_into_cent & "Cents"
End Select
Convert_Number_into_word_with_currency = converted_into_dollar & converted_into_cent
End Function
Function get_ten(pTens)
Dim my_output As String
my_output = ""
If Val(Left(pTens, 1)) = 1 Then
    Select Case Val(pTens)
        Case 10: my_output = "Ten"
        Case 11: my_output = "Eleven"
        Case 12: my_output = "Twelve"
        Case 13: my_output = "Thirteen"
        Case 14: my_output = "Fourteen"
        Case 15: my_output = "Fifteen"
        Case 16: my_output = "Sixteen"
        Case 17: my_output = "Seventeen"
        Case 18: my_output = "Eighteen"
        Case 19: my_output = "Nineteen"
        Case Else
    End Select
Select Case Val(Left(pTens, 1))
    Case 2: my_output = "Twenty "
    Case 3: my_output = "Thirty "
    Case 4: my_output = "Forty "
    Case 5: my_output = "Fifty "
    Case 6: my_output = "Sixty "
    Case 7: my_output = "Seventy "
    Case 8: my_output = "Eighty "
    Case 9: my_output = "Ninety "
    Case Else
End Select
my_output = my_output & get_digit(Right(pTens, 1))
End If
get_ten = my_output
End Function
Function get_digit(pDigit)
Select Case Val(pDigit)
    Case 1: get_digit = "One"
    Case 2: get_digit = "Two"
    Case 3: get_digit = "Three"
    Case 4: get_digit = "Four"
    Case 5: get_digit = "Five"
    Case 6: get_digit = "Six"
    Case 7: get_digit = "Seven"
    Case 8: get_digit = "Eight"
    Case 9: get_digit = "Nine"
    Case Else: get_digit = ""
End Select
End Function

Employing VBA to Convert Numbers to Words Currencies in Excel

As a result, you can use your defined function named Convert_Number_into_word_with_currency. For this, you should follow the given steps.


  • Now, you have to select a cell, where you want to keep the result. We have selected the C5 cell.
  • Then, you need to use the corresponding formula in the C5 cell.
  • Subsequently, press ENTER.

  • Finally, use the Excel AutoFill Feature for the rest of cells C6:C9.

Lastly, you will get all the converted amount.

Read More: How to Convert Number to Text and Keep Trailing Zeros in Excel (4 Ways)

How to Convert Number to Text Format in Excel

So far, we’ve talked about how to convert numbers to words in Excel. This section of the article explains how to change numbers to text format in Excel. It is the simplest and fastest method to convert numbers into text.

Here, follow these steps to apply this method:

  • Firstly, select the cell or cells with numeric values that you want to convert into text (in our case, cell C5:C9)
  • Secondly, go to the Home tab and select the Text option from the cell category drop-down menu under the Number section.

Applying Format Cell Feature to convert numbers into text in Excel

As a result, it will convert your selected cells’ numeric value into text. You can understand it by observing the alignments. By default, texts are left-aligned and numbers are right-aligned in Excel.

Or you can press CTRL+1 to open the window named Format Cells and select the Number option and then select the Text category from there.

Read More: Excel VBA to Convert Number to Text (4 Examples)

Practice Section

For doing practice, we have added a Practice portion on each sheet on the right portion.

Practice Section to convert number to words in Excel


Here, we have tried to make this article an ultimate guide about how to convert number to appropriate words or text in MS Excel. Moreover, we have narrowed down seven different techniques in this article so that you can choose the ideal option that is best suited for your specific situation. So, we hope you find the solution you were looking for. Please leave a comment if you have any suggestions or questions. Thank you.

Related Articles

Chinmoy Mondol

Chinmoy Mondol

Greetings! Thank you for visiting my profile. I am Chinmoy Mondol. I am a conscientious, tech enthusiast individual with a voracious appetite for knowledge and a desire to learn more. I graduated from American International University-Bangladesh with a Bachelor's Degree in Computer Science and Engineering. I enjoy using my skills to contribute to the exciting technological advances that happen every day. Constant advancement and personal development are my guiding principles.

  1. x_array_1 = Array(“Ten “, “Eleven “, “Twelve “, “Thirteen “, “Fourteen “, “Fifteen “, “Sixteen “, “Seventeen “, “Eighteen “, “Nineteen “)

    I have entered the whole code but when I try to apply i got an error message in the above line. It highlight the “, ” between “Thirteen “, “Fourteen “,
    Please kindly assist

    • Reply
      Naimul Hasan Arif Dec 11, 2022 at 12:34 PM

      Hello VULSTA KUZENA,
      Thanks for your comment. In my case, the code runs just perfect. I have not got any error message. There might have some extra characters in that place. You can try it or send me the file to [email protected] to let me have a try.

Leave a reply