← All functions

IMPORTRANGE

Unsupported (not recognized)

Category: Web · Last tested 2026-09-01

Real compatibility results for the IMPORTRANGE function: executed in Excel for the web, Google Sheets and LibreOffice Calc, measured against Google’s published documentation. Excel does not document IMPORTRANGE, so this page makes no claim about Excel. Syntax and links to that documentation are below.

Support matrix

EngineDocumentedLive-testedVerdict
Excel (desktop)No n/a (not an Excel function) n/a
Excel for the web— Yes (recalc, 2026-09-01) Unsupported (not recognized)
Google SheetsYes Yes (Drive import, 2026-09-01) Inconclusive (no verdict published)
LibreOffice CalcNo Yes (25.8.7.3, 2026-09-01) Unsupported (not recognized)

LibreOffice version history

We executed the same test cases under each LibreOffice release to show exactly when IMPORTRANGE’s support changed — not documentation claims, real results.

LibreOffice versionVerdictTested
24.2.0.3 Unsupported (not recognized) 2026-09-01
24.8.7.2 Unsupported (not recognized) 2026-09-01
25.2.0.3 Unsupported (not recognized) 2026-09-01
25.8.7.3 Unsupported (not recognized) 2026-09-01

Why isn't IMPORTRANGE working in LibreOffice?

LibreOffice Calc does not implement IMPORTRANGE as of 25.8.7.3 — in our executed tests it returns a #NAME? (unrecognized function) error. This is not a typo or a settings problem, and saving the file as .xlsx does not change it: the function simply isn’t available yet. Watch the LibreOffice version support page — we re-run every test on each new release, so it will flip to Supported here as soon as it lands.

Google Sheets: executed, but no verdict published. Google executed the call and returned #REF!, which is the documented consequence of an unauthorised link rather than a defect. Google’s own page states the gate: “Spreadsheets must be explicitly granted permission to pull data from other spreadsheets using IMPORTRANGE”, and the permission is granted by a human clicking Allow Access. Nobody clicked it — the corpus workbook was uploaded and converted, not opened and authorised — and the spreadsheet id in the formula is a placeholder naming no real document. The value is published exactly as it came back and no verdict is drawn from it. Every executed case is shown below with exactly what Google returned.

Executed test cases

Excel for the web (executed 2026-09-01 via OneDrive recalculation)

These values come from Excel for the web, not from desktop Excel. They are two different implementations of the calculation engine, and this run measured only the web one: the corpus was uploaded to OneDrive as .xlsx, recalculated by Excel for the web on open, and downloaded again for readback. Excel for the web is a rolling service with no pinnable version, so the run is identified by its date. Where a value here disagrees with the Expected column — which is Microsoft’s documentation of the desktop product — we cannot tell you whether the web engine diverges from the desktop one or the documentation is wrong about both, because we do not run desktop Excel.

FormulaDescriptionResultExpectedVerdict
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/EXAMPLE_SPREADSHEET_ID","Sheet1!A1") Existence probe only: the documented behaviour reads another spreadsheet and requires that spreadsheet to have been granted access first #NAME?
Provenance

