FINDB Function

Excel Functions › Text

All Excel versions DBCS languages

The Excel FINDB function locates one text string inside another and returns the position of its first byte — case-sensitively, just like FIND. It exists for double-byte character set (DBCS) languages — Japanese, Chinese, and Korean — where each native character occupies 2 bytes when such a language is the system default, so byte positions outrun character positions. Working in English or any other single-byte language? FINDB behaves exactly like FIND — just use FIND.


Quick answer: to get the byte position of the first "2" in A2:
=FINDB("2", A2) // returns 5 for 東京2026 on a Japanese locale; FIND returns 3
Feed the result to MIDB or REPLACEB — the other byte-counting functions.

Syntax

=FINDB(find_text, within_text, [start_num])
ArgumentDescription
find_textRequiredThe text to look for. Case-sensitive; no wildcards (that’s SEARCHB’s department).
within_textRequiredThe string to search inside.
start_numOptionalThe byte position to start searching from. Default is 1.

Available in: all Excel versions. Byte counting activates only when a DBCS language (Japanese, Chinese Simplified/Traditional, or Korean) is the system default language; otherwise positions are character positions and FINDB returns exactly what FIND would.

FINDB vs FIND: byte positions vs character positions

On a Japanese-locale system the digit "2" in 東京2026 is the 3rd character but the 5th byte, because each kanji ahead of it spans two bytes:

ABC
1Text in A2: 東京2026FormulaResult (Japanese locale)
2byte positions: 東=1–2, 京=3–4, "2"=5=FINDB("2", A2)5
3=FIND("2", A2)3
4=FINDB("a", "Dallas")2 — same as FIND
=FINDB("2", A2) // byte position - 5
=FIND("2", A2) // character position - 3

The whole point of a byte position is to hand it to the other B functions. Extract everything after a separator, in bytes:

=MIDB(A2, FINDB("-", A2) + 1, 50) // bytes after the first hyphen

Like FIND, FINDB is case-sensitive and errors when the text is missing — wrap with IFERROR for clean output:

=IFERROR(FINDB("x", A2), "not found")

Try it: char vs byte position finder

Live demo

Type a string and something to find, then toggle the system locale to see character and byte positions drift apart.

Errors & common pitfalls

Pitfall: never feed FINDB’s result to character-based functions. A FINDB position is in bytes; MID, LEFT, and REPLACE count characters. On DBCS text the units disagree and the extraction lands in the wrong place. Keep the families pure: FINDB→MIDB/LEFTB/REPLACEB, FIND→MID/LEFT/REPLACE.

Pitfall: results depend on the system language. The same formula returns 5 on a Japanese-locale PC and 3 on a US-locale PC — the file didn’t change, the byte-counting rules did. Shared workbooks need that assumption documented.

Working in English? Use FIND. On single-byte locales FINDB adds nothing over FIND — and FIND keeps your formulas portable.

#VALUE! — text not found (or case mismatch). FINDB is case-sensitive and wildcard-blind: searching for "abc" in "ABC" fails. Use SEARCHB for case-insensitive or wildcard matching, and IFERROR to soften missing-text errors.

Practice workbook

📊
Download the free FINDB practice workbook
Every example on this page, ready to open in Excel — plus practice challenges with answers on a separate tab. No sign-up required.

Frequently asked questions

What's the difference between FINDB and FIND?
FIND returns the match’s position counted in characters; FINDB counts in bytes. They differ only when a DBCS language (Japanese, Chinese, Korean) is the system default — each East Asian character before the match adds an extra 1 to the FINDB result.
What's the difference between FINDB and SEARCHB?
Same relationship as FIND vs SEARCH: FINDB is case-sensitive and takes no wildcards; SEARCHB ignores case and accepts ? and *. Both return byte positions.
Why does FINDB give me the same answer as FIND?
Your system default language isn’t a DBCS language, so every character counts as one byte and the positions coincide. Expected — and your cue to just use FIND.
Is start_num in FINDB measured in bytes too?
Yes — everything in the B family speaks bytes. =FINDB("2", A2, 5) starts scanning at byte 5. A common pattern chains finds: =FINDB("-", A2, FINDB("-", A2) + 1) locates the second hyphen, all in byte units.

Master functions like this in one day

This page covers one function. Our Excel Formulas and Functions class covers the 30 that matter most — live, hands-on, taught by professionals in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.

See the Formulas & Functions Class

Related functions: FIND · SEARCHB · MIDB · REPLACEB · LENB