← All functions

FINDB

Quirk found

Category: Text · Last tested 2026-09-01

Real compatibility results for the FINDB function: executed in Excel for the web, Google Sheets and LibreOffice Calc, with desktop Excel behavior from Microsoft’s official documentation (we do not run desktop Excel — Excel for the web is a different application and is executed separately). Syntax and links to that documentation are below.

Support matrix

EngineDocumentedLive-testedVerdict
Excel (desktop)Yes No — documented only n/a
Excel for the web— Yes (recalc, 2026-09-01) Supported, behaves as documented
Google SheetsYes Yes (Drive import, 2026-08-31) Quirk found
LibreOffice CalcNo Yes (25.8.7.3, 2026-08-31) Quirk found

LibreOffice version history

We executed the same test cases under each LibreOffice release to show exactly when FINDB’s support changed — not documentation claims, real results.

LibreOffice versionVerdictTested
24.2.0.3 Quirk found 2026-08-31
24.8.7.2 Quirk found 2026-08-31
25.2.0.3 Quirk found 2026-08-31
25.8.7.3 Quirk found 2026-08-31

Why isn't FINDB working in LibreOffice?

FINDB exists in LibreOffice 25.8.7.3, but it is not a drop-in match for Excel — our executed tests found real behavioral differences (detailed in the test results on this page). If a formula that works in Excel or Google Sheets misbehaves in LibreOffice, compare your usage against the failing cases above before assuming your data is wrong.

Why isn’t FINDB working in Google Sheets?

FINDB runs in Google Sheets, but our executed cases show it does not match Excel’s documented behavior on every input (the failing cases are listed on this page). If a formula that behaves one way in Excel gives you a different answer in Sheets, compare your usage against those cases before assuming your data is wrong.

Discovered quirks

Executed test cases

Excel for the web (executed 2026-09-01 via OneDrive recalculation)

These values come from Excel for the web, not from desktop Excel. They are two different implementations of the calculation engine, and this run measured only the web one: the corpus was uploaded to OneDrive as .xlsx, recalculated by Excel for the web on open, and downloaded again for readback. Excel for the web is a rolling service with no pinnable version, so the run is identified by its date. Where a value here disagrees with the Expected column — which is Microsoft’s documentation of the desktop product — we cannot tell you whether the web engine diverges from the desktop one or the documentation is wrong about both, because we do not run desktop Excel.

FormulaDescriptionResultExpectedVerdict
=FINDB("M",A2) Microsoft's documented worked example: the position of the first capital M in "Miriam McGovern" 1 1
Provenance

Microsoft's page publishes '=FIND("M",A2)' over the data "Miriam McGovern" with the result 1 and the description "Position of the first 'M' in cell A2", and documents FIND and FINDB as one function pair sharing the example set. Every character here is single-byte, so the byte and character readings coincide and the answer is 1 under either. Verbatim from Microsoft's FIND, FINDB page: "FINDB counts each double-byte character as 2 when you have enabled the editing of a language that supports DBCS and then set it as the default language. Otherwise, FINDB counts each character as 1", with the DBCS languages listed as Japanese, Chinese (Simplified), Chinese (Traditional) and Korean. This harness runs under LC_ALL=en_US.UTF-8, a non-DBCS default language, so the documented answer is the one-byte-per-character reading -- the same treatment the corpus's LENB cases already use, and stated here rather than assumed away.

Matched
=FINDB("m",A2) Microsoft's documented worked example: the search is case sensitive 6 6
Provenance

Microsoft's page publishes '=FIND("m",A2)' with the result 6, and documents "FIND and FINDB are case sensitive and don't allow wildcard characters". The lower-case m first occurs at position 6 of "Miriam McGovern", not at position 1 -- an engine that folds case returns 1 here.

Matched
=FINDB("M",A2,3) Microsoft's documented worked example: searching from the third character onward 8 8
Provenance

Microsoft's page publishes '=FIND("M",A2,3)' with the result 8 and the description "Position of the first 'M' in cell A2, starting with the third character". The documentation adds that the result is still measured from the start of within_text: "FIND always returns the number of characters from the start of within_text, counting the characters you skip if start_num is greater than 1."

Matched
=FINDB("z",A2) Text that does not occur in the searched string #VALUE! #VALUE!
Provenance

Excel documents: "If find_text does not appear in within_text, FIND and FINDB return the #VALUE! error value."

Matched
=FINDB("M",A2,0) A start position of zero, which the documentation excludes #VALUE! #VALUE!
Provenance

Excel documents: "If start_num is not greater than zero, FIND and FINDB return the #VALUE! error value."

Matched
=FINDB("b",A3) DIVERGENCE PROBE: a search after two CJK characters, where the answer depends on the DBCS language rule 3 3
Provenance

