TEXTJOIN Function (Gnumeric)
Use Gnumeric TEXTJOIN with a delimiter and explicit blank policy, including empty formulas, whitespace, errors and stable field layouts.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: =TEXTJOIN("-",TRUE,"A","","B") has the reference result A-B; changing TRUE to FALSE gives A–B. Gnumeric checks both physical blanks and empty converted strings when the ignore flag is true.
Availability and evidence
- Introduction: Gnumeric 1.12.32: NEWS explicitly adds TEXTJOIN alongside CONCAT.
- Source support: Registered in the Gnumeric 1.12.62 plugin. No retirement is established. The last functioning application version is unverified for this guide.
- Evidence dates: Official 1.12.62 source was retained October 13–14, 2026 and reviewed October 15. Exact string and rational-matrix reference checks are independent calculations, not native Gnumeric, headless application or GUI execution.
Exact syntax and required arguments
=TEXTJOIN(del,blank,s1,s2,...)
The delimiter, ignore-blanks flag and at least one item are required. The callback returns #VALUE! if fewer than three arguments reach it. There are no optional defaults for the first two positions. Use TRUE or FALSE explicitly for the flag and "" explicitly for an empty delimiter.
The delimiter is inserted between retained items, never before the first or after the last retained item. Text values, cell references and ranges can supply the items. A multi-character delimiter is allowed. With an empty delimiter the retained strings simply touch.
The second argument is converted to a Boolean. Source inspection shows numeric zero selects FALSE and a nonzero numeric value selects TRUE. A string that is not recognized as Boolean text produces #VALUE!. Using the actual TRUE/FALSE values is clearer than relying on text parsing or localized spellings.
Worksheet that separates three kinds of emptiness
Create JoinParts with the following cells. A3 must have no content. A4 contains a formula whose result is empty text. A5 contains exactly one ordinary space.
| Cell | Entry | Value type |
|---|---|---|
| A2 | red | Text |
| A3 | physically empty | Blank |
| A4 | ="" |
Empty text result |
| A5 | one space | Nonempty text |
| A6 | blue | Text |
Put =TEXTJOIN("|",TRUE,A2:A6) in C2. The reference output is red| |blue: the single space remains, while A3 and A4 are omitted. Put =TEXTJOIN("|",FALSE,A2:A6) in C3. Its output is red||| |blue, with four separators for five retained positions. A3 and A4 each contribute an empty field.
In a copy, replace the space in A5 with a physically empty cell. C2 becomes red|blue; C3 becomes red||||blue. This makes the difference between trimming whitespace and ignoring blanks visible. TEXTJOIN does not trim the data.
Literal controls
| Control | Independent reference result |
|---|---|
=TEXTJOIN("::",FALSE,"aa","bb") |
aa::bb |
=TEXTJOIN("-",TRUE,"A","","B") |
A-B |
=TEXTJOIN("-",FALSE,"A","","B") |
A--B |
=TEXTJOIN("-",TRUE,"","A","") |
A |
=TEXTJOIN("-",FALSE,"","A","") |
-A- |
=TEXTJOIN("-",TRUE,"","") |
`` |
=TEXTJOIN("-",FALSE,"","") |
- |
=TEXTJOIN("",FALSE,"A","B") |
AB |
=TEXTJOIN("-",TRUE,"A"," ","B") |
A- -B |
=TEXTJOIN("-",0,"A","","B") |
A--B |
=TEXTJOIN("-",2,"A","","B") |
A-B |
=TEXTJOIN("-","banana","A") |
#VALUE! |
=TEXTJOIN("-",TRUE,"A",1/0) |
#DIV/0! |
These are independently assembled reference strings under the pinned callback rules. Quotes delimit text in formulas; quotation marks are not part of the results. The strict collector preserves input errors rather than converting them to readable error text.
Advanced: preserve field positions deliberately
Create ExportFields with text A17 in F2, a physically empty G2 and text West in H2. =TEXTJOIN("|",FALSE,F2:H2) gives A17||West, preserving the middle field’s position. TRUE gives A17|West, which no longer tells a receiver that the second field is absent.
In a copy enter text Blue in G2. Both flag choices now produce A17|Blue|West. Choose the flag from the output contract rather than from which result looks cleaner in a sample. For a human-facing list, skipping absent labels can be useful; for positional records it can shift the meaning of every later field.
Neither flag provides CSV quoting or escaping. If G2 contains Blue|Green, the false-flag result is A17|Blue|Green|West, which appears to contain four fields under a naive split. TEXTJOIN does not know whether that bar is data or structure. Use a separately specified export format when values can contain the delimiter.
Advanced: keep formatting and failure policy separate
For numeric identifiers, the collector uses the underlying value rather than a cell’s custom number format. A numeric 7 displayed with leading zeroes is still converted from 7. Supply an explicitly formatted TEXT result or store the identifier as text when the output requires 007.
An error in any item propagates even with TRUE. On a copy put =1/0 in A4; both range formulas produce #DIV/0!. Ignoring blanks is not a request to discard failed calculations. A literal string that spells #DIV/0! remains normal text and is joined normally.
The delimiter and flag are evaluated before item collection. An error value in either propagates as well. A physically empty delimiter reference is not a substitute for the explicit empty-string delimiter used here; scalar evaluation and conversion can matter, so use a deliberate "" when no separator is wanted.
Troubleshooting
If there are too many separators, inspect the FALSE flag and empty text formulas before removing characters. If a visually blank item still appears, check for spaces or other invisible characters. If displayed currency or dates lose their formatting, convert them explicitly before joining. Reproduce a failure with a short one-column range before adding other expressions.
Localized Boolean strings, extreme text lengths, multidimensional UI entry, native file transfers and exact localized error displays were not executed. The documented callback and collector behavior is kept separate from those runtime checks.