Forum Discussion
Converting Text to numbers
- Apr 19, 2023
NUMBERVALUE does it - see attachment columns F-G
There is a way to convert the text from its current form 10,562.98 to 10562,98 as a number format in Excel. You can use the SUBSTITUTE function to replace the comma with nothing and the dot with a comma.
Here’s an example formula that you can use:
=VALUE(SUBSTITUTE(SUBSTITUTE(A1,",",""),".",","))
This formula will first remove the comma by replacing it with nothing using SUBSTITUTE(A1,",",""). Then it will replace the dot with a comma using SUBSTITUTE( ... ,".",","). Finally, it will convert the resulting text into a number using the VALUE function.
You can use this formula for all the cells that contain numbers in the 10,562.98 format.
Just replace A1 with the cell reference that contains the number you want to convert.
OR…you can use VBA (Visual Basic for Applications) to convert text to numbers in Excel.
Here’s an example VBA code that you can use to convert the text from its current form 10,562.98 to 10562,98 as a number format:
Sub ConvertTextToNumber()
Dim cell As Range
Dim myRange As Range
Set myRange = Range("A1:A10") ' Change this to the range you want to format
For Each cell In myRange
If IsNumeric(cell) Then
cell.Value = CDbl(Replace(Replace(cell.Value, ",", ""), ".", ","))
End If
Next cell
End Sub
You can change the value of this variable to the range of cells that you want to format. In this example, the range is set to A1:A10, but you can change it to any range you want.
- SueMay 21, 2023Copper ContributorHi Nikolino,
I also have a problem of converting the string (from a textbox) "1,234.56" to 1234.56 using VBA. I have tried to convert it both before and after pasting without success so far. I do not understand the bit about "If IsNumeric(cell)" because the problem for me is that it will paste as a string. Using Val("1,234.56") pastes as 1.00 ie VBA has not recognized it as numeric either. I have not managed to convert the string to a number before or after pasting. I think it would be better to convert it before pasting to a variable and leave the txtbox in the form with the comma. I realise the problem is the comma but surely there is some function that handles this?
Sue- HansVogelaarMay 21, 2023MVP
Alternatively, use Data > Text To Columns.
In VBA:
Range("...").TextToColumns
Alternatively
With Range("...") .Value = .Value End With
- HansVogelaarMay 21, 2023MVP
In Excel itself, you might select the range and replace comma with nothing.
In VBA:
Range("...").Replace What:=",", Replacement:="", LookAt:=xlPart
- mtarlerApr 19, 2023Silver Contributor
SeppT03 Another option is to use 'Text to Columns' (found under DATA -> Data Tools group). The first couple pages the default should be ok and then under Advanced you can tell it to recognize the opposite separators:
- NikolinoDEApr 19, 2023Gold ContributorMany roads lead to Rome...and even more roads lead to a result in Excel! :)) "(Y)"
- mtarlerApr 19, 2023Silver Contributorso true. I need to try to remember to use that saying about Rome instead of always using the saying about ways to skin a cat ... why in the world do we talk about many ways to skin a cat any how?