NUMBERVALUE: Convert Text to Numbers (Locale‑Friendly)

NUMBER VALUE Function IN EXCEL Tutorial Page Feature Image
Learn how to use Excel’s NUMBERVALUE function to convert text numbers to values with custom decimal and group separators. Essential for European formats, imports, and cross-locale workbooks.

Numbers imported from other countries, copied from web pages, or exported from databases often arrive as text — left-aligned, ignored by SUM, and resistant to arithmetic. The VALUE function can convert simple cases. However, it fails when decimal and thousands separators differ from the current locale. The NUMBERVALUE function solves this precisely. It accepts the source text's own separator characters as arguments, making the conversion locale-independent and reliable across every regional setting.

For example, a European spreadsheet might store one million two hundred and thirty-four as "1.234,00" — period as thousands separator and comma as decimal. NUMBERVALUE converts it to 1234 cleanly on any machine, regardless of that machine's regional settings. Consequently, it is the right tool for any cross-border data pipeline.

Availability: NUMBERVALUE is available in Excel 2013 and all later versions, including Microsoft 365, Excel 2024, 2021, 2019, and 2016. It also works in Excel for the web and Google Sheets. For Excel 2010 or earlier, use the VALUE function instead — with the understanding that it relies on the machine's regional settings.

What Is the NUMBERVALUE Syntax?

NUMBERVALUE takes one required argument and two optional separator arguments.

=NUMBERVALUE(text, [decimal_separator], [group_separator])
ArgumentRequired?What it does
textRequiredThe text string to convert. Can be a cell reference, a literal string in quotes, or the output of another formula. Leading and trailing spaces are ignored. An empty string ("") returns 0.
decimal_separatorOptionalThe character used as the decimal point in the source text. Enclose in double quotes — for example, "," for European data. If omitted, the current locale's decimal separator is used. Only the first character counts if multiple are supplied.
group_separatorOptionalThe character used as the thousands separator in the source text — for example, "." for European data or " " (space) for some French and Swiss formats. If omitted, the current locale's group separator is used.
Always specify both separators explicitly in shared workbooks: When separators are omitted, NUMBERVALUE uses the machine's regional settings. A formula that works on a UK machine may fail on a German machine if the locale defaults differ. Specifying both separators — even when using standard US format — guarantees consistent results everywhere.

How Does NUMBERVALUE Differ from VALUE?

VALUE converts text to numbers using the machine's regional settings only. It has no separator arguments. Consequently, it fails silently — or produces wrong numbers — when the source data uses different separators. NUMBERVALUE, by contrast, accepts the source format explicitly. Use VALUE for simple, locale-matched data. Use NUMBERVALUE for anything cross-regional.

FeatureNUMBERVALUEVALUE
Custom decimal separator✅ Yes — specify any character❌ No — uses locale only
Custom group separator✅ Yes — specify any character❌ No — uses locale only
Cross-locale reliability✅ Consistent on any machine⚠ Machine-dependent
Handles % suffix✅ Converts to decimal✅ Yes
Available fromExcel 2013+All Excel versions

Example 1: Convert Standard US-Format Text Numbers

Even within the same locale, numbers sometimes arrive as text — left-aligned in their cells, ignored by SUM, and showing a green triangle in the corner. NUMBERVALUE handles them cleanly. When the source data uses the same separators as your machine, omitting the optional arguments is fine. However, specifying them explicitly is safer for shared workbooks.

1
Convert US-format text numbers to true numeric values
A — Text (as stored)
B — NUMBERVALUE result
C — Formula in B
Notes
"1,234.56"
1234.56
=NUMBERVALUE(A2,".",",")
Standard US format
" 3 000 "
3000
=NUMBERVALUE(A3,".",",")
Spaces ignored
""
0
=NUMBERVALUE(A4,".",",")
Empty string → 0
Convert US-format text — period decimal, comma group separator: Specifying both separators explicitly ensures consistency across all machines. =NUMBERVALUE(A2, ".", ",") → "1,234.56" becomes 1234.56 → " 3 000 " becomes 3000 (spaces are ignored) → "" becomes 0 Copy down a column — drag or double-click the fill handle. The formula updates the cell reference each row automatically. =NUMBERVALUE(A2, ".", ",") =NUMBERVALUE(A3, ".", ",") =NUMBERVALUE(A4, ".", ",") Now SUM works correctly — the converted values are genuine numbers: =SUM(B2:B100) ← this works after conversion; SUM(A2:A100) returned 0
After conversion, cells in column B hold genuine numbers — right-aligned, with no green triangle. SUM, AVERAGE, MAXIFS, and every other numeric function now work on them correctly.

