TEXTAFTER
Unsupported (not recognized)Category: Text · Last tested 2026-09-01
Real compatibility results for the TEXTAFTER 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.
TEXTAFTER 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 25.8.7.3.
If you need TEXTAFTER in LibreOffice Calc, use 25.8.7.3 or newer.
Support matrix
| Engine | Documented | Live-tested | Verdict |
|---|---|---|---|
| Excel (desktop) | Yes | No — documented only | n/a |
| Excel for the web | — | Yes (recalc, 2026-09-01) | Supported, behaves as documented |
| Google Sheets | No | Yes (Drive import, 2026-08-29) | Unsupported (not recognized) |
| LibreOffice Calc | Yes | 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 TEXTAFTER’s support changed — not documentation claims, real results.
| LibreOffice version | Verdict | Tested |
|---|---|---|
| 24.2.0.3 | Unsupported (not recognized) | 2026-08-29 |
| 24.8.7.2 | Unsupported (not recognized) | 2026-08-29 |
| 25.2.0.3 | Unsupported (not recognized) | 2026-08-29 |
| 25.8.7.3 | Supported, behaves as documented | 2026-07-29 |
Why isn't TEXTAFTER working in LibreOffice?
If TEXTAFTER returns a #NAME? error in LibreOffice Calc, you are
almost certainly running a release older than 25.8.7.3 — that is exactly
what our executed tests show: #NAME? in 24.2.0.3, working from
25.8.7.3 onward. Check your version under Help → About LibreOffice and upgrade to
25.8.7.3 or newer; no setting or extension enables it in older releases. (Other causes of this
error: see the error values guide.)
Why isn’t TEXTAFTER working in Google Sheets?
Google Sheets does not implement TEXTAFTER: we imported the formula into
Sheets on 2026-08-29 and every case came back #NAME?
(unrecognized function). Sheets is a rolling service with no version to pin, so this is a
statement about the service on that date, and Google’s own
function list does not document it either. Rewrite the formula with a documented
Sheets equivalent — see the
Excel ↔ Sheets equivalents table.
Discovered quirks
-
=TEXTAFTER("a-b-c","-") on
Google Sheets returned
#NAME?, but the documented/expected
result is b-c.
Provenance
MISMATCH vs expected: expected 'b-c', got '#NAME?'
-
=TEXTAFTER("a-b-c","-",2) on
Google Sheets returned
#NAME?, but the documented/expected
result is c.
Provenance
MISMATCH vs expected: expected 'c', got '#NAME?'
-
=TEXTAFTER("a-b-c","-",-1) on
Google Sheets returned
#NAME?, but the documented/expected
result is c.
Provenance
-1 means the last delimiter; text after it is 'c'; MISMATCH vs expected: expected 'c', got '#NAME?'
-
=TEXTAFTER("abc","-","none") on
Google Sheets returned
#NAME?, but the documented/expected
result is #VALUE!.
Provenance
Signature: TEXTAFTER(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found]). "none" here is passed as instance_num, where a number is required, so the documented result is #VALUE! -- confirmed by Excel for the web and LibreOffice 25.8. if_not_found must be the sixth argument.; MISMATCH vs expected: expected '#VALUE!', got '#NAME?'
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 |
|---|---|---|---|---|
| =TEXTAFTER("a-b-c","-") | Text after the first delimiter occurrence | b-c | b-c | Matched |
| =TEXTAFTER("a-b-c","-",2) | instance_num=2 counts to the 2nd delimiter | c | c | Matched |
| =TEXTAFTER("a-b-c","-",-1) | Negative instance_num counts delimiters from the end | c | cProvenance-1 means the last delimiter; text after it is 'c' |
Matched |
| =TEXTAFTER("abc","-","none") | Text in the instance_num position (3rd argument) is not if_not_found (6th) -> #VALUE! | #VALUE! | #VALUE!ProvenanceSignature: TEXTAFTER(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found]). "none" here is passed as instance_num, where a number is required, so the documented result is #VALUE! -- confirmed by Excel for the web and LibreOffice 25.8. if_not_found must be the sixth argument. |
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.
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =TEXTAFTER("a-b-c","-") | Text after the first delimiter occurrence | #NAME? | b-c | Mismatch |
| =TEXTAFTER("a-b-c","-",2) | instance_num=2 counts to the 2nd delimiter | #NAME? | c | Mismatch |
| =TEXTAFTER("a-b-c","-",-1) | Negative instance_num counts delimiters from the end | #NAME? | cProvenance-1 means the last delimiter; text after it is 'c' |
Mismatch |
| =TEXTAFTER("abc","-","none") | Text in the instance_num position (3rd argument) is not if_not_found (6th) -> #VALUE! | #NAME? | #VALUE!ProvenanceSignature: TEXTAFTER(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found]). "none" here is passed as instance_num, where a number is required, so the documented result is #VALUE! -- confirmed by Excel for the web and LibreOffice 25.8. if_not_found must be the sixth argument. |
Mismatch |
LibreOffice Calc 25.8.7.3 (tested 2026-07-29)
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =TEXTAFTER("a-b-c","-") | Text after the first delimiter occurrence | b-c | b-c | Matched |
| =TEXTAFTER("a-b-c","-",2) | instance_num=2 counts to the 2nd delimiter | c | c | Matched |
| =TEXTAFTER("a-b-c","-",-1) | Negative instance_num counts delimiters from the end | c | cProvenance-1 means the last delimiter; text after it is 'c' |
Matched |
| =TEXTAFTER("abc","-","none") | Text in the instance_num position (3rd argument) is not if_not_found (6th) -> #VALUE! | #VALUE! | #VALUE!ProvenanceSignature: TEXTAFTER(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found]). "none" here is passed as instance_num, where a number is required, so the documented result is #VALUE! -- confirmed by Excel for the web and LibreOffice 25.8. if_not_found must be the sixth argument. |
Matched |
Docs & syntax
- Excel (desktop): official documentation
- LibreOffice Calc: official documentation
Related how-to recipes
Where TEXTAFTER behaves differently
- Which LibreOffice version for VSTACK, TEXTSPLIT, TAKE & DROP?
VSTACK, HSTACK, TEXTSPLIT, TAKE and DROP return #NAME? in LibreOffice 24.2, 24.8 and 25.2 - our executed runs show all fourteen working only from 25.8.7.3. Full version map by wave. - FILTER no match: Excel #CALC! vs LibreOffice #N/A
An empty FILTER is #CALC! in Excel but #N/A in LibreOffice, and TEXTAFTER's fallback still errors. Executed Google Sheets has no TEXTBEFORE/TEXTAFTER at all - it returns #NAME?. - openpyxl and _xlfn.XLOOKUP: why your XLOOKUP opens as #NAME?
openpyxl writes formula text verbatim, so =XLOOKUP(...) is stored in the .xlsx under its plain name. Executed 2026-09-12: that cell is #NAME? in Excel for the web and in all four pinned LibreOffice builds, while =_xlfn.XLOOKUP(...) returns 20 in Excel for the web and in LibreOffice 24.8, 25.2 and 25.8.