Excel like a finance pro.
The functions, VBA, and shortcuts a finance operator actually uses — curated, with CFO examples. Prefer them pre-built? Grab a ready-made model.
FIND / SEARCH
Text & cleanupLocate where one piece of text sits inside another — the position to slice at.
Difficulty
1What is it?
FIND and SEARCH both return the position where a piece of text first appears inside a larger string — a number you then feed to LEFT, MID, or RIGHT to cut at exactly the right spot. The difference is two things: SEARCH ignores case and allows wildcards (? and *), while FIND is case-sensitive and literal. Reach for SEARCH for everyday 'does this contain…' checks, and FIND when case matters or the text you're hunting for could itself contain a wildcard character.
2What it looks like
SEARCH(find_text, within_text, [start_num])- find_text
- The text to look for.
- within_text
- The string to search inside.
- [start_num]
- Which character to start searching from (default 1) — use it to find a second occurrence.
3When you use it
- Contains check: =IF(ISNUMBER(SEARCH("inv", A2)), "Invoice", "Other").
- Find a delimiter to slice at: =LEFT(A2, FIND("-", A2) - 1).
- Locate the second occurrence by passing a start position.
4See it in action
Change the inputs — the formula and result update live. Prefer the real thing? Download the Excel file and open it in Excel.
Return the position of a character inside B2 — the number you'd feed to LEFT or MID. FIND is case-sensitive; SEARCH isn't.
=FIND("-", B2)position 3| A | B | C | |
|---|---|---|---|
| 1 | Field | Value | Result |
| 2 | Reference | AA-1024-X | position 3 |
The lime cell holds the formula — click it (or any cell) to see its contents in the bar above, just like Excel. Edit the blue cells to watch it recompute.
5Common errors
#VALUE!The text isn't found.Fix: Wrap the whole thing in IFERROR, or test with ISNUMBER(SEARCH(…)) which returns TRUE/FALSE instead of erroring.
Case surpriseFIND missed a match because the case differs.Fix: Use SEARCH for case-insensitive matching; FIND is strict.
Wildcard taken literallyYou searched for a real ? or * with SEARCH.Fix: Use FIND (no wildcards), or escape with a tilde (~?) in SEARCH.
6Better functions & alternatives
- LEFT / RIGHT / MID — The extraction that uses FIND's position to cut the string.
- TEXTBEFORE / TEXTAFTER — Split at a delimiter directly, no position math (Microsoft 365).
- SUBSTITUTE — When you want to replace the found text, not just locate it.
Want FIND / SEARCH already wired into a model? Wauvel's free tools download as branded, formula-driven Excel.
Learn the moves here — or let Wauvel run them on your numbers.
Get my free report →