SEARCH函数
函数功能
SEARCH函数可在第二个文本字符串中查找第一个文本字符串,并返回第一个文本字符串的起始位置的编号,该编号从第二个文本字符串的第一个字符算起。
函数语法
SEARCH(find_text,within_text,[start_num])
参数解释
find_text:必需。表示要查找的文本。
within_text:必需。表示要在其中搜索find_text参数的值的文本。
start_num:可选。表示within_text参数中从之开始搜索的字符编号。
实例1 从项目编码中提取合同号
在本例A列中的编码包含合同号,如果想要从编码中提取出所有合同号,可以配合使用SEARCH、RIGHT、LEN这几个函数来设置公式。
? 选中B2单元格,在公式编辑栏中输入公式:
=RIGHT(A2,LEN(A2)-SEARCH("_",A2,6))
按“Enter”键即可提取A2单元格编码中的合同号。
? 将光标移到B2单元格的右下角,待光标变成十字形状后,按住鼠标左键向下拖动进行公式填充,即可快速从其他编码中提取出合同号,且合同号位数不同时也能准确提取,如图1所示。
公式解析
①判断A2单元格中字符串的长度。
②在A2单元格中确定“-”的位置。
③ 步骤①返回值减去步骤②返回值为需要提取的字符的长度。
④ 从右侧提取字符,提取长度为步骤③返回值指定的长度。
SEARCHB函数
函数功能
SEARCHB函数用于在第二个文本串中定位第一个文本串,并返回第一个文本串的起始位置的值,该值从第二个文本串的第一个字符算起。
函数语法
SEARCHB(find_text,within_text,start_num)
参数解释
find_text:要查找的文本。
within_text:要在其中搜索find_text的文本。
start_num:within_text中从之开始搜索的字符编号。
实例2 模糊查找分离数据提取出电话号码
模糊查找在实际应用中相当广泛。本例表格记录了员工的联系号码,D列中显示了员工完整的联系方式,要求从其中的字符中提取出具体的电话号码并显示在E列中。
? 选中E2单元格,在公式编辑栏中输入公式:
=MIDB(D2,SEARCHB("?",D2),LEN(D2))
按“Enter”键即可从D2单元格中提取出第一位员工的电话号码信息。
? 将光标移到E2单元格的右下角,待光标变成十字形状后,按住鼠标左键向右拖动进行公式填充,即可返回其他员工的电话号码信息,如图2所示。
公式解析
①使用SEARCHB函数配合通配符“?”,查找出D2单元格中第一个半角字符的位置。其中“手机:”占6个字节,手机号码的起始位置就是第7位,则“SEARCHB("?",D2)”的结果为7。
②使用LEN函数统计出D2单元格中的字符的长度,作为第三个参数值。
③ 使用MIDB函数从第7位开始提取,提示取长度为步骤②返回值。