FINDB 函数和 SEARCHB 函数分别与 FIND 函数和 SEARCH 函数对应,区别仅在于返回的查找字符串在源文本中的位置是以字节为单位计算。利用 SEARCHB 函数支持通配符的特性,可以进行模糊查找。

示例 提取混合内容中的英文姓名

如图 1-3 所示,A 列是一些中英文混合的联系人信息,需要提取出英文姓名。

散列函数设计的关键是(FINDB函数和SEARCHB)(1)

图1-3 提取混合内容中的中文姓名

本例中的中英文之间没有间隔符号,而且英文名称的起始字母也不相同,因此无法使用查询固定间隔符号的方法来确定要提取的字符位置。

在 B2 单元格输入以下公式,向下复制到 B10 单元格。

=MIDB(A2,SEARCHB("?",A2),LEN(A2)*2-LENB(A2))

公式使用 SEARCHB 函数,以通配符半角问号“?”作为关键字,在 A2 单元格中返回首个半角字符出现的字节位置,得到结果为 7。

“LEN(A2)*2-LENB(A2)”部分,用于计算 A2 单元格中的半角字符数,结果为 15。

最后使用 MIDB 函数,从 A2 单元格中第 7 个字节开始,提取出 15 个字节数长度的字符串。

你学会了吗?

,