Text

FIND Function in Excel

Finds one text string within another and returns the starting position (case-sensitive).

Syntax

  • =FIND(find_text, within_text, [start_num])

Arguments

  • find_text (required): Text to find
  • within_text (required): Text to search in
  • start_num (optional): Position to start searching (default 1)

Examples

  • =FIND("@", "[email protected]") - Find @ position in email - Result: 6
  • =FIND(" ", A1, FIND(" ", A1)+1) - Find second space - Result: Position of 2nd space

Excel FIND function documentation

  • FIND returns the starting position of one text string inside another — case-sensitive.
  • Syntax: =FIND(find_text, within_text, [start_num]). First character position is 1.
  • Returns #VALUE! when find_text is not found — wrap with IFERROR for safe extraction.
  • Related: [SEARCH](/functions/search/) (case-insensitive), [MID](/functions/mid/), [LEFT](/functions/left/).

FIND syntax and start_num

  • find_text cannot use wildcards — use [SEARCH](/functions/search/) with wildcards instead.
  • start_num skips earlier characters — find second "-": =FIND("-", A2, FIND("-", A2)+1).
  • Case-sensitive: FIND("A", "abc") fails; SEARCH would succeed for "a".
  • Combine with MID: =MID(A2, 1, FIND(" ", A2)-1) for text before first space.

Step-by-step: split email into user and domain

  • Step 1 — Email in A2: [email protected].
  • Step 2 — At position: =FIND("@", A2).
  • Step 3 — Username: =LEFT(A2, FIND("@", A2)-1).
  • Step 4 — Domain: =MID(A2, FIND("@", A2)+1, LEN(A2)).
  • Step 5 — M365: [TEXTBEFORE](/functions/textbefore/) and [TEXTAFTER](/functions/textafter/) simplify this pattern.

FIND vs SEARCH vs XMATCH

  • FIND — case-sensitive character position in text.
  • SEARCH — case-insensitive; supports ? and * wildcards.
  • Not for table lookups — use [XLOOKUP](/functions/xlookup/) for row retrieval, FIND for string parsing.
  • Compare: [SEARCH function](/functions/search/) for case-insensitive variant.

Worked examples to copy

  • Position of dash: =FIND("-", A2).
  • Text before delimiter: =LEFT(A2, FIND("-", A2)-1).
  • Second occurrence: =FIND("/", A2, FIND("/", A2)+1).
  • Safe find: =IFERROR(FIND("@", A2), 0) for conditional logic.

People also ask

  • FIND vs SEARCH in Excel? — FIND is case-sensitive; SEARCH is not and allows wildcards.
  • FIND returns #VALUE!? — Substring not found — expected behavior.
  • FIND with wildcard? — No. Use SEARCH for wildcard partial match position.
  • FIND last character? — Use nested FIND with start_num or SEARCH with reverse logic.

Common errors

  • #VALUE! if text not found
  • Case-sensitive (use SEARCH for case-insensitive)

Use cases

  • Text parsing
  • Data extraction
  • Validation

Frequently asked questions

  • What is the difference between FIND and SEARCH? FIND is case-sensitive: =FIND("A","abc") returns #VALUE!. SEARCH is case-insensitive: =SEARCH("A","abc") returns 1. SEARCH also supports wildcards (* and ?).
  • How do I check if text contains a substring? Use ISNUMBER with FIND: =ISNUMBER(FIND("text", A1)) returns TRUE if found, FALSE if not. This avoids the #VALUE! error.
  • How do I find the Nth occurrence? Use nested FIND with start position: =FIND("x", A1, FIND("x",A1)+1) finds second 'x'. For Nth, use SUBSTITUTE to replace N-1 occurrences first.
  • How do I find the last occurrence? Use: =FIND("@", SUBSTITUTE(A1,"@",CHAR(1), LEN(A1)-LEN(SUBSTITUTE(A1,"@","")))) finds last @. Or reverse the string and find first.
  • Can FIND use wildcards? No, FIND matches exact text only. Use SEARCH for wildcards: =SEARCH("*phone*", A1) finds 'phone' anywhere. Or use COUNTIF for checking: =COUNTIF(A1,"*phone*")>0.

Editorial review

  • Reviewed by Excel.Directory Editorial Team. Updated May 2026.

When to use FIND

  • Text parsing — common Text scenario for FIND.
  • Data extraction — common Text scenario for FIND.
  • Validation — common Text scenario for FIND.

FIND in the Text category

  • Browse all Text functions at /categories/text/ for related formulas.
  • FIND syntax: =FIND(find_text, within_text, [start_num])
  • find_text (required): Text to find
  • within_text (required): Text to search in
  • start_num (optional): Position to start searching (default 1)
  • Confirm FIND arguments match the syntax shown above before filling down.
  • Lock table and range references with $ when copying formulas across rows or sheets.

Formula checklist before you copy down

  • Confirm FIND arguments match the syntax shown above before filling down.
  • Lock table and range references with $ when copying formulas across rows or sheets.
  • If results look wrong, check for text stored as numbers and invisible spaces with TRIM.
  • Spot-check three known input rows manually against expected output.

Related Excel functions

  • SEARCH (/functions/search/): Finds one text string within another and returns the starting position (case-insensitive, supports wildcards).
  • SUBSTITUTE (/functions/substitute/): Replaces occurrences of old text with new text in a string.
  • LEFT (/functions/left/): Returns the specified number of characters from the start of a text string.
  • MID (/functions/mid/): Returns a specific number of characters from a text string, starting at a specified position.
  • RIGHT (/functions/right/): Returns the specified number of characters from the end of a text string.

Comparisons involving this function

  • LEFT vs MID vs RIGHT (/compare/left-vs-mid-vs-right/): Use LEFT, MID, and RIGHT for fixed-position extraction. Use TEXTBEFORE, TEXTAFTER, and TEXTSPLIT in modern Excel when values are separated by a delimiter.

Errors to watch for

  • #VALUE! if text not found — review causes on linked error pages in the directory.
  • Case-sensitive (use SEARCH for case-insensitive) — review causes on linked error pages in the directory.

Copy-paste audit workflow

  • Enter FIND on three test rows with known expected output documented on a QA tab.
  • Fill down only after absolute references are locked on lookup tables and rate tables.
  • Compare against manual calculation or a calculator for financial and statistical functions.
  • Search this directory for comparison guides when choosing between similar functions in the same category.

FIND worked examples to copy

  • =FIND("@", "[email protected]") — Find @ position in email. Expected result: 6.
  • =FIND(" ", A1, FIND(" ", A1)+1) — Find second space. Expected result: Position of 2nd space.

FIND reference summary for crawlers and offline review

  • FIND belongs to the Text category in Excel. Finds one text string within another and returns the starting position (case-sensitive).
  • Full syntax: =FIND(find_text, within_text, [start_num]). Open /functions/find/ for parameters, FAQs, and related pages.
  • Common mistakes: #VALUE! if text not found; Case-sensitive (use SEARCH for case-insensitive)
  • Pair this function with comparison guides when another Excel formula might fit the same task better.
  • Review fix-excel-formula-errors when unexpected errors appear after upgrading Excel or sharing across locales.