ENCODEURL
Quirk foundCategory: 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
| Engine | Documented | Live-tested | Verdict |
|---|---|---|---|
| Excel (desktop) | Yes | No — documented only | n/a |
| Excel for the web | — | Yes (recalc, 2026-09-01) | Inconclusive (no verdict published) |
| Google Sheets | Yes | Yes (Drive import, 2026-08-31) | Supported, behaves as documented |
| LibreOffice Calc | Yes | 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 version | Verdict | Tested |
|---|---|---|
| 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.
#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
-
=ENCODEURL("http://contoso.sharepoint.com/Finance/Profit and Loss Statement.xlsx") on
LibreOffice Calc returned
http%3A%2F%2Fcontoso%2Esharepoint%2Ecom%2FFinance%2FProfit%20and%20Loss%20Statement%2Exlsx, but the documented/expected
result is 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 vs expected: expected 'http%3A%2F%2Fcontoso.sharepoint.com%2FFinance%2FProfit%20and%20Loss%20Statement.xlsx', got 'http%3A%2F%2Fcontoso%2Esharepoint%2Ecom%2FFinance%2FProfit%20and%20Loss%20Statement%2Exlsx'
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.
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =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.xlsxProvenanceMicrosoft'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%20bProvenanceDerived 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! | abcXYZ123ProvenanceExcel 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%3D2ProvenanceDerived 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.
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =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.xlsxProvenanceMicrosoft'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%20bProvenanceDerived 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 | abcXYZ123ProvenanceExcel 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%3D2ProvenanceDerived 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)
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =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.xlsxProvenanceMicrosoft'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%20bProvenanceDerived 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 | abcXYZ123ProvenanceExcel 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%3D2ProvenanceDerived 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
- Excel (desktop): official documentation
- Google Sheets: official documentation
- LibreOffice Calc: official documentation