前面介绍过连续单、双字节字符串的分离,为实现更加复杂字符串中字符的提取,今天我们来介绍FIND和SEARCH函数。
一、FIND和SEARCH函数
两个函数的功能基本相同,都是定位某一字符(串)在指定字符串中、从左向右数第一次出现的位置,即第几位。如果要查找的字符串不存在,则返回错误值“#VALUE!”。
公式为:
=FIND(要查找的字符串,被查找字符串,开始位置);
=SEARCH(要查找的字符串,被查找字符串,开始位置);
【开始位置】是指在【被查找字符串】的第几位开始查找,当从第1位开始查找时,可省略该参数,示例如下图。
从上述示例中可以看出,当【要查找的字符串】是汉字、符号或字母时,需要加英文状态下的双引号;是数字时,则不需要加。从示例3中可以看出,【被查找字符串】中存在两处“-”号,但只会返回第一次出现的位置。
上图示例1、2可以看出,【要查找的字符串】可以是单个字符或某一字符串;在示例1、3、4中,查找的【开始位置】分别为1、5、10,【被查找字符串】中存在两处“-”号,因此返回的结果也不相同。
二、FINDB和SEARCHB函数
当需要区分单、双字节字符时,可以使用FINDB和SEARCHB函数,1个双字节字符占2个位置,示例如下图:
字母、符号、数字均是单字节字符,汉字是双字节字符,“新冠肺炎”占了8个位置,因此示例2比示例1结果多出17-13=4。
三、两个函数的区别
FIND函数可以区分英文大小写但是不支持通配符,SEARCH函数不能区分英文大小写但是支持通配符,如下图所示。
关于通配符的使用会在后面文章中介绍。
四、相关阅读
类似函数有字节函数LEN和LENB,详情见。