NOT ASSERTABLE BY DESIGN, and deliberately recorded as a probe (expected: null) rather than a support claim -- the treatment batch B gave the CUBE* family and COPILOT, batch C gave DETECTLANGUAGE, and batch G gave RTD, STOCKHISTORY and TRANSLATE. THIS ONE IS NOT MERELY REMOTE, IT IS GATED BY A HUMAN CLICK. Google describes the function as "Imports a range of cells from a specified spreadsheet." and states the gate outright: "Spreadsheets must be explicitly granted permission to pull data from other spreadsheets using IMPORTRANGE." and "To grant the permission to the source spreadsheet, click Allow Access." A workbook this harness uploads has clicked nothing, so the documented behaviour is unreachable by construction -- an authorization dependency rather than only a network one. The page also states "IMPORTRANGE automatically checks for updates every hour while the document is open, even if the formula and spreadsheet don't change.", so even an authorized value is a moving one. The spreadsheet id in this formula is a placeholder that names no real document, deliberately: pointing the corpus at a real sheet would make the result depend on that sheet's contents and sharing settings. LIBREOFFICE, MEASURED BEFORE THIS FILE WAS AUTHORED. All four pinned builds (24.2.0.3, 24.8.7.2, 25.2.0.3, 25.8.7.3) were probed with NINE storage spellings -- plain, _xlfn., COM.MICROSOFT., ORG.OPENOFFICE., _xlfn.ORG.OPENOFFICE., ORG.LIBREOFFICE., _xlfn.ORG.LIBREOFFICE., _xlfn.COM.MICROSOFT. and COM.SUN.STAR.SHEET.ADDIN.ANALYSIS. -- and every one of those 36 combinations returned #NAME?. LibreOffice's own parser additionally wrote the name back into the converted file LOWER-CASED ('=importrange("https://docs.google.com/spreadsheets/d/EXAMPLE","Sheet1!A1")'), which is what it does with an identifier it does not recognise as a function at all rather than with a function it knows under a different storage token. A #NAME? under all nine storage forms on all four builds is therefore a genuine absence and not a storage-form artifact of this harness, which is why 'unsupported in LibreOffice' IS a verdict this file publishes even though the returned VALUE is not assertable in any engine. BATCH PROVENANCE (batch J, group B of sheets-lo-only-plan.md -- Google-documented, service- or context-bound; the final batch of the completeness push). This function has x == false in docs/data/compat.json: Microsoft does not document it at all, so this corpus makes no claim about Excel, nothing here is measured against Microsoft's documentation, and the Excel column on the published page reads 'n/a (not an Excel function)' rather than a verdict. The authority is Google's own function help, cited by full URL and by the date it was read (2026-08-31) -- Google publishes no version number for Sheets, so a bare URL dates nothing. GOOGLE SHEETS: this batch builds the Sheets chunk whose ingest will record what the service returns for this call. Until that ingest lands the Sheets column on the published page reads 'Not yet' and nothing in this file claims anything about it. (Stated positively on purpose -- scripts/check_honesty.py bans the blanket negative shape of that sentence, and the guard is worth keeping blunt.) Google's IMPORTRANGE help page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093340.

Error

Google Sheets (executed 2026-09-01 via Drive import)

Google Sheets is a rolling service with no pinnable version, so this run is identified by its date. The corpus was imported to Drive as .xlsx, recalculated by Sheets, and exported back for readback.

FormulaDescriptionResultExpectedVerdict
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/EXAMPLE_SPREADSHEET_ID","Sheet1!A1") Existence probe only: the documented behaviour reads another spreadsheet and requires that spreadsheet to have been granted access first #REF!
Provenance

NOT ASSERTABLE BY DESIGN, and deliberately recorded as a probe (expected: null) rather than a support claim -- the treatment batch B gave the CUBE* family and COPILOT, batch C gave DETECTLANGUAGE, and batch G gave RTD, STOCKHISTORY and TRANSLATE. THIS ONE IS NOT MERELY REMOTE, IT IS GATED BY A HUMAN CLICK. Google describes the function as "Imports a range of cells from a specified spreadsheet." and states the gate outright: "Spreadsheets must be explicitly granted permission to pull data from other spreadsheets using IMPORTRANGE." and "To grant the permission to the source spreadsheet, click Allow Access." A workbook this harness uploads has clicked nothing, so the documented behaviour is unreachable by construction -- an authorization dependency rather than only a network one. The page also states "IMPORTRANGE automatically checks for updates every hour while the document is open, even if the formula and spreadsheet don't change.", so even an authorized value is a moving one. The spreadsheet id in this formula is a placeholder that names no real document, deliberately: pointing the corpus at a real sheet would make the result depend on that sheet's contents and sharing settings. LIBREOFFICE, MEASURED BEFORE THIS FILE WAS AUTHORED. All four pinned builds (24.2.0.3, 24.8.7.2, 25.2.0.3, 25.8.7.3) were probed with NINE storage spellings -- plain, _xlfn., COM.MICROSOFT., ORG.OPENOFFICE., _xlfn.ORG.OPENOFFICE., ORG.LIBREOFFICE., _xlfn.ORG.LIBREOFFICE., _xlfn.COM.MICROSOFT. and COM.SUN.STAR.SHEET.ADDIN.ANALYSIS. -- and every one of those 36 combinations returned #NAME?. LibreOffice's own parser additionally wrote the name back into the converted file LOWER-CASED ('=importrange("https://docs.google.com/spreadsheets/d/EXAMPLE","Sheet1!A1")'), which is what it does with an identifier it does not recognise as a function at all rather than with a function it knows under a different storage token. A #NAME? under all nine storage forms on all four builds is therefore a genuine absence and not a storage-form artifact of this harness, which is why 'unsupported in LibreOffice' IS a verdict this file publishes even though the returned VALUE is not assertable in any engine. BATCH PROVENANCE (batch J, group B of sheets-lo-only-plan.md -- Google-documented, service- or context-bound; the final batch of the completeness push). This function has x == false in docs/data/compat.json: Microsoft does not document it at all, so this corpus makes no claim about Excel, nothing here is measured against Microsoft's documentation, and the Excel column on the published page reads 'n/a (not an Excel function)' rather than a verdict. The authority is Google's own function help, cited by full URL and by the date it was read (2026-08-31) -- Google publishes no version number for Sheets, so a bare URL dates nothing. GOOGLE SHEETS: this batch builds the Sheets chunk whose ingest will record what the service returns for this call. Until that ingest lands the Sheets column on the published page reads 'Not yet' and nothing in this file claims anything about it. (Stated positively on purpose -- scripts/check_honesty.py bans the blanket negative shape of that sentence, and the guard is worth keeping blunt.) Google's IMPORTRANGE help page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093340.

