If you deal with customers or colleagues in Europe, often you may see numbers like this:
- 1.433.502,50
- 9.324,00
- 3,141593
When these numbers are pasted in Excel, they become text, because Excel can’t understand them.
Here is a simple way to convert the European numbers to regular ones.
Use NUMBERVALUE() Function.
How to convert European number formats with NUMBERVALUE() ?
Let’s say you have a European format number in cell A1, something like 1.433.502,50
Syntax of NUMBERVALUE():
NUMBERVALUE() takes 3 parameters.
- Number you want to convert
- Decimal separator
- Group separator
So, we can use =NUMBERVALUE(A1 , "," , ".")
to convert number in A1 from European format.
Since , is the decimal point and . is the group separator in European format, NUMBERVALUE() returns 1433502.5
How to convert European number formats in earlier versions of Excel
NUMBERVALUE() is a new function added in Excel 2013. So if you are using an earlier version of Excel, then you need to come up with an alternative function. Here is one that works:
=SUBSTITUTE(SUBSTITUTE(A1, "." , "" ), "," , ".")+0
How does this work?
- We first substitute all .s with nothing – Inner SUBSTITUTE
- Then we substitute , with . – Outer SUBSTITUE
- Then we add 0 to convert text to number
Convert regular numbers to European format
Let’s say for some reason you need convert numbers to European format. Here is one formula you can use:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(FIXED(A1,2,FALSE),".","$"),",","."),"$",",")
How it works?
FIXED(A1,2,FALSE)
converts the number in A1 to a comma formatted number with 2 decimal pointsSUBSTITUTE(FIXED(...), ".", "$")
replaces the decimal point with $ symbol (you can replace it with any symbol)SUBSTITUTE(SUBSTITUTE(FIXED(...),...), "," ,".")
replaces all the commas with .sSUBSTITUTE(...., "$", ",")
replaces the $ with comma
More tips on number conversions in Excel
If you deal with data that needs conversion, check out below tips.
- Quickly convert numbers stored as text
- Extract numbers from text using VBA
- Splitting a number in to integer and decimal portions
- Presenting values in Indian currency format
How do you convert numbers to European format?
I never saw the NUMBERVALUE function until yesterday. I think it is a cool function to solve the format problem.
What about you? How do you convert numbers to / from European format (or back)? Please share your formulas in comments.
11 Responses to “Use NUMBERVALUE() to convert European Number format”
Thanks Chandoo,
It looks interesting, didn't tried yet, currently i am using 2007 🙁
Since I work in an European company, I do encounter this situation.
Instead of using formula, I prefer Text to Columns
In Step 3, go to "Advanced" --> Set
Decimal separator to ","
Thousands separator to "."
OK
Finish
Actually Text to Columns can achieve a lot of amazing stuff. 🙂
Hi Chandoo,
Re: European Format Numbers
Much easier I think to use CTRL "h" find "," and replace with"."
This allows entire columns of European number format to be replaced quickly and easily. Cannot see the advantage of NUMBERVALUE( ).
Slowly catching up with the podcasts - keep them coming!!
But what if the number has "," and "." ?
Chandoo's method can switch them around, but you wouldn't be able to do it with your method.
Everyone who works corporations should thank you 🙂
Great, thanks very much!
Found from your substitute example and as a workaround for office 2010 and office 2003 users - one could do the following:
SUBSTITUTE(text, old_text, new_text, [instance_num])
EG:
9.046,49 ( example Spanish format with comma & period)
Then in same row and next column write this formula (cell is A1):
=SUBSTITUTE(A1,".",",",1)
9.046,49 becomes 9,046,49
Next, then in same row and 2nd next column write this formula (but cell is B1):
=SUBSTITUTE(B1,",",".",2)
9,046,49 becomes 9,046.49
et voila: number is your locale format
_________________________
this works well if the number were larger, but remember to adjust [instance_num].
and if the situation was in reverse
I'm sure one could improve this method into a 'chained' formula
deet
Forgot the following:
then convert the 'text' number to a 'number' with the following formula:
VALUE(text)
ie: =VALUE(C1)
I have a problem this does not solve. The European numbers in a downloaded spreadsheet come in as 4.84 for 4.840, 3.215.4 for 3,215,400 etc. How do I add the missing zeros, especially when it may be either 1, 2, or no zeroes needed?
another problem if there is no decimal it does not replace "," with "." such as 12,160 does not yield 12.16
How use NUMBERCALUE in VBA? When I use Cost = NUMBERVALUE(...) I got compile error "Function not recognized"
Thank you