A3 holds the three-character string U+65E5 U+672C followed by an ASCII b. Verbatim from Microsoft's FIND, FINDB page: "FINDB counts each double-byte character as 2 when you have enabled the editing of a language that supports DBCS and then set it as the default language. Otherwise, FINDB counts each character as 1", with the DBCS languages listed as Japanese, Chinese (Simplified), Chinese (Traditional) and Korean. This harness runs under LC_ALL=en_US.UTF-8, a non-DBCS default language, so the documented answer is the one-byte-per-character reading -- the same treatment the corpus's LENB cases already use, and stated here rather than assumed away. Under that non-DBCS reading the b is the third character and the documented answer is 3; under a DBCS default language the two CJK characters would count 2 bytes each and the answer would be 5. Recording which of the two each engine produces is the whole point of the case -- exactly as for the corpus's LENB_non_ascii_characters probe. EXECUTED RESULT -- SILENT WRONG VALUE. All four LibreOffice builds return 5, i.e. they apply the double-byte count (2 bytes per CJK character) even though the default language is not a DBCS one, where the documentation's "Otherwise, FINDB counts each character as 1" clause gives 3. No error is raised; a formula that slices text by this position silently cuts in a different place. This is the same shape as the divergence the corpus already records for LENB, and it is the only one of the six FINDB cases that diverges -- every ASCII case matches, so LibreOffice's FINDB is correct except for exactly this locale rule.

Matched

Google Sheets (executed 2026-08-31 via Drive import)

Google Sheets is a rolling service with no pinnable version, so this run is identified by its date. The corpus was imported to Drive as .xlsx, recalculated by Sheets, and exported back for readback.

FormulaDescriptionResultExpectedVerdict
=FINDB("M",A2) Microsoft's documented worked example: the position of the first capital M in "Miriam McGovern" 1 1
Provenance

Microsoft's page publishes '=FIND("M",A2)' over the data "Miriam McGovern" with the result 1 and the description "Position of the first 'M' in cell A2", and documents FIND and FINDB as one function pair sharing the example set. Every character here is single-byte, so the byte and character readings coincide and the answer is 1 under either. Verbatim from Microsoft's FIND, FINDB page: "FINDB counts each double-byte character as 2 when you have enabled the editing of a language that supports DBCS and then set it as the default language. Otherwise, FINDB counts each character as 1", with the DBCS languages listed as Japanese, Chinese (Simplified), Chinese (Traditional) and Korean. This harness runs under LC_ALL=en_US.UTF-8, a non-DBCS default language, so the documented answer is the one-byte-per-character reading -- the same treatment the corpus's LENB cases already use, and stated here rather than assumed away.

Matched
=FINDB("m",A2) Microsoft's documented worked example: the search is case sensitive 6 6
Provenance

Microsoft's page publishes '=FIND("m",A2)' with the result 6, and documents "FIND and FINDB are case sensitive and don't allow wildcard characters". The lower-case m first occurs at position 6 of "Miriam McGovern", not at position 1 -- an engine that folds case returns 1 here.

Matched
=FINDB("M",A2,3) Microsoft's documented worked example: searching from the third character onward 8 8
Provenance

Microsoft's page publishes '=FIND("M",A2,3)' with the result 8 and the description "Position of the first 'M' in cell A2, starting with the third character". The documentation adds that the result is still measured from the start of within_text: "FIND always returns the number of characters from the start of within_text, counting the characters you skip if start_num is greater than 1."

Matched
=FINDB("z",A2) Text that does not occur in the searched string #VALUE! #VALUE!
Provenance

Excel documents: "If find_text does not appear in within_text, FIND and FINDB return the #VALUE! error value."

Matched
=FINDB("M",A2,0) A start position of zero, which the documentation excludes #VALUE! #VALUE!
Provenance

Excel documents: "If start_num is not greater than zero, FIND and FINDB return the #VALUE! error value."

Matched
=FINDB("b",A3) DIVERGENCE PROBE: a search after two CJK characters, where the answer depends on the DBCS language rule 5 3
Provenance

