Converts a number that is stored as text into a real number.
VALUE fixes the single most common problem with imported data: numbers that Excel is treating as text. They look right, they line up in the column, and SUM quietly ignores every one of them. VALUE converts them back into numbers that arithmetic can reach.
The tell is alignment. Excel right-aligns numbers and left-aligns text by default, so a column of figures hugging the left edge of its cells is text. Another giveaway is a total that reads 0 when the rows visibly contain amounts.
It is fussier than people expect about what it will accept. A stray space, a currency symbol Excel does not recognise for your locale, or a thousands separator in the wrong position all produce #VALUE!. In practice VALUE is usually wrapped around TRIM and SUBSTITUTE rather than used alone.
=VALUE(text)textHeaders in row 1, data in A2:C5. Column B arrived as text, not numbers.
| A | B | C | |
|---|---|---|---|
| 1 | Reference | Amount (text) | Score |
| 2 | INV-1041 | 1240.50 | 4 |
| 3 | INV-1042 | 385.00 | 2 |
| 4 | INV-1043 | 2100.75 | 5 |
| 5 | INV-1044 | 940.20 | 3 |
=VALUE(B2)Result: 1240.5
The text becomes a real number, right-aligned and available to SUM and every other calculation.
=SUM(B2:B5)Result: 0
The problem VALUE solves. SUM skips text silently, so a column of text amounts totals zero with no error at all.
=SUMPRODUCT(VALUE(B2:B5))Result: 4666.45
Converting the whole column inside the total, without a helper column. SUMPRODUCT handles the array.
=VALUE(TRIM(SUBSTITUTE(B2, "£", "")))Result: 1240.5
The realistic version: strip a currency symbol and any padding before converting, because VALUE rejects both.
Reading about a formula is not the same as writing one. Open this function's exercise and type it into a real grid — you get instant feedback on exactly which cell is wrong and why.
Why it happens: The text does not look like a number to Excel — a currency symbol, a stray space, or a decimal separator that does not match the locale.
How to fix it: Clean it first: =VALUE(TRIM(SUBSTITUTE(A2, "£", ""))). For a foreign decimal separator, NUMBERVALUE lets you specify it.
Why it happens: The conversion is in a helper column but the SUM still points at the original text column.
How to fix it: Point the total at the converted column, or convert the source in place with Text to Columns.
Why it happens: The text looked like a date, so VALUE converted it to a date serial rather than a plain number.
How to fix it: That is correct behaviour. Format the cell as a date, or check the source really is meant to be a number.
Because they are stored as text and SUM skips text entirely, without warning. Check the alignment — text sits left, numbers sit right — and convert with VALUE or by running Text to Columns over the column.
Select the column and use Data → Text to Columns → Finish. It re-parses every cell in place and needs no helper column, which makes it faster than VALUE for a one-off cleanup.
There is something in it Excel will not accept — most often a currency symbol, a non-breaking space from a web copy, or a decimal comma where the locale expects a point. Strip the extras with SUBSTITUTE and TRIM first, or use NUMBERVALUE to state the separators explicitly.
Longer reads where this function does real work in a real sheet.