# How to Convert Numbers to Texts/Words in Excel

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 numbers to text or words in Excel. In this guide, I have addressed this issue and provided six different methods to solve it, three for converting numbers into text formats and three for converting numbers into their respective word.

## 3 Ways to Convert Numbers into Text in MS Excel

### 1. Using the TEXT function

The text function converts a number into a text in number format. Its syntax is as follows:

`=TEXT (value, format_text)`

value – The number to convert.

format_text – The number format to use.

TEXT(123.12, format_text)

format_text=”0″ = 123

format_text=”0.0″ = 123.1

format_text=”0.00″ = 123.12

Follow these steps to apply this method:

1. Select a cell to show the output to. (In my case, Cell C7)
2. Enter the equal sign (=) in the cell. It should enable you to type formulas.
3. Type in “TEXT” or select the TEXT function from the drop-down menu.
4. Select the cell with the number value that you want to convert into text format. (In my case, Cell B7) and add a comma (,).
5. Enter the second argument based on your desired format (In my case, “0” as I just want the decimal places) and hit the Enter button. 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. You can simply copy this formula to the rest of the cells as well. You can check out this article for copying formulas in excel.

### 2. Using the “Format Cell” option

It is the simplest and fastest method to convert numbers into texts.

Follow these steps to apply this method:

1. Select the cell or cells with numeric values that you want to convert into text (in my case, Cell B7:B11). 2. Go to Home and select the Text from the cell category deop-down menu under the Number section. or,

You can right-click and select the Format Cell option and select the Text category form there.  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.

### 3. Using the Apostrophe (‘) method

This method is most useful when you are working with a small number of data and a limited number of cells need to be converted into text. If you have converted a large number of cells then you can check out the other methods.

Follow these steps for applying this method:

1. Select the cell that you want to convert into text (In my case, Cell B7).
2. Now, add an Apostrophe (,) at the start of the cell and hit the Enter button. It will convert all the values of cells into text. You can understand it by observing the alignments. By default, texts are left-aligned and numbers are right-aligned in Excel. The main drawback of this technique is that you have to follow these steps for each cell individually. That is why it is not suggested when you are working with more than 3-5 cells.

## 2 Ways to Convert Numbers into Words in MS Excel

So far, I’ve talked about how to convert numbers to text. This section of the article explains how to change digits to worded numbers and provides three techniques to perform the operation.

### 1. Using an Excel formula

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

Syntax of the LEFT function is as follows:

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.

Syntax of the MID function is as follows:

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.

Syntax of the TEXT function is as follows:

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.

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, I have converted the number in the Numbers column into its corresponding words and showed it in the Output column.  The formula is as follows:

`=CHOOSE(LEFT(TEXT(B7,"000000000.00"))+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")`

`&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 "))`

`&CHOOSE(MID(TEXT(B7,"000000000.00"),2,1)+1,,,"Twenty ","Thirty ","Forty ","Fifty ","Sixty ","Seventy ","Eighty ","Ninety ")`

`&IF(--MID(TEXT(B7,"000000000.00"),2,1)<>1,CHOOSE(MID(TEXT(B7,"000000000.00"),3,1)+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine"),`

`CHOOSE(MID(TEXT(B7,"000000000.00"),3,1)+1,"Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"))`

`&IF((--LEFT(TEXT(B7,"000000000.00"))+MID(TEXT(B7,"000000000.00"),2,1)+MID(TEXT(B7,"000000000.00"),3,1))=0,,IF(AND((--MID(TEXT(B7,"000000000.00"),4,1)+MID(TEXT(B7,"000000000.00"),5,1)+MID(TEXT(B7,"000000000.00"),6,1)+MID(TEXT(B7,"000000000.00"),7,1))=0,(--MID(TEXT(B7,"000000000.00"),8,1)+RIGHT(TEXT(B7,"000000000.00")))>0)," Million and "," Million "))`

`&CHOOSE(MID(TEXT(B7,"000000000.00"),4,1)+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")`

`&IF(--MID(TEXT(B7,"000000000.00"),4,1)=0,,IF(AND(--MID(TEXT(B7,"000000000.00"),5,1)=0,--MID(TEXT(B7,"000000000.00"),6,1)=0)," Hundred"," Hundred and"))`

`&CHOOSE(MID(TEXT(B7,"000000000.00"),5,1)+1,,," Twenty"," Thirty"," Forty"," Fifty"," Sixty"," Seventy"," Eighty"," Ninety")`

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

