Fixing "Formula parse error"
A formula parse error means Google Sheets could not read the formula at all, a syntax problem, not a calculation problem, so no value was computed. The usual causes are an unbalanced bracket, the wrong argument separator for your locale (comma vs semicolon), curly quotes pasted from a document, or a trailing operator.
The most common single cause
=SUM(A1:A10Google Sheets only.
One missing closing bracket. Sheets highlights matching brackets as you type — use it.
Unbalanced brackets
Every opening bracket needs a closing one, and nested functions make it easy to lose count. Click into the formula bar and move the cursor next to a bracket: Sheets colours its partner, and an unmatched bracket has no partner to colour.
Long nested formulas are the usual offender. Breaking one into two cells while you debug it is almost always faster than staring at the whole thing.
Broken
=IF(A1>10,SUM(B1:B10),0Google Sheets only.
Shown as a mistake to avoid — do not use this one.
Fixed
=IF(A1>10,SUM(B1:B10),0)Google Sheets only.
The wrong argument separator
Which character separates arguments depends on the spreadsheet locale, not on the language of the interface. Locales that use a comma as the decimal mark — much of Europe and Latin America — use a semicolon to separate arguments instead.
This is why a formula copied from a tutorial parses for the author and fails for you. Check File → Settings → Locale, and either match the tutorial or translate the separators.
Comma locale (US, UK, India)
=SUM(A1,B1,C1)Google Sheets only.
Semicolon locale (DE, FR, ES, BR)
=SUM(A1;B1;C1)Google Sheets only.
Curly quotes from a paste
Copying a formula out of a document, an email or a web page frequently brings typographic quotes with it. A spreadsheet only recognises the straight ASCII quote; the curly ones are just characters it cannot interpret in that position.
The reliable fix is to retype the quotes by hand. Find-and-replace works too, but only if you can persuade the replace box to accept a curly character to search for.
Broken — curly quotes
=IF(A1=“Paid”,1,0)Google Sheets only.
Shown as a mistake to avoid — do not use this one.
Fixed — straight quotes
=IF(A1="Paid",1,0)Google Sheets only.
Trailing and doubled operators
An expression that ends on an operator has nothing to operate on, and a doubled operator asks for an operand that is not there. Both are usually the residue of an edit that removed a term but not the symbol joining it.
Broken
=A1+B1+Google Sheets only.
Shown as a mistake to avoid — do not use this one.
Broken
=A1&&B1Google Sheets only.
Shown as a mistake to avoid — do not use this one.
Fixed
=A1+B1Google Sheets only.
Named ranges and sheet names
A sheet name containing a space, an ampersand or a hyphen has to be wrapped in single quotes when referenced. Without them the parser reads the first word as the whole name and cannot make sense of the rest.
Named ranges cannot contain spaces at all, and cannot look like a cell reference — a range called A1 or Q1 will be rejected.
Broken
=Q1 Sales!A1Google Sheets only.
Shown as a mistake to avoid — do not use this one.
Fixed
='Q1 Sales'!A1Google Sheets only.
Parse error vs #ERROR! vs #N/A
These three mean different things and it is worth keeping them apart, because the fix is different in each case.
"Formula parse error" appears as a red banner while you are entering the formula — Sheets refuses to accept it at all. #ERROR! is what a formula that was accepted but still cannot be evaluated shows in the cell. #N/A means the formula ran correctly and simply found nothing, which is often the right answer rather than a fault.
When IMPORTRANGE reports an internal error
This one is not a parse error despite reading like one. IMPORTRANGE returning "internal error", or a "Loading…" that never resolves, is almost always volume rather than syntax.
A file has practical limits on the number of separate imports it runs and the number of cells they pull. Narrowing the ranges usually clears it; so does replacing several IMPORTRANGE calls with one call sliced locally, which counts as a single import.
Four imports becomes one
=INDEX(IMPORTRANGE(A1,"Sheet1!A:D"),0,2)Google Sheets only.
Repeat with column index 3, 4… against the same single import.
Parse error causes at a glance
| Symptom | Cause | Fix |
|---|---|---|
| Rejected on entry | Unbalanced bracket | Match every ( with a ) |
| Works for others, not you | Locale separator | Comma vs semicolon — check File → Settings |
| Formula was pasted in | Curly quotes | Retype the quotes as straight " |
| Ends on + - & * | Trailing operator | Remove it or complete the expression |
| Sheet name has a space | Unquoted reference | Wrap in single quotes: 'Q1 Sales'!A1 |
| IMPORTRANGE internal error | Too much imported | Narrow ranges, consolidate imports |
Frequently asked
What does "formula parse error" mean?
Google Sheets could not read the formula as a formula. It is a syntax problem — a bracket, separator or quote character — and no calculation was attempted.
Why does a formula from a tutorial give a parse error?
Usually the argument separator. Locales that use a comma as the decimal mark separate arguments with a semicolon instead, so =SUM(A1,B1) has to become =SUM(A1;B1).
What is the difference between a parse error and #ERROR!?
A parse error is rejected on entry — the formula never runs. #ERROR! is shown by a formula that was accepted but could not be evaluated once it ran.
Does Excel have formula parse errors?
Excel shows a dialog offering a correction rather than a parse error banner, and displays #NAME? for names it cannot resolve. The underlying causes are the same.
How do I fix an IMPORTRANGE internal error?
It is a volume problem rather than a syntax one. Import narrower ranges, or replace several IMPORTRANGE calls with a single call sliced with INDEX.
Stop writing these by hand
Describe what you need in plain English and FormulaCraft returns the formula, already run through a real spreadsheet engine. Free, no account.
Related
Last reviewed 2026-08-23. Every formula here is executed against sample data by our verification engine as part of the build. The few that cannot be — because they need values from your own sheet, or because the engine has no implementation for that form — say so directly underneath, rather than being counted as verified.