SEARCH, SEARCHB functions

This article describes the formula syntax and usage of the SEARCH and SEARCHB functions (function: A prewritten formula that takes a value or values, performs an operation, and returns a value or values. Use functions to simplify and shorten formulas on a worksheet, especially those that perform lengthy or complex calculations.) in Microsoft Office Excel.

Description

The SEARCH and SEARCHB functions locate one text string within a second text string, and return the number of the starting position of the first text string from the first character of the second text string. For example, to find the position of the letter "n" in the word "printer", you can use the following function:

=SEARCH("n","printer")

This function returns 4 because "n" is the fourth character in the word "printer."

You can also search for words within other words. For example, the function

=SEARCH("base","database")

returns 5, because the word "base" begins at the fifth character of the word "database". You can use the SEARCH and SEARCHB functions to determine the location of a character or text string within another text string, and then use the MID and MIDB functions to return the text, or use the REPLACE and REPLACEB functions to change the text. These functions are demonstrated in Example 1 in this article.

 Important   The SEARCH function is intended for use with languages that use the single-byte character set (SBCS), whereas the SEARCHB function is intended for use with languages that use the double-byte character set (DBCS). The default language setting on your computer affects the return value in the following way:

  • SEARCH always counts each character, whether single-byte or double-byte, as 1, no matter what the default language setting is.
  • SEARCHB 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, SEARCHB counts each character as 1.

The languages that support DBCS include Japanese, Chinese (Simplified), Chinese (Traditional), and Korean.

Syntax

SEARCH(find_text, within_text, [start_num])
SEARCHB(find_text, within_text, [start_num])

The SEARCH and SEARCHB function syntax has the following arguments (argument: A value that provides information to an action, an event, a method, a property, a function, or a procedure.):

  • find_text    Required. The text that you want to find.
  • within_text    Required. The text in which you want to search for the value of the find_text argument.
  • start_num    Optional. The character number in the within_text argument at which you want to start searching.

Remarks

  • The SEARCH and SEARCHB functions are not case sensitive. If you want to do a case sensitive search, you can use FIND and FINDB.
  • You can use the wildcard characters — the question mark (?) and asterisk (*) — in the find_text argument. A question mark matches any single character; an asterisk matches any sequence of characters. If you want to find an actual question mark or asterisk, type a tilde (~) before the character.
  • If the value of find_text is not found, the #VALUE! error value is returned.
  • If the start_num argument is omitted, it is assumed to be 1.
  • If start_num is not greater than 0 (zero) or is greater than the length of the within_text argument, the #VALUE! error value is returned.
  • Use start_num to skip a specified number of characters. Using the SEARCH function as an example, suppose you are working with the text string "AYF0093.YoungMensApparel". To find the position of the first "Y" in the descriptive part of the text string, set start_num equal to 8 so that the serial number portion of the text (in this case, "AYF0093") is not searched. The SEARCH function starts the search operation at the eighth character position, finds the character that is specified in the find_text argument at the next position, and returns the number 9. The SEARCH function always returns the number of characters from the start of the within_text argument, counting the characters you skip if the start_num argument is greater than 1.

Example 1: SEARCH

The example may be easier to understand if you copy it to a blank worksheet.

ShowHow do I copy an example?

  1. Select the example in this article. If you are copying the example in Excel Web App, copy and paste one cell at a time.Important Do not select the row or column headers.

Selecting an example from Help

Selecting an example from Help

  1. Press CTRL+C.
  2. Create a blank workbook or worksheet.
  3. In the worksheet, select cell A1, and press CTRL+V. If you are working in Excel Web App, repeat copying and pasting for each cell in the example.

Important For the example to work properly, you must paste it into cell A1 of the worksheet.

  1. To switch between viewing the results and viewing the formulas that return the results, press CTRL+` (grave accent), or on the Formulas tab, in the Formula Auditing group, click the Show Formulas button.

After you copy the example to a blank worksheet, you can adapt it to suit your needs.


 
1
2
3
4
5
6


7



8






9



10

11



12
A B C
Data
Statements
Profit Margin
margin
The "boss" is here.
Formula Description Result
=SEARCH("e",A2,6) Position of the first "e" in the string in cell A2, starting at the sixth position. 7
=SEARCH(A4,A3) Position of "margin" (string for which to search is cell A4) in "Profit Margin" (cell in which to search is A3). 8
=REPLACE(A3,SEARCH(A4,A3),6,"Amount") Replaces "Margin" with "Amount" by first searching for the position of "Margin" in cell A3, and then replacing that character and the next five characters with the string "Amount." Profit Amount
=MID(A3,SEARCH(" ",A3)+1,4) Returns the first four characters that follow the first space character in "Profit Margin" (cell A3). Marg
=SEARCH("""",A5) Position of the first double quotation mark (") in cell A5. 5
=MID(A5,SEARCH("""",A5)+1,SEARCH("""",A5,SEARCH("""",A5)+1)-SEARCH("""",A5)-1) Returns only the text enclosed in the double quotation marks in cell A5. boss

Example 2: SEARCHB

 Important   Your computer must be set to a default language that supports DBCS for this example to work.

In the following example:

  • The SEARCHB function returns 3 because each character is counted by its bytes; the first character has 2 bytes, so the second character begins at byte 3.
  • SEARCH returns 2 because "Tokyo to Shibuya " is in the second position within the string. SEARCH returns 2 regardless of the default language setting on your computer.

=SEARCHB("Tokyo to Shibuya ","Tokyo to Shibuya Tokyo to Shibuya Tokyo to Shibuya ") equals 3

=SEARCH("Tokyo to Shibuya ","Tokyo to Shibuya Tokyo to Shibuya Tokyo to Shibuya ") equals 2

 
 
Applies to:
Excel 2007