`&IF((--MID(TEXT(B7,"000000000.00"),4,1)+MID(TEXT(B7,"000000000.00"),5,1)+MID(TEXT(B7,"000000000.00"),6,1))=0,,IF(OR((--MID(TEXT(B7,"000000000.00"),7,1)+MID(TEXT(B7,"000000000.00"),8,1)+MID(TEXT(B7,"000000000.00"),9,1))=0,--MID(TEXT(B7,"000000000.00"),7,1)<>0)," Thousand "," Thousand and "))`

`&CHOOSE(MID(TEXT(B7,"000000000.00"),7,1)+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")`

`&IF(--MID(TEXT(B7,"000000000.00"),7,1)=0,,IF(AND(--MID(TEXT(B7,"000000000.00"),8,1)=0,--MID(TEXT(B7,"000000000.00"),9,1)=0)," Hundred "," Hundred and "))&`

`CHOOSE(MID(TEXT(B7,"000000000.00"),8,1)+1,,,"Twenty ","Thirty ","Forty ","Fifty ","Sixty ","Seventy ","Eighty ","Ninety ")`

`&IF(--MID(TEXT(B7,"000000000.00"),8,1)<>1,CHOOSE(MID(TEXT(B7,"000000000.00"),9,1)+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine"),CHOOSE(MID(TEXT(B7,"000000000.00"),9,1)+1,"Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"))`

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.

`CHOOSE(LEFT(TEXT(B7),"000000000.00"))+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")`

`&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 "))`

Breakdown:

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

`TEXT(B7,"000000000.00")`

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.

`LEFT(TEXT(B7,"000000000.00"))`

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

`CHOOSE(LEFT(TEXT(B7,"000000000.00"))+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")`

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

`CHOOSE(LEFT(TEXT(B7,"000000000.00"))+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")`

`&IF(--LEFT(TEXT(B7,"000000000.00"))=0,,`

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

`CHOOSE(LEFT(TEXT(B7,"000000000.00"))+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")`