A3 holds the three-character string U+65E5 U+672C followed by an ASCII b. Verbatim from Microsoft's FIND, FINDB page: "FINDB counts each double-byte character as 2 when you have enabled the editing of a language that supports DBCS and then set it as the default language. Otherwise, FINDB counts each character as 1", with the DBCS languages listed as Japanese, Chinese (Simplified), Chinese (Traditional) and Korean. This harness runs under LC_ALL=en_US.UTF-8, a non-DBCS default language, so the documented answer is the one-byte-per-character reading -- the same treatment the corpus's LENB cases already use, and stated here rather than assumed away. Under that non-DBCS reading the b is the third character and the documented answer is 3; under a DBCS default language the two CJK characters would count 2 bytes each and the answer would be 5. Recording which of the two each engine produces is the whole point of the case -- exactly as for the corpus's LENB_non_ascii_characters probe. EXECUTED RESULT -- SILENT WRONG VALUE. All four LibreOffice builds return 5, i.e. they apply the double-byte count (2 bytes per CJK character) even though the default language is not a DBCS one, where the documentation's "Otherwise, FINDB counts each character as 1" clause gives 3. No error is raised; a formula that slices text by this position silently cuts in a different place. This is the same shape as the divergence the corpus already records for LENB, and it is the only one of the six FINDB cases that diverges -- every ASCII case matches, so LibreOffice's FINDB is correct except for exactly this locale rule.

Mismatch

LibreOffice Calc 25.8.7.3 (tested 2026-08-31)

FormulaDescriptionResultExpectedVerdict
=FINDB("M",A2) Microsoft's documented worked example: the position of the first capital M in "Miriam McGovern" 1 1
Provenance

Microsoft's page publishes '=FIND("M",A2)' over the data "Miriam McGovern" with the result 1 and the description "Position of the first 'M' in cell A2", and documents FIND and FINDB as one function pair sharing the example set. Every character here is single-byte, so the byte and character readings coincide and the answer is 1 under either. Verbatim from Microsoft's FIND, FINDB page: "FINDB counts each double-byte character as 2 when you have enabled the editing of a language that supports DBCS and then set it as the default language. Otherwise, FINDB counts each character as 1", with the DBCS languages listed as Japanese, Chinese (Simplified), Chinese (Traditional) and Korean. This harness runs under LC_ALL=en_US.UTF-8, a non-DBCS default language, so the documented answer is the one-byte-per-character reading -- the same treatment the corpus's LENB cases already use, and stated here rather than assumed away.

Matched
=FINDB("m",A2) Microsoft's documented worked example: the search is case sensitive 6 6
Provenance

Microsoft's page publishes '=FIND("m",A2)' with the result 6, and documents "FIND and FINDB are case sensitive and don't allow wildcard characters". The lower-case m first occurs at position 6 of "Miriam McGovern", not at position 1 -- an engine that folds case returns 1 here.

Matched
=FINDB("M",A2,3) Microsoft's documented worked example: searching from the third character onward 8 8
Provenance

Microsoft's page publishes '=FIND("M",A2,3)' with the result 8 and the description "Position of the first 'M' in cell A2, starting with the third character". The documentation adds that the result is still measured from the start of within_text: "FIND always returns the number of characters from the start of within_text, counting the characters you skip if start_num is greater than 1."

Matched
=FINDB("z",A2) Text that does not occur in the searched string #VALUE! #VALUE!
Provenance

Excel documents: "If find_text does not appear in within_text, FIND and FINDB return the #VALUE! error value."

Matched
=FINDB("M",A2,0) A start position of zero, which the documentation excludes #VALUE! #VALUE!
Provenance

Excel documents: "If start_num is not greater than zero, FIND and FINDB return the #VALUE! error value."

Matched
=FINDB("b",A3) DIVERGENCE PROBE: a search after two CJK characters, where the answer depends on the DBCS language rule 5 3
Provenance

A3 holds the three-character string U+65E5 U+672C followed by an ASCII b. Verbatim from Microsoft's FIND, FINDB page: "FINDB counts each double-byte character as 2 when you have enabled the editing of a language that supports DBCS and then set it as the default language. Otherwise, FINDB counts each character as 1", with the DBCS languages listed as Japanese, Chinese (Simplified), Chinese (Traditional) and Korean. This harness runs under LC_ALL=en_US.UTF-8, a non-DBCS default language, so the documented answer is the one-byte-per-character reading -- the same treatment the corpus's LENB cases already use, and stated here rather than assumed away. Under that non-DBCS reading the b is the third character and the documented answer is 3; under a DBCS default language the two CJK characters would count 2 bytes each and the answer would be 5. Recording which of the two each engine produces is the whole point of the case -- exactly as for the corpus's LENB_non_ascii_characters probe. EXECUTED RESULT -- SILENT WRONG VALUE. All four LibreOffice builds return 5, i.e. they apply the double-byte count (2 bytes per CJK character) even though the default language is not a DBCS one, where the documentation's "Otherwise, FINDB counts each character as 1" clause gives 3. No error is raised; a formula that slices text by this position silently cuts in a different place. This is the same shape as the divergence the corpus already records for LENB, and it is the only one of the six FINDB cases that diverges -- every ASCII case matches, so LibreOffice's FINDB is correct except for exactly this locale rule.

Mismatch

Docs & syntax

Where FINDB behaves differently