Contact

Collabora Office TEXTSPLIT: Split text into a rectangular array

Text Intermediate Collabora Office Calc

Split rows and columns in the new Linux desktop build, distinguish empty tokens from padding and preserve the inspected trailing-delimiter behavior.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

Quick answer: =TEXTSPLIT("A,2/B,3";",";"/") independently produces two rows, [“A”,“2”] and [“B”,“3”]. Slash separates rows, comma separates columns, and the digit tokens remain text.

Important source limit: even with Ignore Empty = FALSE, the inspected splitter does not append an empty token after a delimiter at the very end. =TEXTSPLIT("a,b,";",";;FALSE()) predicts [“a”,“b”], not a third empty field. Do not use this behavior to validate a fixed-field interchange format without checking its field-count rules separately.

Syntax and defaults

=TEXTSPLIT(Text [; Column_Delimiter [; Row_Delimiter [; Ignore_Empty [; Match_Mode [; Pad_With]]]]])

Column_Delimiter divides values across columns; Row_Delimiter divides records down rows. Either delimiter can be a literal string or a supplied collection of delimiter strings. Omitted delimiters leave that dimension unsplit. Ignore Empty defaults to FALSE. Match Mode defaults to 0, case-sensitive; 1 requests case-insensitive matching. Pad With defaults to the not-available error described in help as #N/A. Official TEXTSPLIT help.

Although the help’s parameter prose calls Text optional, the evaluator requires at least one argument and explicitly rejects empty text. Use a nonempty text input. The source reads an explicit Pad With through its string helper: even a numeric zero pad becomes text “0”. This differs from EXPAND’s numeric padding contract.

Worked example: two delimiters and a missing field

Put a,b/c in A1. Then use:

=TEXTSPLIT(A1;",";"/";FALSE();0;"pending")

The independent expected array is:

Column 1 Column 2
a b
c pending

First split on /, obtaining row strings a,b and c. Then split each row on comma. The first row has two fields and the second one, so the result width is two and one padding cell is needed. Padding is added only to make the shorter row rectangular.

With no explicit pad, =TEXTSPLIT(A1;",";"/") keeps a, b and c as text but fills the final slot with a not-available error. With explicit pad 0, that last slot contains the string “0”, not a number. A missing field represented by padding is different from an empty field actually present between delimiters.

Consecutive and trailing delimiters

For a,,b, the two adjacent commas represent an interior empty field:

Formula Source-derived row
=TEXTSPLIT("a,,b";",";;FALSE()) "a", "", "b"
=TEXTSPLIT("a,,b";",";;TRUE()) "a", "b"
=TEXTSPLIT("a,b,";",";;FALSE()) "a", "b"

The first empty token is a zero-length string, not a numerical zero and not the default padding error. The third example demonstrates the trailing-boundary limitation: the source loop runs only while its start position is less than the text length. Reaching the final delimiter ends the loop without producing one more token.

Leading and interior empty tokens can be retained when Ignore Empty is FALSE. Treat this as a bounded source rule, not a promise that every empty-row or all-delimiter combination yields the same output shape as another spreadsheet engine.

Advanced use: normalize delimiter case without changing values

=TEXTSPLIT("aXbxc";"x";;FALSE();1) independently yields "a", "b", "c". It matches both X and x as separators. Returned substrings are copied from the original text; matching is not a command to change their case or trim spaces.

For a record string with both row and column separators, the evaluator splits rows first, then columns. If delimiter definitions overlap, that order matters. Prefer distinct unambiguous separators. Multiple delimiter strings are searched for the earliest occurrence; this is literal matching rather than a CSV parser with quoting, escaping and embedded-delimiter rules.

Digit strings remain text because result cells are written with PutString. If later arithmetic requires numbers, perform explicit, locale-appropriate conversion and validate the result. Avoid silently converting identifiers with leading zeros into quantities.

Errors and practical limits

Empty source text follows internal IllegalParameter. Allocation, source errors and locale-sensitive case conversion can introduce other limitations; there is no application-tested spill or keyboard workflow here. Empty delimiter strings are skipped by the search, not treated as character-by-character split instructions.

The lcl_SplitText helper and ScTextSplit establish the trailing-token rule, row-first evaluation and text padding. These are inspected implementation results, while the worked arrays are independently assembled. A precise array shape is not evidence that the new desktop has been tested entering or exporting it.

Product scope, compatibility and evidence

This guide covers the new Collabora Office desktop for Linux, using the Flathub source tag coda-26.04.4.3-1 and commit 81339d176148d0d5c81ff05d82540f58f8aaa117. The official desktop release notes and Linux package manifest identify that product/build. The package manifest is a dated observation from October 18, 2026, rather than an installed-binary check.

The 26.04 function help and exact evaluator source were inspected on October 18, 2026. Expected examples were independently calculated; no Collabora application was run. Expected values and arrays describe source-derived results, not verified keyboard entry or automatic spill behavior. Classic, Online/CODE, other operating systems and file-format round trips require their own checks.

The help identifies this function as outside OpenDocument 1.3 and uses the extension name COM.MICROSOFT.TEXTSPLIT. That does not establish lossless export to every spreadsheet format. The first Collabora release introducing it is not established by these sources. It is documented here as available, with no cited retirement or deprecation notice; an undocumented introduction date is not a deprecation claim.

  • TEXTBEFORE: extract one prefix instead of all fields
  • TEXTAFTER: extract one suffix
  • EXPAND: pad an existing array, with a different numeric-pad contract