Limits & Troubleshooting
The engine's limits and the most common puzzles, in one place. The tables below identify limits that produce errors and cases, such as oversized conditional-format ranges, that are skipped.
Grid and Storage Limits
| What | Limit |
|---|---|
| Columns | A..ZZ (702) |
| Rows | 1,048,576 |
| Cell content (value/formula source) | 2,048 characters — a longer cell fails the save with a message |
| Column width / row height | 36–480 px / 16–300 px |
Function and Feature Limits
| What | Limit |
|---|---|
| Range expansion in SUM/AVERAGE/AVG/PRODUCT/COUNT | 20,000 cells per range argument (larger ranges are left unexpanded and error) |
| XLOOKUP lookup range | 10,000 cells |
| Conditional format rule | 20,000 cells per rule (larger ranges are skipped) |
| Spread Total | 1–1,000 target cells |
| Region page size (Max Rows) | Default 1,000 records/rows per page |
| Pivot | 200 columns; Max Rows row groups (default 1,000) — exceeding either is an error, never a silent truncation |
| Date Range / FlowField run | 1–1,000 cells |
| Image region picture | 4 MB |
| Budget matrix | 500 period columns (250 with the actuals comparison) |
| ?DIMENSION slicer options | 200 entries |
| ?FIELD slicer | No cap — the picker is the table's own lookup page |
| Chart Value Decimals | 0–5 |
Common Puzzles
=7/2 shows 4. Both operands are integers, so the result is an Integer and 3.5 is rounded to 4 (not truncating div division: =7 div 2 is 3). Write =7.0/2 to get 3.5. See Formulas.
A comparison shows #ERROR. Mixed types don't coerce. Make both sides the same type: =Format(A1) = '5'.
COUNT counts empty cells. By design: COUNT(A1:A10) counts the cells of the range (10), unlike Excel's COUNT.
A date filter works for me but not for a colleague. A locale-formatted date was typed into a filter or slicer. Always write dates as yyyy-mm-dd — see Slicers.
A region shows an error instead of data. The region's badge carries the message — typical causes: no table/query/report assigned, an invalid range, a column definition with no visible columns, a SQL statement that isn't a SELECT, or a pivot without a row field.
Numbers changed but the region didn't. Report, SQL, pivot, FlowField, image, financial report and budget regions are cached for speed. Press the region's refresh button, or change a setting/slicer it depends on. A write-back through the sheet drops the financial report, budget, pivot and FlowField caches (but not report, SQL or query results). Table and date range regions are always live.
My formula stopped writing back to the record. Write-back formulas are bound to the record shown when they were typed. After paging, sorting or filtering renders a different record at that address, the binding deliberately goes quiet. Re-enter the formula on the record's current cell.
An edit into a region cell was refused. The engine reports the validation error once, after the next recalculation. FlowFields, primary-key fields and disabled fields are never writable; budget cells need a single existing, unblocked budget name.
A region ID doesn't work as a formula name. IDs that parse as a cell address (like B2) are not registered as record globals. Rename the region.
Cells went blank in preview for another user. They likely lack access to the sheet — or the sheet is fine and their access level routed them to preview; check Documents & Sharing.
A saved sheet lost its slicer picker. The picker's source (table, field or dimension) no longer resolves. The stored value keeps working; fix the slicer's spec to restore the picker.
The Self-Test Sheet
The Spreadsheets list has a Create Self-Test Sheet action that builds DEMO-TEST: a sheet where every row computes something and grades itself, so simply opening it runs the whole engine test suite and its overview pages report the result. Useful for verifying an environment after an upgrade.