Google Sheets → Excel

My cells show __xludf.DUMMYFUNCTION or #NAME? after downloading from Google Sheets

You did File → Download → Microsoft Excel (.xlsx), opened the file, and a bunch of cells now read something like =IFERROR(__xludf.DUMMYFUNCTION("QUERY(A1:C50,...)"),853.12) — or just a flat #NAME?. Nothing is corrupt. That’s Google leaving you a clue, not Excel breaking your file.

What’s actually breaking

Every formula Sheets has that Excel doesn’t — QUERY, ARRAYFORMULA, IMPORTRANGE, GOOGLEFINANCE, GOOGLETRANSLATE, the whole list — gets the same treatment on export. Google can’t hand Excel a formula Excel can’t run, so it wraps it: the real formula becomes a text string inside a function called __xludf.DUMMYFUNCTION, and the last value Sheets actually computed gets tucked into the second argument of an IFERROR around it. Click the cell and you’re looking at both halves at once — the dead formula, and the answer it used to give.

Excel has never heard of __xludf.DUMMYFUNCTION, so it can’t run it. Most of the time IFERROR catches that failure and falls through to the cached number, and the cell just looks normal — a plain value sitting there, quietly frozen. Sometimes, depending on how the formula nested, Excel can’t even get that far and you get a flat #NAME? with no visible number at all.

Either way, the question that matters is which function got wrapped and whether the number you’re looking at is the real cached answer. Wrapped a QUERY? See QUERY function not working in Excel. IMPORTRANGE? See IMPORTRANGE not working in Excel. GOOGLEFINANCE? See GOOGLEFINANCE not working in Excel.

How xlsx-for-ai handles it

This is the one spot in the whole Sheets-only-function mess where I’ll say “reliable” without hedging it. __xludf.DUMMYFUNCTION is a literal, unmistakable string sitting in the formula — there’s no guessing about whether it’s there. Hand the file to xfa (the reader I use for this) and it reliably finds every __xludf.DUMMYFUNCTION wrapper, pulls out which Sheets-only function it’s hiding, and reads back the cached value from the second argument — the same value Excel is either showing you or burying behind #NAME?.

That confidence is specific to this one signature. The moment a value has already been flattened — no wrapper, no formula text, just a plain number sitting where the formula used to be — there is nothing left in the file to detect, and xfa does not claim to catch that case; there’s no tell left to find. But if what you’re staring at is __xludf.DUMMYFUNCTION or a #NAME? that came from one, that wrapper is exactly the signature xfa is built to catch.

So instead of squinting at nested IFERROR arguments yourself, you get a list back: cell, which function got wrapped, and the value that was sitting inside it.

How to check your file

  1. 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.
  2. Read the live Sheet by id. In Claude, ask:
    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
    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.
  3. 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.
  4. 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.
Quick manual check: click any cell showing __xludf.DUMMYFUNCTION and read the formula bar — the second argument to IFERROR is the cached value. That’s the last-known-good number; it just stopped updating the moment you downloaded the file.

More Google Sheets ↔ Excel problems

← All Google Sheets ↔ Excel guides