`&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.

### 2. Using a VBA macro

#### For Wording Numbers

In this method, you have to insert a module using VBA (Visual Basic for Application). After successfully inserting the module, you can simply use it as an Excel function and get your desired output.

Follow these steps to apply this method:

1. Press the Alt+F11 key. It should a new window named Microsoft Visual Basic for Application. 2. Select Insert > Module. It should create a new Module.
3. Copy the VBA code from below and paste it to the new Module section and Save it.
```Function NumberstoWords(ByVal MyNumber)
'Update by Extendoffice
Dim xStr As String
Dim xFNum As Integer
Dim xStrPoint
Dim xStrNumber
Dim xPoint As String
Dim xNumber As String
Dim xP() As Variant
Dim xDP
Dim xCnt As Integer
Dim xResult, xT As String
Dim xLen As Integer
On Error Resume Next
xP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP > 0 Then
xPoint = " point "
xStr = Mid(xNumber, xDP + 1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum = 1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum, 1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNum
xNumber = Trim(Left(xNumber, xDP - 1))
End If
xCnt = 0
xResult = ""
xT = ""
xLen = 0
xLen = Int(Len(Str(xNumber)) / 3)
If (Len(Str(xNumber)) Mod 3) = 0 Then xLen = xLen - 1
Do While xNumber <> ""
If xLen = xCnt Then
xT = GetHundredsDigits(Right(xNumber, 3), False)
Else
If xCnt = 0 Then
xT = GetHundredsDigits(Right(xNumber, 3), True)
Else
xT = GetHundredsDigits(Right(xNumber, 3), False)
End If
End If
If xT <> "" Then
xResult = xT & xP(xCnt) & xResult
End If
If Len(xNumber) > 3 Then
xNumber = Left(xNumber, Len(xNumber) - 3)
Else
xNumber = ""
End If
xCnt = xCnt + 1
Loop
xResult = xResult & xPoint
NumberstoWords = xResult
End Function
Function GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As String
Dim xStrNum As String
Dim xStr As String
Dim xI As Integer
Dim xBB As Boolean
xStrNum = xHDgt
xRStr = ""
On Error Resume Next
xBB = True
If Val(xStrNum) = 0 Then Exit Function
xStrNum = Right("000" & xStrNum, 3)
xStr = Mid(xStrNum, 1, 1)
If xStr <> "0" Then
xRStr = GetDigits(Mid(xStrNum, 1, 1)) & "Hundred "
Else
If xB Then
xRStr = "and "
xBB = False
Else
xRStr = " "
xBB = False
End If
End If
If Mid(xStrNum, 2, 2) <> "00" Then
xRStr = xRStr & GetTenDigits(Mid(xStrNum, 2, 2), xBB)
End If
GetHundredsDigits = xRStr
End Function
Function GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As String
Dim xI As Integer
Dim xArr_1() As Variant
Dim xArr_2() As Variant
Dim xT As Boolean
xArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = True
On Error Resume Next
If Val(Left(xTDgt, 1)) = 1 Then
xI = Val(Right(xTDgt, 1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
Else
xI = Val(Left(xTDgt, 1))
If Val(Left(xTDgt, 1)) > 1 Then
If xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt, 1)))
xT = False
End If
If xStr = "" Then
If xB Then
xStr = "and "
End If
End If
If Right(xTDgt, 1) <> "0" Then
xStr = xStr & GetDigits(Right(xTDgt, 1))
End If
End If
GetTenDigits = xStr
End Function
Function GetDigits(xDgt)
Dim xStr As String
Dim xArr_1() As Variant
xArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume Next
xStr = xArr_1(Val(xDgt))
GetDigits = xStr
End Function``` 1. Now, select the cell you want to show the converted output. (In my case, Cell C7).
2. Enter the equal sign (=) in the cell. It should enable you to type formulas.
3. Type in “NumberstoWords” or select the NumberstoWords function from the drop-down menu.
4. Select the cell with the number value that you want to convert into words (In my case, Cell B7) and hit the Enter button. It will convert your selected cells’ number into the corresponding words. You can simply copy this formula to the rest of the cells as well. You can check out this article for copying formulas in excel.

#### For Wording Currencies

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.

375.65=Three Hundred Seventy Five Dollars and Sixty Five Cents

Follow these steps to apply this method:

1. Press the Alt+F11 key. It should have a new window named Microsoft Visual Basic for Application. 2. Select Insert > Module. It should create a new Module.
3. Copy the VBA code from below and paste it to the new Module section and Save it.
```Function SpellNumberToEnglish(ByVal pNumber)
'Update by Extendoffice
Dim Dollars, Cents
arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
pNumber = Trim(Str(pNumber))
xDecimal = InStr(pNumber, ".")
If xDecimal > 0 Then
Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2))
pNumber = Trim(Left(pNumber, xDecimal - 1))
End If
xIndex = 1
Do While pNumber <> ""
xHundred = ""
xValue = Right(pNumber, 3)
If Val(xValue) <> 0 Then
xValue = Right("000" & xValue, 3)
If Mid(xValue, 1, 1) <> "0" Then
xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred "
End If
If Mid(xValue, 2, 1) <> "0" Then
xHundred = xHundred & GetTens(Mid(xValue, 2))
Else
xHundred = xHundred & GetDigit(Mid(xValue, 3))
End If
End If
If xHundred <> "" Then
Dollars = xHundred & arr(xIndex) & Dollars
End If
If Len(pNumber) > 3 Then
pNumber = Left(pNumber, Len(pNumber) - 3)
Else
pNumber = ""
End If
xIndex = xIndex + 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
SpellNumberToEnglish = Dollars & Cents
End Function
Function GetTens(pTens)
Dim Result As String
Result = ""
If Val(Left(pTens, 1)) = 1 Then
Select Case Val(pTens)
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
Select Case Val(Left(pTens, 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(pTens, 1))
End If
GetTens = Result
End Function
Function GetDigit(pDigit)
Select Case Val(pDigit)
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``` 1. Now, select the cell you want to show the converted output. (In my case, Cell C7).
2. Enter the equal sign (=) in the cell. It should enable you to type formulas.
3. Type in “SpellNumberToEnglish” or select the SpellNumberToEnglish function from the drop-down menu.
4. Select the cell with the number value that you want to convert into words (In my case, Cell B7) and hit the Enter button. It will translate the number in your selected cells into the relevant currency words. You can simply copy this formula to the rest of the cells as well. You can check out this article for copying formulas in excel.

## Conclusion

I have tried to make this article an ultimate guide for converting numbers into text or appropriate words in MS Excel. I have narrowed down six different techniques in this article so that you can choose the ideal option that is best suited for your specific situation. I hope you find the solution you were looking for. Please leave a comment if you have any suggestions or questions. Thank you.  