My FILTER / SORT / UNIQUE range broke when I moved to Excel
One formula in Google Sheets filled a block of cells — a filtered list, a sorted table, a de-duplicated column. In Excel that block is now truncated, shows #SPILL!, or only the first cell has anything in it.
What’s actually breaking
Functions like FILTER, SORT, UNIQUE and SEQUENCE are dynamic arrays: one formula in one cell produces many results that “spill” into the cells around it. Both Google Sheets and modern Excel support spilling, but they don’t agree on every detail — how the anchor cell is stored, how the spilled region is described, and what happens when a cell the array wants to spill into is already occupied.
The result is that a spilled range can survive the trip perfectly, or it can arrive truncated to a single cell, blocked with #SPILL!, or — the case worth worrying about — showing a plausible-looking partial result that is missing rows. A reader skimming the sheet has no way to tell the difference.
How xlsx-for-ai handles it
xlsx-for-ai reads the workbook with its own engine and looks specifically at spilled ranges. When it can’t reproduce a dynamic array faithfully, it detects the spill and declines to serve a guessed result — it points at the anchor cell and tells you the range depended on a dynamic array, instead of quietly writing a shorter list.
The principle is the same one we apply throughout: a safe, visible non-answer beats a silently wrong one. You find out at conversion time that a filtered or sorted block needs a second look — not three weeks later when someone notices the count is off.
What we deliberately don’t do: we don’t re-run the filter and fabricate the missing rows, and we don’t claim to explain the exact internal reason the two engines disagreed. We tell you which range is affected so you can re-enter the formula in Excel, where the same FILTER/SORT/UNIQUE will usually spill correctly once it’s live.
How to check your file
- Add the connector to Claude once — open Settings → Connectors → Add custom connector and paste
https://api.xlsx-for-ai.dev/mcp/claude. Full steps are on the developers page. - Read the live Sheet by id. In Claude, ask:
Reading a live Sheet is read-only and uses a read-only Google token you supply — see the developers page for the one-time setup.Read this Google Sheet and convert it to an .xlsx, with xfa. Flag anything that won't survive the conversion: https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/edit - Or skip the token — in Google Sheets choose File → Download → Microsoft Excel (.xlsx), then ask Claude to “read this file with xfa and tell me what it flagged.” Same reader, same flags.
- Read the flags. The result tells you exactly what it did and what it couldn’t carry across — so you review a short list instead of hunting for a wrong number later.
More Google Sheets ↔ Excel problems
- ARRAYFORMULA stopped working in Excel
- A spilled range (FILTER, SORT, UNIQUE) broke in Excel
- Google-Sheets-only functions break in Excel
- A named function shows an error in Excel
- Numbers or dates look different after converting
- Notes and comments when converting to Excel
- Huge empty rows or columns in a Sheets export
- CSV columns are wrong (semicolons instead of commas)