Example 2: Convert European Format (Comma Decimal, Period Thousands)

Many European countries use a comma as the decimal separator and a period as the thousands separator. This is the opposite of the US convention. Consequently, VALUE fails completely on this data in a US-locale Excel — it either errors or misreads "1.234,56" as 1234.56 incorrectly. NUMBERVALUE handles it precisely by accepting the source separators as arguments.

2
Convert European number format — comma as decimal, period as thousands
A — European text
Means
NUMBERVALUE result
VALUE result (US locale)
1.234,56
1,234.56
1234.56 ✓
#VALUE! ✗
1.000.000
1,000,000
1000000 ✓
#VALUE! ✗
0,75
0.75
0.75 ✓
#VALUE! ✗
European format — comma is decimal, period is thousands: Second argument = decimal separator in the SOURCE text. Third argument = group (thousands) separator in the SOURCE text. =NUMBERVALUE(A2, ",", ".") → "1.234,56" becomes 1234.56 → "1.000.000" becomes 1000000 → "0,75" becomes 0.75 Store separator characters in reference cells for easy maintenance. E1 holds the decimal separator, F1 holds the group separator. Change E1 and F1 to switch formats across the entire column at once. =NUMBERVALUE(A2, $E$1, $F$1) French/Swiss format — space as thousands separator, comma as decimal: NUMBERVALUE ignores spaces in the text by default, but a space as a deliberate group separator is handled correctly when specified explicitly. =NUMBERVALUE(A2, ",", " ") → "1 234,56" becomes 1234.56
Store separators in cells for flexible format switching: Place the decimal separator in E1 and the group separator in F1. Use =NUMBERVALUE(A2,$E$1,$F$1) throughout the column. Changing E1 from "," to "." then instantly reinterprets all data — useful when a data supplier occasionally switches format between exports.

Example 3: Handle Percentage Text

NUMBERVALUE automatically handles trailing percent signs. One "%" divides the result by 100. Two "%%" divide it by 10,000. This means "75%" becomes 0.75 — the correct decimal representation for Excel's Percentage format. Consequently, you can import percentage data as text and convert it to proper decimal values in a single formula.

3
Convert percentage text to decimal values — "75%" becomes 0.75
A — Text
NUMBERVALUE result
Formatted as %
Explanation
75%
0.75
75%
÷ 100
9%%
0.0009
0.09%
÷ 100 twice
12,5% (EU)
0.125
12.5%
Comma decimal
Simple percentage — "75%" becomes 0.75 (one % = divide by 100): Apply Percentage format to the result cell to display as "75%". =NUMBERVALUE("75%") → 0.75 =NUMBERVALUE("9%%") → 0.0009 (two %% = divide by 100 twice) European percentage with comma decimal — "12,5%" becomes 0.125: =NUMBERVALUE("12,5%", ",", ".") → 0.125 Convert a column of mixed percentage texts — cell reference version: =NUMBERVALUE(A2, ",", ".") Then use directly in calculations — no extra division needed: The decimal value is already correct for use in arithmetic. "Growth rate: " & TEXT(=NUMBERVALUE(A2), "0.0%") → "Growth rate: 75.0%"

Example 4: Scientific Notation and Custom Separator Characters

NUMBERVALUE recognises scientific notation — for example, "3.5E+05" converts to 350000. Furthermore, the separator arguments accept any character, not just commas and periods. This makes NUMBERVALUE flexible enough to handle exports from legacy systems, databases, or programming environments that use unusual delimiters.

