本文介绍 Microsoft Excel 中 FIND 和 FINDB 函数的公式语法和用法。
说明
函数 FIND 和 FINDB 用于在第二个文本串中定位第一个文本串,并返回第一个文本串的起始位置的值,该值从第二个文本串的第一个字符算起。
重要:
-
这些函数可能并不适用于所有语言。
-
FIND 适用于使用单字节字符集 (SBCS) 的语言,而 FINDB 适用于使用双字节字符集 (DBCS) 的语言。 您的计算机上的默认语言设置对返回值的影响方式如下:
-
无论默认语言设置如何,函数 FIND 始终将每个字符(不管是单字节还是双字节)按 1 计数。
-
当启用支持 DBCS 的语言的编辑并将其设置为默认语言时,FINDB 会将每个双字节字符按 2 计数。 否则,FINDB 会将每个字符按 1 计数。
支持 DBCS 的语言包括日语、中文(简体)、中文(繁体)以及朝鲜语。
语法
FIND(find_text, within_text, [start_num])
FINDB(find_text, within_text, [start_num])
FIND 和 FINDB 函数语法具有下列参数:
-
find_text 必需。 要查找的文本。
-
within_text 必需。 包含要查找文本的文本。
-
start_num 可选。 指定开始进行查找的字符。 within_text 中的首字符是编号为 1 的字符。 如果省略 start_num,则假定其值为 1。
备注
-
FIND 和 FINDB 区分大小写,并且不允许使用通配符。 如果您不希望执行区分大小写的搜索或使用通配符,则可以使用 SEARCH 和 SEARCHB 函数。
-
如果 find_text 为空文本 (""),则 FIND 会匹配搜索字符串中的首字符(即编号为 start_num 或 1 的字符)。
-
Find_text 不能包含任何通配符。
-
如果within_text中未显示find_text,FIND 和 FINDB 将返回 #VALUE! 。
-
如果start_num不大于零,FIND 和 FINDB 将返回 #VALUE! 。
-
如果start_num大于within_text的长度,FIND 和 FINDB 将返回 #VALUE! 。
-
可以使用 start_num 来跳过指定数目的字符。 以 FIND 为例,假设要处理文本字符串“AYF0093.YoungMensApparel”。 若要在文本字符串的说明部分中查找第一个“Y”的编号,请将 start_num 设置为 8,这样就不会搜索文本的序列号部分。 FIND 从第 8 个字符开始查找,在下一个字符处找到 find_text,然后返回其编号 9。 FIND 始终返回从 within_text 的起始位置计算的字符编号,如果 start_num 大于 1,则会对跳过的字符计数。
示例
复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 要使公式显示结果,请选中它们,按 F2,然后按 Enter。 如果需要,可调整列宽以查看所有数据。
数据 |
||
---|---|---|
Miriam McGovern |
||
公式 |
说明 |
结果 |
=FIND("M",A2) |
单元格 A2 中第一个“M”的位置 |
1 |
=FIND("m",A2) |
单元格 A2 中第一个“m”的位置 |
6 |
=FIND("M",A2,3) |
从单元格 A2 的第三个字符开始查找第一个“M”的位置 |
8 |
示例 2
数据 |
||
---|---|---|
Ceramic Insulators #124-TD45-87 |
||
Copper Coils #12-671-6772 |
||
Variable Resistors #116010 |
||
公式 |
描述(结果) |
结果 |
=MID(A2,1,FIND(" #",A2,1)-1) |
提取单元格 A2 中从第一个字符到“#”的文本 (Ceramic Insulators) |
Ceramic Insulators |
=MID(A3,1,FIND(" #",A3,1)-1) |
提取单元格 A3 中从第一个字符到“#”的文本 (Copper Coils) |
Copper Coils |
=MID(A4,1,FIND(" #",A4,1)-1) |
提取单元格 A4 中从第一个字符到“#”的文本 (Variable Resistors) |
Variable Resistors |