FIND Function (LibreOffice Calc)

Text Intermediate LibreOffice Calc Introduced in LibreOffice 3.0
text search parsing data-cleaning extraction

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

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.

=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
FIND is the backbone of delimiter‑based parsing — combine it with LEN, LEFT, RIGHT, and MID for powerful text‑processing workflows.

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.

Copyright 2026. All rights reserved.