FIND Function (LibreOffice Calc)
The FIND function in LibreOffice Calc returns the position of one text string within another, searching from left to right. It is case-sensitive and essential for delimiter-based parsing, text extraction, and data cleaning.
Compatibility
▾| Excel | ✔ |
| Gnumeric | ✔ |
| Google_sheets | ✔ |
| Libreoffice | ✔ |
| Numbers | ✔ |
| Onlyoffice | ✔ |
| Openoffice | ✔ |
| Wps | ✔ |
| Zoho | ✔ |
What the FIND Function Does ▾
- Returns the position of a substring within a string
- Searches from left to right
- Is case‑sensitive
- Does not support wildcards
- Returns an error if the substring is not found
It is designed to be precise, predictable, and ideal for structured text parsing.
Syntax ▾
FIND(find_text; within_text; [start])
Arguments
-
find_text:
The text to search for. -
within_text:
The text to search inside. -
start: (optional)
The position to begin searching (1‑based).
Defaults to 1.
Basic Examples ▾
Find the position of “e” in “Hello”
=FIND("e"; "Hello")
Returns 2.
Find “lo” in “Hello”
=FIND("lo"; "Hello")
Returns 4.
Case-sensitive search
=FIND("h"; "Hello")
Returns #VALUE! because “h” ≠ “H”.
Start searching from position 3
=FIND("l"; "Hello"; 3)
Returns 3.
Find a delimiter
=FIND("-"; A1)
Advanced Examples ▾
Extract text before a delimiter
=LEFT(A1; FIND("-"; A1) - 1)
Extract text after a delimiter
=RIGHT(A1; LEN(A1) - FIND("-"; A1))
Extract middle text between two delimiters
=MID(A1; FIND("-"; A1) + 1; FIND("-"; A1; FIND("-"; A1) + 1) - FIND("-"; A1) - 1)
Find the position of the Nth occurrence of a character
=FIND("☼"; SUBSTITUTE(A1; "-"; "☼"; 3))
(Finds the 3rd dash.)
Find the last occurrence of a character
=FIND("☼"; SUBSTITUTE(A1; "-"; "☼"; LEN(A1)-LEN(SUBSTITUTE(A1; "-"; ""))))
Validate that a delimiter exists
=IF(ISERROR(FIND("-"; A1)); "Missing"; "OK")
Extract file extension
=RIGHT(A1; LEN(A1) - FIND("."; A1))
Extract first name from “First Last”
=LEFT(A1; FIND(" "; A1) - 1)
Extract last name
=RIGHT(A1; LEN(A1) - FIND(" "; A1))
Edge Cases and Behavior Details ▾
FIND is case-sensitive
=FIND("a"; "Apple") → #VALUE!
=FIND("A"; "Apple") → 1
FIND does not support wildcards
Use SEARCH for wildcard support.
FIND returns #VALUE! if not found
=FIND("x"; "Hello") → #VALUE!
start < 1 → Err:502
=FIND("e"; "Hello"; 0)
start > text length → #VALUE!
=FIND("e"; "Hello"; 10)
FIND works with numbers (converted to text)
=FIND("2"; 2024) → 2
FIND respects Unicode characters
Positions count Unicode code points.
FIND returns first match only
No built‑in “find all” capability.
Common Errors and Fixes ▾
#VALUE! — Substring not found
Cause:
- Case mismatch
- Wrong delimiter
- Hidden characters
Fix:
Use SEARCH for case‑insensitive search.
Err:502 — Invalid argument
Cause:
- start < 1
- Non‑numeric start
FIND returns unexpected position
Cause:
- Leading spaces
- Hidden characters
- Non‑breaking spaces
- Unicode combining marks
Fix:
Use TRIM, CLEAN, or SUBSTITUTE.
Best Practices ▾
- Use FIND for precise, case‑sensitive parsing
- Combine with LEFT/RIGHT/MID for extraction
- Use SUBSTITUTE to target specific occurrences
- Use TRIM to normalize text before searching
- Use SEARCH when case‑insensitivity is required
Related Patterns and Alternatives ▾
- Use SEARCH for case‑insensitive search
- Use LEFT, RIGHT, MID for extraction
- Use LEN to measure string length
- Use SUBSTITUTE to target specific occurrences
- Use TRIM and CLEAN to normalize text
By mastering FIND and its companion functions, you can build precise, flexible, and robust text‑processing workflows in LibreOffice Calc.