Inconclusive

LibreOffice Calc 25.8.7.3 (tested 2026-09-01)

FormulaDescriptionResultExpectedVerdict
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/EXAMPLE_SPREADSHEET_ID","Sheet1!A1") Existence probe only: the documented behaviour reads another spreadsheet and requires that spreadsheet to have been granted access first #NAME?
Provenance

NOT ASSERTABLE BY DESIGN, and deliberately recorded as a probe (expected: null) rather than a support claim -- the treatment batch B gave the CUBE* family and COPILOT, batch C gave DETECTLANGUAGE, and batch G gave RTD, STOCKHISTORY and TRANSLATE. THIS ONE IS NOT MERELY REMOTE, IT IS GATED BY A HUMAN CLICK. Google describes the function as "Imports a range of cells from a specified spreadsheet." and states the gate outright: "Spreadsheets must be explicitly granted permission to pull data from other spreadsheets using IMPORTRANGE." and "To grant the permission to the source spreadsheet, click Allow Access." A workbook this harness uploads has clicked nothing, so the documented behaviour is unreachable by construction -- an authorization dependency rather than only a network one. The page also states "IMPORTRANGE automatically checks for updates every hour while the document is open, even if the formula and spreadsheet don't change.", so even an authorized value is a moving one. The spreadsheet id in this formula is a placeholder that names no real document, deliberately: pointing the corpus at a real sheet would make the result depend on that sheet's contents and sharing settings. LIBREOFFICE, MEASURED BEFORE THIS FILE WAS AUTHORED. All four pinned builds (24.2.0.3, 24.8.7.2, 25.2.0.3, 25.8.7.3) were probed with NINE storage spellings -- plain, _xlfn., COM.MICROSOFT., ORG.OPENOFFICE., _xlfn.ORG.OPENOFFICE., ORG.LIBREOFFICE., _xlfn.ORG.LIBREOFFICE., _xlfn.COM.MICROSOFT. and COM.SUN.STAR.SHEET.ADDIN.ANALYSIS. -- and every one of those 36 combinations returned #NAME?. LibreOffice's own parser additionally wrote the name back into the converted file LOWER-CASED ('=importrange("https://docs.google.com/spreadsheets/d/EXAMPLE","Sheet1!A1")'), which is what it does with an identifier it does not recognise as a function at all rather than with a function it knows under a different storage token. A #NAME? under all nine storage forms on all four builds is therefore a genuine absence and not a storage-form artifact of this harness, which is why 'unsupported in LibreOffice' IS a verdict this file publishes even though the returned VALUE is not assertable in any engine. BATCH PROVENANCE (batch J, group B of sheets-lo-only-plan.md -- Google-documented, service- or context-bound; the final batch of the completeness push). This function has x == false in docs/data/compat.json: Microsoft does not document it at all, so this corpus makes no claim about Excel, nothing here is measured against Microsoft's documentation, and the Excel column on the published page reads 'n/a (not an Excel function)' rather than a verdict. The authority is Google's own function help, cited by full URL and by the date it was read (2026-08-31) -- Google publishes no version number for Sheets, so a bare URL dates nothing. GOOGLE SHEETS: this batch builds the Sheets chunk whose ingest will record what the service returns for this call. Until that ingest lands the Sheets column on the published page reads 'Not yet' and nothing in this file claims anything about it. (Stated positively on purpose -- scripts/check_honesty.py bans the blanket negative shape of that sentence, and the guard is worth keeping blunt.) Google's IMPORTRANGE help page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093340.

Error

Docs & syntax

Where IMPORTRANGE behaves differently