← All functions

ENCODEURL

Quirk found

Category: Web · Last tested 2026-09-01

Real compatibility results for the ENCODEURL 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.

Support matrix

EngineDocumentedLive-testedVerdict
Excel (desktop)Yes No — documented only n/a
Excel for the web— Yes (recalc, 2026-09-01) Inconclusive (no verdict published)
Google SheetsYes Yes (Drive import, 2026-08-31) Supported, behaves as documented
LibreOffice CalcYes Yes (25.8.7.3, 2026-08-31) Quirk found

LibreOffice version history

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

LibreOffice versionVerdictTested
24.2.0.3 Quirk found 2026-08-31
24.8.7.2 Quirk found 2026-08-31
25.2.0.3 Quirk found 2026-08-31
25.8.7.3 Quirk found 2026-08-31

Why isn't ENCODEURL working in LibreOffice?

ENCODEURL exists in LibreOffice 25.8.7.3, but it is not a drop-in match for Excel — our executed tests found real behavioral differences (detailed in the test results on this page). If a formula that works in Excel or Google Sheets misbehaves in LibreOffice, compare your usage against the failing cases above before assuming your data is wrong.

Excel for the web: executed, but no verdict published. Excel for the web returned #VALUE! for all four cases, including =ENCODEURL("abcXYZ123"), whose argument needs no encoding at all and has no failure mode. An argument-independent error on every case, from a name the engine clearly recognises (an unknown name returns #NAME? here, as AI does), is the web application declining to provide a function rather than computing it wrongly. Our expected values come from Microsoft’s documentation of the desktop product, so the disagreement is between two applications’ feature sets, not evidence of a defect in either. The values are published as they came back and no verdict is drawn. Every executed case is shown below with exactly what Excel for the web returned.

Discovered quirks

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
=ENCODEURL("http://contoso.sharepoint.com/Finance/Profit and Loss Statement.xlsx") Microsoft's documented worked example: a SharePoint URL containing spaces #VALUE! http%3A%2F%2Fcontoso.sharepoint.com%2FFinance%2FProfit%20and%20Loss%20Statement.xlsx
Provenance

Microsoft's page publishes this example verbatim, argument and result. Re-derived character by character from the documented rule ("returns a URL-encoded string, replacing certain non-alphanumeric characters with the percentage symbol (%) and a hexadecimal number"): the colon becomes %3A, each forward slash %2F and each space %20, while the letters, digits and -- decisively for this case -- the PERIODS are left literal. The published result keeps "contoso.sharepoint.com" and ".xlsx" unencoded, so the period is one of the non-alphanumeric characters Excel deliberately does not escape. EXECUTED RESULT -- SILENT WRONG VALUE. All four LibreOffice builds return 'http%3A%2F%2Fcontoso%2Esharepoint%2Ecom%2FFinance%2FProfit%20and%20Loss%20Statement%2Exlsx': identical to the documented result except that every PERIOD has been percent-encoded as %2E, which Microsoft's published example leaves literal. No error is raised and the string is still a decodable URL, so the difference survives into any downstream comparison, cache key or signature that expects Excel's output byte for byte. The period is an unreserved character in RFC 3986, so encoding it is legal but not what Excel does.

Inconclusive
=ENCODEURL("a b") The single documented transformation, isolated #VALUE! a%20b
Provenance

Derived from the documented rule and from the published example, in which every space became %20. Isolating one space separates a space-encoding difference from any other character's. EXECUTED RESULT: all four LibreOffice builds return the documented a%20b, so the space handling itself is not the difference seen in ENCODEURL_doc_example.

Inconclusive
=ENCODEURL("abcXYZ123") Alphanumeric text has nothing to encode #VALUE! abcXYZ123
Provenance

Excel documents the function as "replacing certain non-alphanumeric characters", so a purely alphanumeric argument must come back unchanged. This case is the control for the others: an engine that fails here is not encoding, it is mangling.

Inconclusive
=ENCODEURL("x=1&y=2") The reserved query-string delimiters = and & #VALUE! x%3D1%26y%3D2
Provenance

Derived from the documented rule together with the percent-encodings the published example fixes: = is ASCII 0x3D and & is ASCII 0x26, so the encoded form is x%3D1%26y%3D2. These two characters matter because the documented companion use of ENCODEURL is building a WEBSERVICE query string, where an unescaped & would split the parameter. EXECUTED RESULT: all four LibreOffice builds return the derived x%3D1%26y%3D2, so the reserved query delimiters are handled as documented; the divergence recorded for this function is confined to the period.

Inconclusive