4
Handle scientific notation, unusual separators, and legacy export formats
Scientific notation — automatically recognised regardless of separators: =NUMBERVALUE("3.5E+05", ".", ",") → 350000 =NUMBERVALUE("1.2E-03", ".", ",") → 0.0012 Custom separator characters — separators can be any single character. This handles a legacy database format using colon as decimal and underscore as group: =NUMBERVALUE("4_250:50", ":", "_") → 4250.50 Swiss/French format — space as thousands separator: "1 234 567,89" means 1,234,567.89 =NUMBERVALUE("1 234 567,89", ",", " ") → 1234567.89 Only the first character of each separator argument is used: If you accidentally pass two characters, only the first takes effect. =NUMBERVALUE("1.234,56", ",.", ".,") → Same as =NUMBERVALUE("1.234,56",",",".") — extra characters discarded
The separator arguments accept any single character — not just comma, period, and space. This flexibility means NUMBERVALUE can handle virtually any text number format from any system, database, or locale without pre-processing the source data.

Example 5: Handle Errors with IFERROR and ISTEXT

NUMBERVALUE returns #VALUE! when it cannot interpret the text. This happens when separators are specified incorrectly, the decimal separator appears more than once, or the text contains non-numeric characters. In a production column with mixed data, wrapping in IFERROR keeps the sheet clean and helps identify problem rows.

When Does NUMBERVALUE Return #VALUE!?

Four specific situations cause #VALUE!: the decimal separator appears more than once in the text; the group separator appears after the decimal separator; an invalid argument is supplied; or the text contains a non-numeric character other than the separators and a trailing percent sign. Knowing these rules makes troubleshooting straightforward.

5
Wrap in IFERROR, flag non-numeric rows, and count conversion failures
Return 0 instead of #VALUE! for unparseable text: Useful when the column contains mostly numbers with occasional text entries. =IFERROR(=NUMBERVALUE(A2, ",", "."), 0) Return a blank instead — avoids inflating SUM with zeros: A blank cell is ignored by SUM, AVERAGE, COUNT, and similar functions. =IFERROR(=NUMBERVALUE(A2, ",", "."), "") Flag rows that failed conversion — place in an adjacent audit column: =IF(ISERROR(=NUMBERVALUE(A2, ",", ".")), "⚠ Check format", "✓ OK") Count how many rows failed conversion — audit the entire column: SUMPRODUCT adds 1 for each row where NUMBERVALUE errors out. =SUMPRODUCT(ISERROR(=NUMBERVALUE(A2:A100, ",", "."))*1) Only convert rows where the source cell actually contains text: ISTEXT confirms the cell is text before attempting conversion. Numeric cells pass through unchanged via the FALSE branch. =IF(ISTEXT(A2), =NUMBERVALUE(A2, ",", "."), A2)

Example 6: Clean and Convert Mixed Import Data

Real-world imports often include currency symbols, extra spaces, or mixed formats in the same column. NUMBERVALUE handles spaces automatically. For currency symbols and other prefix or suffix characters, SUBSTITUTE removes them first. Combining SUBSTITUTE, TRIM, and NUMBERVALUE in a single formula produces clean numeric output from almost any messy text.

6
Strip currency symbols and clean mixed-format import data in one formula
A — Raw import text
NUMBERVALUE result
What happened
€ 1.234,56
1234.56
€ stripped, converted EU
$ 5,000.00
5000
$ stripped, spaces ignored
CHF 1 234,00
1234
CHF stripped, space group
Strip a Euro symbol before converting European format: SUBSTITUTE removes "€"; TRIM removes leading/trailing spaces. NUMBERVALUE then converts the clean text. =NUMBERVALUE(TRIM(SUBSTITUTE(A2, "€", "")), ",", ".") → "€ 1.234,56" → "1.234,56" → 1234.56 Strip a dollar sign from US format: Same pattern — SUBSTITUTE + TRIM + NUMBERVALUE. =NUMBERVALUE(TRIM(SUBSTITUTE(A2, "$", "")), ".", ",") → "$ 5,000.00" → "5,000.00" → 5000 Strip "CHF" text prefix (Swiss Franc), space thousands, comma decimal: SUBSTITUTE removes the currency code; TRIM removes the remaining space. =NUMBERVALUE(TRIM(SUBSTITUTE(A2, "CHF", "")), ",", " ") → "CHF 1 234,00" → "1 234,00" → 1234 Wrap in IFERROR for production robustness: Any row that still fails conversion returns a blank instead of an error. =IFERROR( =NUMBERVALUE(TRIM(SUBSTITUTE(A2, "€", "")), ",", "."), "")

