FINDB Function (Gnumeric)
Find case-sensitive UTF-8 byte positions with FINDB in Gnumeric. Check starting offsets, empty searches, multibyte text and extraction examples.
Verification status: Cached October 14, 2026 evidence; no new application run on October 15. 18 selected expressions were recalculated with Gnumeric 1.12.57 ssconvert. Formula identities and raw CSV fields were checked; Gnumeric 1.12.62 was source-checked only; GUI display and native output types were not verified. How formula examples are checked
Quick answer: =FINDB("v","Lévy") produced 4 in Gnumeric 1.12.57.
Availability and version history
- Introduced: First introduction is unestablished; the exact function is present in 1.12.57 source.
- Supported in: Registered in Gnumeric 1.12.62; no retirement is established.
- Last functioning version: Selected calculations are verified in 1.12.57. The newest functioning release is unverified; source registration in 1.12.62 does not establish newer runtime results.
- Scope: Desktop Gnumeric with its String Functions plugin. English comma-separated formulas are shown.
- Checked: October 14, 2026. Tables use 1.12.57 ssconvert under C.UTF-8; 1.12.62 was source-inspected only.
What FINDB returns
FINDB returns the one-based byte position of a literal, case-sensitive match. The optional starting byte restricts where searching begins; the reported position is still relative to the whole original string. Versioned function help.
Syntax and arguments
=FINDB(needle,haystack[,start_byte])
- needle: Required literal text to find. FINDB does not interpret wildcard patterns.
- haystack: Required text to search.
- start_byte: Optional one-based starting byte, default 1. It must lie within the source’s byte length.
Brackets indicate optional arguments; do not type them. Current worksheet implementation.
Reproducible examples
The native column records recalculated CSV field content. Quotes delimit readable text; "" means an empty field expected to be text from the callback. They do not certify the exported cell type. The independent column checks the stated character mapping, UTF-8 byte operation or decimal conversion.
| Formula | Gnumeric 1.12.57 CSV result | Independent reference |
|---|---|---|
=FINDB("v","Lévy") |
4 |
4 |
=FINDB("é","Lévy") |
2 |
2 |
=FINDB("v","Lévy",3) |
4 |
4 |
=FINDB("B","Aä¸B") |
5 |
5 |
=FINDB("😀","A😀B") |
2 |
2 |
=FINDB("B","A😀B") |
6 |
6 |
=FINDB("n","Cancún") |
3 |
3 |
=FINDB("n","Cancún",4) |
7 |
7 |
Practical worksheet
=FINDB("v","Lévy") returns 4, because é occupies two bytes. FIND’s character index for v is 3, so these positions are not interchangeable. In a worksheet with Lévy in A2, use =FINDB("é",A2) when the next operation also expects a byte position.
Advanced interpretation and checks
The saved =MIDB("Lévy",FINDB("é","Lévy"),LENB("é")) returns é. The search supplies byte 2 and the length supplies two bytes, so both units agree.
In Cancún, searching for n from the default start finds byte 3; starting at byte 4 finds the later n at byte 7. The result is an absolute position, not a distance from the start argument.
Boundaries and troubleshooting
Uppercase V does not match lowercase v. A missing match, start below 1, or start beyond the final byte gives #VALUE!. For the tested nonempty string an empty needle returns the valid starting position, but an empty source still fails the start-range check.
When the selected start falls inside é, the inspected implementation advances to the following character boundary. Thus starting at byte 3 skips é but can still find v. Positive fractional starts are truncated after validation in the tested cases. F2 contains Lévy. Use SEARCH for a character-based case-insensitive search; it does not produce a byte index.
| Formula | Gnumeric 1.12.57 CSV result |
|---|---|
=FINDB("é","Lévy",3) |
#VALUE! |
=FINDB("V","Lévy") |
#VALUE! |
=FINDB("v","Lévy",5) |
#VALUE! |
=FINDB("","Lévy") |
1 |
=FINDB("","Lévy",5) |
5 |
=FINDB("","Lévy",6) |
#VALUE! |
=FINDB("","",1) |
#VALUE! |
=FINDB("v","Lévy",2.9) |
4 |
=FINDB("é",F2) |
2 |
Official evidence and checking scope
The source snapshots and native results below were retained from October 14, 2026. The recovered guide was checked against those saved records on October 15; neither the application nor a newer release was executed again.
The complete FINDB callback is byte-identical between the two inspected releases. Both stale and uncached SUM controls recalculated correctly. Saved native XML retains the function identities. No GUI result display, other locale, native output-type certification or newer-release execution is claimed.