← All functions

XLOOKUP

Supported, behaves as documented

Category: Lookup and reference · Last tested 2026-09-01

Real compatibility results for the XLOOKUP function: executed in Excel for the web, Google Sheets and LibreOffice Calc, with desktop Excel behavior from Microsoft’s official documentation (we do not run desktop Excel — Excel for the web is a different application and is executed separately). Syntax and links to that documentation are below.

✓ Supported in LibreOffice since 24.8.7.2. We ran XLOOKUP under every LibreOffice release we test (24.2.0.3, 24.8.7.2, 25.2.0.3, 25.8.7.3): it returned #NAME? (unrecognized) in 24.2.0.3 and first works in 24.8.7.2. If you need XLOOKUP in LibreOffice Calc, use 24.8.7.2 or newer.

Support matrix

EngineDocumentedLive-testedVerdict
Excel (desktop)Yes No โ€” documented only n/a
Excel for the web— Yes (recalc, 2026-09-01) Supported, behaves as documented
Google SheetsYes Yes (Drive import, 2026-08-29) Supported, behaves as documented
LibreOffice CalcYes Yes (25.8.7.3, 2026-07-29) Supported, behaves as documented

LibreOffice version history

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

LibreOffice versionVerdictTested
24.2.0.3 Unsupported (not recognized) 2026-08-29
24.8.7.2 Supported, behaves as documented 2026-08-29
25.2.0.3 Supported, behaves as documented 2026-08-29
25.8.7.3 Supported, behaves as documented 2026-07-29

Why isn't XLOOKUP working in LibreOffice?

If XLOOKUP returns a #NAME? error in LibreOffice Calc, you are almost certainly running a release older than 24.8.7.2 — that is exactly what our executed tests show: #NAME? in 24.2.0.3, working from 24.8.7.2 onward. Check your version under Help → About LibreOffice and upgrade to 24.8.7.2 or newer; no setting or extension enables it in older releases. (Other causes of this error: see the error values guide.)

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
=XLOOKUP("b",A1:A3,B1:B3) Basic exact-match lookup returns the corresponding value 2 2 Matched
=XLOOKUP("z",A1:A3,B1:B3) No if_not_found arg and no match -> #N/A #N/A #N/A Matched
=XLOOKUP("z",A1:A3,B1:B3,"missing") Custom if_not_found value is returned when no match missing missing Matched
=XLOOKUP(2.5,A1:A4,B1:B4,"none",-1) match_mode -1 (exact or next smaller item) with no exact match 20 20
Provenance

2.5 has no exact match; next-smaller is 2 -> 20

Matched
=XLOOKUP("x",A1:A4,B1:B4,"none",0,-1) search_mode -1 finds the LAST occurrence of a duplicated key 3 3
Provenance

Two rows match 'x' (1 and 3); reverse search returns the later one

Matched
=XLOOKUP("a",A1:A1,B1:B1) Degenerate 1-cell lookup/return arrays where the cell is blank #N/A #N/A
Provenance

A1 and B1 are blank; lookup value 'a' is not found

Matched

Google Sheets (executed 2026-08-29 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
=XLOOKUP("b",A1:A3,B1:B3) Basic exact-match lookup returns the corresponding value 2 2 Matched
=XLOOKUP("z",A1:A3,B1:B3) No if_not_found arg and no match -> #N/A #N/A #N/A Matched
=XLOOKUP("z",A1:A3,B1:B3,"missing") Custom if_not_found value is returned when no match missing missing Matched
=XLOOKUP(2.5,A1:A4,B1:B4,"none",-1) match_mode -1 (exact or next smaller item) with no exact match 20 20
Provenance

2.5 has no exact match; next-smaller is 2 -> 20

Matched
=XLOOKUP("x",A1:A4,B1:B4,"none",0,-1) search_mode -1 finds the LAST occurrence of a duplicated key 3 3
Provenance

Two rows match 'x' (1 and 3); reverse search returns the later one

Matched
=XLOOKUP("a",A1:A1,B1:B1) Degenerate 1-cell lookup/return arrays where the cell is blank #N/A #N/A
Provenance

A1 and B1 are blank; lookup value 'a' is not found

Matched

LibreOffice Calc 25.8.7.3 (tested 2026-07-29)

FormulaDescriptionResultExpectedVerdict
=XLOOKUP("b",A1:A3,B1:B3) Basic exact-match lookup returns the corresponding value 2 2 Matched
=XLOOKUP("z",A1:A3,B1:B3) No if_not_found arg and no match -> #N/A #N/A #N/A Matched
=XLOOKUP("z",A1:A3,B1:B3,"missing") Custom if_not_found value is returned when no match missing missing Matched
=XLOOKUP(2.5,A1:A4,B1:B4,"none",-1) match_mode -1 (exact or next smaller item) with no exact match 20 20
Provenance

2.5 has no exact match; next-smaller is 2 -> 20

Matched
=XLOOKUP("x",A1:A4,B1:B4,"none",0,-1) search_mode -1 finds the LAST occurrence of a duplicated key 3 3
Provenance

Two rows match 'x' (1 and 3); reverse search returns the later one

Matched
=XLOOKUP("a",A1:A1,B1:B1) Degenerate 1-cell lookup/return arrays where the cell is blank #N/A #N/A
Provenance

A1 and B1 are blank; lookup value 'a' is not found

Matched

Docs & syntax

Related how-to recipes

Where XLOOKUP behaves differently

Compared against other functions