FIND
Locate the position of a text string inside another text string with Excel's case-sensitive FIND function.
Spreadsheet editor
Spreadsheet editor
Syntax
=FIND(substring, text, [start_num])
Returns: Number Arguments
| Argument | Required | Description |
|---|---|---|
| substring | Yes | The text you want to find within the main text. |
| text | Yes | The text string in which you want to search for the substring. |
| start_num | No | The character position in the main text where the search should start. If omitted, the search starts at the beginning of the text. |
About
FIND is especially helpful when you combine it with other text functions. For example, pair it with MID or LEFT to pull out part of a string, or use it with SUBSTITUTE to replace text at a specific spot. If you don't need case-sensitive matching, try SEARCH instead, which also supports wildcard characters.
FIND does not support wildcards (* or ?). If the text you're looking for isn't found, or if the start position is out of range, Excel returns a #VALUE! error. You can wrap FIND in IFERROR to handle that gracefully.
Exercises using FIND
Parse full address
IntermediateExtract city from a full address string (assume consistent format).
Open exerciseExtract domain from email
IntermediateExtract the domain name (after @) from email addresses.
Open exerciseExtract file extension from a path
IntermediateExtract file extensions from shared-drive file paths when the number of characters after the dot changes from row to row.
Open exerciseExtract last name with RIGHT and LEN
IntermediateExtract last names from a customer list by combining RIGHT, LEN, and FIND.
Open exerciseComplex text parsing
AdvancedParse inconsistently formatted addresses into separate columns (street, city, state, zip).
Open exerciseExamples
Finding a separator in product codes
Spreadsheet editor
Searching from a specific position
Spreadsheet editor
Checking for uppercase with case-sensitive matching
Spreadsheet editor
Watch out for
Forgetting case sensitivity
FIND("apple", "Apple Juice") returns a #VALUE! error because "apple" does not match "Apple".
→ If you don't need case-sensitive matching, use SEARCH instead.
Not handling missing text
When the search text isn't found, FIND returns #VALUE!, which can break downstream formulas.
→ Wrap your formula in IFERROR to return a fallback value, like 0 or an empty string.
Setting start_num to 0 or a negative number
FIND requires start_num to be 1 or greater. A value of 0 or below triggers a #VALUE! error.
→ Always pass a positive number for start_num, or leave it out to start from position 1.