SEARCH函数在另一个文本字符串中查找文本字符串,如果找到则返回其位置,不区分大小写 。
文章插图
什么情况下使用SEARCH?
SEARCH函数在字符串中查找另一字符串,可以:
在字符串中找到另一个字符串——不区分大小写
在搜索中使用通配符
在搜索文本中指定开始数字
SEARCH函数的语法
SEARCH函数的语法如下:
SEARCH(find_text,within_text,start_num)
§ind_text是要搜索的文本
§within_text是供搜索的字符串
§如果忽略start_num,那么从第一个字符开始搜索
SEARCH函数陷阱
SEARCH函数返回第一个匹配的字符串的位置,忽略大小写 。如果想要区分大小写的搜索,那么使用FIND函数 。
示例1: 在字符串中查找文本
使用SEARCH函数查找文本字符串中的文本 。本例中,在单元格B2的文本字符串中查找单元格B5中的单个字符 。
=SEARCH(B5,B2)
如果找到文本,那么SEARCH函数返回该文本在文本字符串中开始出现的位置的数字 。如果没有找到,那么结果为#VALUE!错误 。
可以使用IFERROR函数嵌套SEARCH函数,如果结果是一个错误,那么显示一条消息 。IFERROR函数在Excel 2007及更新的版本中可用 。对于更早的版本,可以使用IF函数和ISERROR函数 。
=IFERROR(SEARCH(B5,B2),”NotFound”)
文章插图
示例2: 在SEARCH中使用通配符
检查SEARCH函数结果的另一种方式是结合使用ISNUMBER函数 。如果找到字符串,那么SEARCH函数的结果是一个数字,因此ISNUMBER函数的结果为TRUE 。如果没有找到文本,那么SEARCH函数的结果是错误值,ISNUMBER函数返回FALSE 。
也可以在参数find_text中使用通配符 。*(星号)代表任意数量的字符(包括0个),而?(问号)代表单个的字符 。
本例中使用 * 通配符,在街道地址中将会找到所有的central、center和centre 。
=ISNUMBER(SEARCH($E$2,B3))
文章插图
示例3: 为SEARCH指定开始数字
通过在ISNUMBER函数前面输入两个减号(双一元符号),能够替换TRUE或者FALSE而返回1或者0 。那么,在单元格E2中SUM函数可以统计找到的文本字符串的记录数 。
本例在列B中为City(城市)和Occupation(职业),查找含有单元格E1中输入的文本字符串的所有职业 。在单元格C2中的公式是:
=–ISNUMBER(SEARCH($E$1,B2))
这个公式查找到包含“bank”的字符串,但是这些字符串的一部分是City名,不是职业 。
文章插图
在每个城市名之后有一个管道符,因此能够为此添加一个SEARCH函数,其返回的位置能够被作为主SEARCH函数的start_number参数使用,因此,在搜索时城市将被忽略 。
现在,使用修订的公式,仅统计职业中含有“bank”的行 。
=–ISNUMBER(SEARCH($E$1,B2,SEARCH(“ ”,B2)))
【SEARCH函数】
文章插图