Loading documentation…
Loading documentation…
This page lists the 34 functions of the text family. Taxonomy/source: Text functions. The formula function contract has every family, the engine builds, and the evaluation limits.
All functions
| Function (aliases) | Engine | Contract |
|---|---|---|
ARRAYTOTEXT | Full only | |
DOLLAR | Full only | |
FIXED | Full only | |
REGEXEXTRACT | Full only | |
REGEXREPLACE | Full only | |
REGEXTEST | Full only | |
TEXTAFTER | Full only | |
TEXTBEFORE | Full only | |
TEXTSPLIT | Full only | |
VALUETOTEXT | Full only | |
LEN | Default + full | |
LEFT | Default + full | |
RIGHT | Default + full | |
MID | Default + full | |
CONCATCONCATENATE | Default + full | |
UPPER | Default + full | |
LOWER | Default + full | |
TRIM | Default + full | |
TEXT | Default + full | |
EXACT | Default + full | |
TEXTJOIN | Default + full | |
SUBSTITUTE | Default + full | |
REPLACE | Default + full | |
FIND | Default + full | |
SEARCH | Default + full | |
VALUE | Default + full | |
CLEAN | Default + full | |
REPT | Default + full | |
CHAR | Default + full | |
CODE | Default + full | |
UNICHAR | Default + full | |
UNICODE | Default + full | |
PROPER | Default + full | |
NUMBERVALUE | Default + full |
Argument order, required/default state, accepted shapes, repetition, and return shape come directly from the inventory.
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
array | yes | none | scalar, range, array, reference | once |
format | no | 0 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
number | yes | none | scalar, reference | once |
decimals | no | 2 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
number | yes | none | scalar, reference | once |
decimals | no | 2 | scalar, reference | once |
noCommas | no | false | scalar, reference | once |
Return shape: contextual.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
text | yes | none | scalar, reference | once |
pattern | yes | none | scalar, reference | once |
returnMode | no | 0 | scalar, reference | once |
caseSensitivity | no | 0 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
text | yes | none | scalar, reference | once |
pattern | yes | none | scalar, reference | once |
replacement | yes | none | scalar, reference | once |
occurrence | no | 0 | scalar, reference | once |
caseSensitivity | no | 0 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
text | yes | none | scalar, reference | once |
pattern | yes | none | scalar, reference | once |
caseSensitivity | no | 0 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
text | yes | none | scalar, reference | once |
delimiter | yes | none | scalar, reference | once |
instanceNum | no | 1 | scalar, reference | once |
matchMode | no | 0 | scalar, reference | once |
matchEnd | no | 0 | scalar, reference | once |
ifNotFound | no | #N/A | scalar, reference | once |
Return shape: array.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
text | yes | none | scalar, reference | once |
colDelimiter | no | none | scalar, range, array, reference | once |
rowDelimiter | no | none | scalar, range, array, reference | once |
ignoreEmpty | no | false | scalar, reference | once |
matchMode | no | 0 | scalar, reference | once |
padWith | no | #N/A | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
value | yes | none | scalar, reference | once |
format | no | 0 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
value | yes | none | scalar, range, array, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
text | yes | none | scalar, reference | once |
count | no | 1 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
text | yes | none | scalar, reference | once |
start | yes | none | scalar, reference | once |
count | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
value | yes | none | scalar, range, array, reference | one-or-more |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
value | yes | none | scalar, reference | once |
formatText | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
number1 | yes | none | scalar, reference | once |
number2 | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
delimiter | yes | none | scalar, reference | once |
ignoreEmpty | yes | none | scalar, reference | once |
text | yes | none | scalar, range, array, reference | one-or-more |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
text | yes | none | scalar, reference | once |
oldText | yes | none | scalar, reference | once |
newText | yes | none | scalar, reference | once |
instance | no | all | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
oldText | yes | none | scalar, reference | once |
start | yes | none | scalar, reference | once |
count | yes | none | scalar, reference | once |
newText | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
findText | yes | none | scalar, reference | once |
withinText | yes | none | scalar, reference | once |
start | no | 1 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
text | yes | none | scalar, reference | once |
count | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
number | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
text | yes | none | scalar, reference | once |
decimalSeparator | no | . | scalar, reference | once |
groupSeparator | no | , | scalar, reference | once |
These values are normative for the listed Sheetwrite subset. function-defined and contextual are explicit limitations: consult the formula guides' function-specific sections rather than assuming another spreadsheet's edge behavior.
| Dimension | Contract |
|---|---|
| shape | scalar: accepted range: contextual array: contextual broadcast: function-defined result: scalar |
| coercion | blank: empty-text text: preserved boolean: preserved error: propagate |
| text | case: function-defined wildcard: literal |
| environment | locale: function-defined dateSystem: function-defined |
| numeric | tolerance: not-applicable domain: function-defined iteration: kind: none maximum: none |
| calculation | dependencies: tracked lazy: eager spill: scalar fill: relative-reference-rewrite copy: relative-reference-rewrite structuralRewrite: ast-reference-rewrite |
| persistence | snapshot: formula-source history: formula-source collaboration: formula-source xlsxSource: rewrite-on-structural-edit |
| Dimension | Contract |
|---|---|
| shape | scalar: accepted range: contextual array: contextual broadcast: function-defined result: scalar |
| coercion | blank: empty-text text: preserved boolean: preserved error: propagate |
| text | case: sensitive wildcard: literal |
| environment | locale: invariant dateSystem: not-applicable |
| numeric | tolerance: not-applicable domain: function-defined iteration: kind: none maximum: none |
| calculation | dependencies: tracked lazy: eager spill: scalar fill: relative-reference-rewrite copy: relative-reference-rewrite structuralRewrite: ast-reference-rewrite |
| persistence | snapshot: formula-source history: formula-source collaboration: formula-source xlsxSource: rewrite-on-structural-edit |
| Dimension | Contract |
|---|---|
| shape | scalar: accepted range: contextual array: contextual broadcast: function-defined result: scalar |
| coercion | blank: empty-text text: preserved boolean: preserved error: propagate |
| text | case: insensitive wildcard: supported |
| environment | locale: invariant dateSystem: not-applicable |
| numeric | tolerance: not-applicable domain: function-defined iteration: kind: none maximum: none |
| calculation | dependencies: tracked lazy: eager spill: scalar fill: relative-reference-rewrite copy: relative-reference-rewrite structuralRewrite: ast-reference-rewrite |
| persistence | snapshot: formula-source history: formula-source collaboration: formula-source xlsxSource: rewrite-on-structural-edit |
| Dialect | Status |
|---|---|
| Microsoft Excel | documented |
| Google Sheets | unverified |
| OpenFormula | unverified |
Limitations: Google Sheets and OpenFormula results require producer evidence before compatibility is claimed.
| Dialect | Status |
|---|---|
| Microsoft Excel | divergent |
| Google Sheets | unverified |
| OpenFormula | unverified |
Limitations: REGEXTEST, REGEXEXTRACT, and REGEXREPLACE use the regex-lite syntax, not full PCRE2. Lookaround, backreferences, Unicode classes such as \p{L}, and other patterns the engine cannot compile return #VALUE!. \d, \s, and \w use ASCII character classes. \b uses ASCII word boundaries. As in Excel, caseSensitivity is 0 (case-sensitive, the default) or 1 (case-insensitive). Case-insensitive matching and the (?i) flag fold ASCII letters only. If caseSensitivity is 1 or the pattern enables an inline i flag, a pattern with a non-ASCII cased letter or a \x, \u, or \U escape returns #VALUE!. Regex programs are limited to 2 MiB. Text inputs and outputs are limited to 32,767 characters.
| Layer | Status and source/evidence |
|---|---|
| Parser | implementedpackages/wasm/src/eval/analysis/mod.rs |
| Evaluator | implementedpackages/wasm/src/eval/analysis/text.rs |
| Formula assist | implementedpackages/wasm/src/eval/analysis/mod.rs |
| Evidence | behavior-testedpackages/wasm/src/eval/analysis/text.rs |
| Layer | Status and source/evidence |
|---|---|
| Parser | implementedpackages/wasm/src/calc.rs |
| Evaluator | implementedpackages/wasm/src/eval/mod.rspackages/wasm/src/eval/functions.rs |
| Formula assist | implementedpackages/core/src/formula-assist.ts |
| Evidence | source-linkedpackages/wasm/src/tests.rspackages/core/test/formula-assist.test.ts |