当需要从字符串中提取部分字符时,提取的位置和字符数量往往是不确定的,需要先根据指定条件进行定位。FIND 函数和 SEARCH 函数,以及用于双字节字符的 FINDB 函数和 SEARCHB 函数都可用于在字符串的文本中查找定位。
FIND 函数能够根据指定的字符串,在包含该字符串的另一个字符串中返回该字符串的起始位置。FIND 函数区分大小写,不支持通配符。
函数语法为:
FIND(find_text, within_text, [start_num])
第一参数 find_text 是要查找的文本,第二参数 within_text 是包含查找文本的源文本。第三参数 [start_num] 为可选参数,表示从源文本的第几个字符位置开始查找,如果省略该参数,默认值为 1。无论从第几个字符位置开始查找,最终返回的位置信息都从文本串的第一个字符算起。
如果源文本中存在多个要查找的文本,函数将返回从指定位置开始向右首次出现的位置。如果源文本中不包含要查找的文本,则返回错误值“#VALUE!”。
示例1-1 判断回路名称是否包含“照明”
图 1-1 所示,是某建筑公司电气施工设计方案表的部分内容,需要判断 B 列的回路名称中是否包含“照明”。
图1-1 电气施工设计方案表
在 J2 单元格输入以下公式,将公式向下复制到数据区域最后一行。
=IF(ISNUMBER(FIND(“照明”,B2)),“是”,“否”)
FIND 函数以“照明”为查询关键字,在 B2 单元格中查找该关键字首次出现的位置。如果 B2单元格中包含要查询的关键字,则返回表示位置的数值,否则返回错误值“#VALUE!”。
接下来使用 ISNUMBER 函数判断 FIND 函数得到结果是否为数值,如果是数值则返回逻辑值TRUE,否则将返回 FALSE。
最后使用 IF 函数,当 ISNUMBER 函数的判断结果为 TRUE 时,说明 B2 单元格中包含要查询的关键字,公式返回指定内容“是”,否则返回“否”。