T
Supported, behaves as documentedCategory: Text · Last tested 2026-09-01
Real compatibility results for the T 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) | Supported, behaves as documented |
| Google Sheets | Yes | Yes (Drive import, 2026-08-31) | Supported, behaves as documented |
| LibreOffice Calc | Yes | Yes (25.8.7.3, 2026-08-31) | Supported, behaves as documented |
LibreOffice version history
We executed the same test cases under each LibreOffice release to show exactly when T’s support changed — not documentation claims, real results.
| LibreOffice version | Verdict | Tested |
|---|---|---|
| 24.2.0.3 | Supported, behaves as documented | 2026-08-31 |
| 24.8.7.2 | Supported, behaves as documented | 2026-08-31 |
| 25.2.0.3 | Supported, behaves as documented | 2026-08-31 |
| 25.8.7.3 | Supported, behaves as documented | 2026-08-31 |
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 |
|---|---|---|---|---|
| =T("Rainfall") | Microsoft's documented example: T returns text arguments unchanged | Rainfall | RainfallProvenanceVerbatim from Microsoft: 'If value is or refers to text, T returns value.' The page's own example returns Rainfall for a cell holding that text |
Matched |
| =T(19) | DIVERGENCE PROBE: a number is not text, so T returns empty text rather than the number | ProvenanceVerbatim from Microsoft: 'If value does not refer to text, T returns "" (empty text)', and the page's example for the value 19 says 'Because the second value is a number, empty text is returned'. An engine that coerced the number to a string would return "19" instead |
Matched | |
| =T(TRUE) | A logical value is also not text, so the result is empty text | ProvenanceMicrosoft's example table covers this case explicitly: 'Because the third value is a logical value, empty text is returned'. There is no TRUE -> "TRUE" coercion |
Matched | |
| =T(A1) | A reference to a cell holding text returns that text | hello | helloProvenanceThe referenced value is text, so T passes it through unchanged |
Matched |
| =T(A1) | A reference to a cell holding a number returns empty text | ProvenanceThe referenced value is a number, which is not text, so T returns "" |
Matched | |
| =T(1/0) | An error value passed to T propagates rather than becoming empty text | #DIV/0! | #DIV/0!ProvenanceError values propagate through T; the argument itself evaluates to #DIV/0! and that error is the result of the whole expression |
Matched |
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 |
|---|---|---|---|---|
| =T("Rainfall") | Microsoft's documented example: T returns text arguments unchanged | Rainfall | RainfallProvenanceVerbatim from Microsoft: 'If value is or refers to text, T returns value.' The page's own example returns Rainfall for a cell holding that text |
Matched |
| =T(19) | DIVERGENCE PROBE: a number is not text, so T returns empty text rather than the number | ProvenanceVerbatim from Microsoft: 'If value does not refer to text, T returns "" (empty text)', and the page's example for the value 19 says 'Because the second value is a number, empty text is returned'. An engine that coerced the number to a string would return "19" instead |
Matched | |
| =T(TRUE) | A logical value is also not text, so the result is empty text | ProvenanceMicrosoft's example table covers this case explicitly: 'Because the third value is a logical value, empty text is returned'. There is no TRUE -> "TRUE" coercion |
Matched | |
| =T(A1) | A reference to a cell holding text returns that text | hello | helloProvenanceThe referenced value is text, so T passes it through unchanged |
Matched |
| =T(A1) | A reference to a cell holding a number returns empty text | ProvenanceThe referenced value is a number, which is not text, so T returns "" |
Matched | |
| =T(1/0) | An error value passed to T propagates rather than becoming empty text | #DIV/0! | #DIV/0!ProvenanceError values propagate through T; the argument itself evaluates to #DIV/0! and that error is the result of the whole expression |
Matched |
LibreOffice Calc 25.8.7.3 (tested 2026-08-31)
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =T("Rainfall") | Microsoft's documented example: T returns text arguments unchanged | Rainfall | RainfallProvenanceVerbatim from Microsoft: 'If value is or refers to text, T returns value.' The page's own example returns Rainfall for a cell holding that text |
Matched |
| =T(19) | DIVERGENCE PROBE: a number is not text, so T returns empty text rather than the number | ProvenanceVerbatim from Microsoft: 'If value does not refer to text, T returns "" (empty text)', and the page's example for the value 19 says 'Because the second value is a number, empty text is returned'. An engine that coerced the number to a string would return "19" instead |
Matched | |
| =T(TRUE) | A logical value is also not text, so the result is empty text | ProvenanceMicrosoft's example table covers this case explicitly: 'Because the third value is a logical value, empty text is returned'. There is no TRUE -> "TRUE" coercion |
Matched | |
| =T(A1) | A reference to a cell holding text returns that text | hello | helloProvenanceThe referenced value is text, so T passes it through unchanged |
Matched |
| =T(A1) | A reference to a cell holding a number returns empty text | ProvenanceThe referenced value is a number, which is not text, so T returns "" |
Matched | |
| =T(1/0) | An error value passed to T propagates rather than becoming empty text | #DIV/0! | #DIV/0!ProvenanceError values propagate through T; the argument itself evaluates to #DIV/0! and that error is the result of the whole expression |
Matched |
Docs & syntax
- Excel (desktop): official documentation
- Google Sheets: official documentation
- LibreOffice Calc: official documentation
Where T behaves differently
- LENB and CJK text: 4 in Sheets and LibreOffice, 2 in Excel for the web
Microsoft's archived LEN/LENB page says LENB counts 2 bytes per character only under a DBCS default language, otherwise 1. Executed under a non-DBCS locale, =LENB("日本") returned 4 in Google Sheets and all four LibreOffice builds - but 2, the documented answer, in Excel for the web. Desktop Excel stays documentation only.