How to Fix Common NUMBERVALUE Errors

#VALUE! — wrong or swapped separators

The most common cause is specifying separators that do not match the source text. For instance, telling NUMBERVALUE the decimal separator is "." when the text actually uses "," produces #VALUE!. Double-check the source format. Additionally, ensure the group separator does not appear after the decimal separator in the text — that combination also triggers #VALUE!.

#VALUE! — decimal separator appears more than once

A text string like "12.34.56" contains two periods. If the period is specified as the decimal separator, NUMBERVALUE cannot determine which one is the decimal point. Consequently, it returns #VALUE!. Inspect the source data for typos or systematic formatting errors. Use SUBSTITUTE to remove extra separators before converting.

Result is wrong but no error appears

This usually means the separators are mixed up. For example, "1.234,56" converted with decimal="." and group="," produces 1.234 — it reads 1.234 as the number and ignores ",56" as an invalid tail. Always verify one row manually before copying the formula down. Furthermore, comparing the NUMBERVALUE result to the expected value in a test cell is a fast clearance check.

NUMBERVALUE is not the right tool for date or time text: The function converts number-formatted text only. Dates stored as text like "01/04/2026" should instead use DATEVALUE or VALUE, which understand date formats. Similarly, times stored as text should use TIMEVALUE. Passing a date string to NUMBERVALUE produces #VALUE! or an unexpected number.

Frequently Asked Questions

  • What is NUMBERVALUE used for in Excel?+
    NUMBERVALUE converts text representations of numbers into actual numeric values — with explicit control over decimal and thousands separators. It is especially useful for international data, where the comma and period roles are swapped compared to US convention. Unlike the VALUE function, NUMBERVALUE does not rely on the machine's regional settings, making it reliable for shared workbooks opened on computers with different locales.
  • How do I convert European numbers like "1.234,56" to 1234.56?+
    Use =NUMBERVALUE(A2,",","."). The second argument tells NUMBERVALUE that the comma is the decimal separator in the source text. The third argument tells it that the period is the thousands separator. This converts "1.234,56" to 1234.56 on any machine regardless of regional settings. Always specify both arguments when the source data uses non-standard separators to guarantee consistent results.
  • What is the difference between NUMBERVALUE and VALUE?+
    VALUE converts text to numbers using the current locale's separator settings. It has no arguments for custom separators. Consequently, it fails on European-format numbers when running in a US-locale Excel. NUMBERVALUE solves this by accepting the source text's separator characters as explicit arguments, making it locale-independent. Use NUMBERVALUE whenever data may come from different regional formats. Use VALUE for simple cases where the source and destination locales are guaranteed to match.

More Questions About NUMBERVALUE

  • Does NUMBERVALUE handle percentage symbols?+
    Yes. Trailing percent signs are handled automatically. One "%" divides the result by 100, so "75%" becomes 0.75. Two "%%" divide by 100 twice, so "9%%" becomes 0.0009. To display the result as a percentage, apply the Percentage cell format to the result cell after conversion — the underlying value is already the correct decimal. European percentage text like "12,5%" also works: =NUMBERVALUE("12,5%",",",".") returns 0.125.
  • Why does NUMBERVALUE return #VALUE!?+
    The four most common causes are: the decimal separator appears more than once in the text; the group separator appears after the decimal separator; the separator arguments do not match the characters actually in the source text; or the text contains a non-numeric character other than the separators and a trailing percent sign. Wrap in IFERROR to suppress the error: =IFERROR(NUMBERVALUE(A2,",","."),"")
  • Which Excel versions support NUMBERVALUE?+
    NUMBERVALUE is available in Excel 2013 and all later versions, including Microsoft 365, Excel 2024, 2021, 2019, and 2016. It also works in Excel for the web and Google Sheets. For Excel 2010 or earlier, use the VALUE function as a fallback — but note that VALUE depends on the machine's regional settings and may not correctly handle non-standard number formats.