Google Sheets (executed 2026-08-31 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
=ENCODEURL("http://contoso.sharepoint.com/Finance/Profit and Loss Statement.xlsx") Microsoft's documented worked example: a SharePoint URL containing spaces http%3A%2F%2Fcontoso.sharepoint.com%2FFinance%2FProfit%20and%20Loss%20Statement.xlsx http%3A%2F%2Fcontoso.sharepoint.com%2FFinance%2FProfit%20and%20Loss%20Statement.xlsx
Provenance

Microsoft's page publishes this example verbatim, argument and result. Re-derived character by character from the documented rule ("returns a URL-encoded string, replacing certain non-alphanumeric characters with the percentage symbol (%) and a hexadecimal number"): the colon becomes %3A, each forward slash %2F and each space %20, while the letters, digits and -- decisively for this case -- the PERIODS are left literal. The published result keeps "contoso.sharepoint.com" and ".xlsx" unencoded, so the period is one of the non-alphanumeric characters Excel deliberately does not escape. EXECUTED RESULT -- SILENT WRONG VALUE. All four LibreOffice builds return 'http%3A%2F%2Fcontoso%2Esharepoint%2Ecom%2FFinance%2FProfit%20and%20Loss%20Statement%2Exlsx': identical to the documented result except that every PERIOD has been percent-encoded as %2E, which Microsoft's published example leaves literal. No error is raised and the string is still a decodable URL, so the difference survives into any downstream comparison, cache key or signature that expects Excel's output byte for byte. The period is an unreserved character in RFC 3986, so encoding it is legal but not what Excel does.

Matched
=ENCODEURL("a b") The single documented transformation, isolated a%20b a%20b
Provenance

Derived from the documented rule and from the published example, in which every space became %20. Isolating one space separates a space-encoding difference from any other character's. EXECUTED RESULT: all four LibreOffice builds return the documented a%20b, so the space handling itself is not the difference seen in ENCODEURL_doc_example.

Matched
=ENCODEURL("abcXYZ123") Alphanumeric text has nothing to encode abcXYZ123 abcXYZ123
Provenance

Excel documents the function as "replacing certain non-alphanumeric characters", so a purely alphanumeric argument must come back unchanged. This case is the control for the others: an engine that fails here is not encoding, it is mangling.

Matched
=ENCODEURL("x=1&y=2") The reserved query-string delimiters = and & x%3D1%26y%3D2 x%3D1%26y%3D2
Provenance

Derived from the documented rule together with the percent-encodings the published example fixes: = is ASCII 0x3D and & is ASCII 0x26, so the encoded form is x%3D1%26y%3D2. These two characters matter because the documented companion use of ENCODEURL is building a WEBSERVICE query string, where an unescaped & would split the parameter. EXECUTED RESULT: all four LibreOffice builds return the derived x%3D1%26y%3D2, so the reserved query delimiters are handled as documented; the divergence recorded for this function is confined to the period.

Matched

LibreOffice Calc 25.8.7.3 (tested 2026-08-31)

FormulaDescriptionResultExpectedVerdict
=ENCODEURL("http://contoso.sharepoint.com/Finance/Profit and Loss Statement.xlsx") Microsoft's documented worked example: a SharePoint URL containing spaces http%3A%2F%2Fcontoso%2Esharepoint%2Ecom%2FFinance%2FProfit%20and%20Loss%20Statement%2Exlsx http%3A%2F%2Fcontoso.sharepoint.com%2FFinance%2FProfit%20and%20Loss%20Statement.xlsx
Provenance

Microsoft's page publishes this example verbatim, argument and result. Re-derived character by character from the documented rule ("returns a URL-encoded string, replacing certain non-alphanumeric characters with the percentage symbol (%) and a hexadecimal number"): the colon becomes %3A, each forward slash %2F and each space %20, while the letters, digits and -- decisively for this case -- the PERIODS are left literal. The published result keeps "contoso.sharepoint.com" and ".xlsx" unencoded, so the period is one of the non-alphanumeric characters Excel deliberately does not escape. EXECUTED RESULT -- SILENT WRONG VALUE. All four LibreOffice builds return 'http%3A%2F%2Fcontoso%2Esharepoint%2Ecom%2FFinance%2FProfit%20and%20Loss%20Statement%2Exlsx': identical to the documented result except that every PERIOD has been percent-encoded as %2E, which Microsoft's published example leaves literal. No error is raised and the string is still a decodable URL, so the difference survives into any downstream comparison, cache key or signature that expects Excel's output byte for byte. The period is an unreserved character in RFC 3986, so encoding it is legal but not what Excel does.

Mismatch
=ENCODEURL("a b") The single documented transformation, isolated a%20b a%20b
Provenance

Derived from the documented rule and from the published example, in which every space became %20. Isolating one space separates a space-encoding difference from any other character's. EXECUTED RESULT: all four LibreOffice builds return the documented a%20b, so the space handling itself is not the difference seen in ENCODEURL_doc_example.

Matched
=ENCODEURL("abcXYZ123") Alphanumeric text has nothing to encode abcXYZ123 abcXYZ123
Provenance

Excel documents the function as "replacing certain non-alphanumeric characters", so a purely alphanumeric argument must come back unchanged. This case is the control for the others: an engine that fails here is not encoding, it is mangling.

Matched
=ENCODEURL("x=1&y=2") The reserved query-string delimiters = and & x%3D1%26y%3D2 x%3D1%26y%3D2
Provenance

Derived from the documented rule together with the percent-encodings the published example fixes: = is ASCII 0x3D and & is ASCII 0x26, so the encoded form is x%3D1%26y%3D2. These two characters matter because the documented companion use of ENCODEURL is building a WEBSERVICE query string, where an unescaped & would split the parameter. EXECUTED RESULT: all four LibreOffice builds return the derived x%3D1%26y%3D2, so the reserved query delimiters are handled as documented; the divergence recorded for this function is confined to the period.

Matched

Docs & syntax