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.