本文介绍 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 不大于 0,则 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,则会计算跳过的字符。
示例
示例 1:FIND
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
- 选择本文中的示例。
要点 不要选择行或列标题。
从“帮助”中选择示例
- 按 Ctrl+C。
- 在 Excel 中,创建一个空白工作簿或工作表。
- 在工作表中,选择单元格 A1,然后按 Ctrl+V。
要点 若要使该示例能够正常工作,必须将其粘贴到工作表的单元格 A1 中。
- 要在查看结果和查看返回结果的公式之间进行切换,请按 Ctrl+`(重音符),或在“公式”选项卡上的“公式审核”组中,单击“显示公式”按钮。
将示例复制到一个空白工作表中后,可以按照您的需要改编示例。
|
A |
B |
数据 |
|
Miriam McGovern |
|
公式 |
说明(结果) |
=FIND("M",A2) |
上面字符串中第一个“M”的位置 (1) |
=FIND("m",A2) |
上面字符串中第一个“m”的位置 (6) |
=FIND("M",A2,3) |
在上面字符串中从第三个字符开始查找第一个“M”的位置 (8) |
|
示例 2:嵌套于 MID 中的 FIND
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
- 选择本文中的示例。
要点 不要选择行或列标题。
从“帮助”中选择示例
- 按 Ctrl+C。
- 在 Excel 中,创建一个空白工作簿或工作表。
- 在工作表中,选择单元格 A1,然后按 Ctrl+V。
要点 若要使该示例能够正常工作,必须将其粘贴到工作表的单元格 A1 中。
- 要在查看结果和查看返回结果的公式之间进行切换,请按 Ctrl+`(重音符),或在“公式”选项卡上的“公式审核”组中,单击“显示公式”按钮。
将示例复制到一个空白工作表中后,可以按照您的需要改编示例。
|
A |
B |
数据 |
|
Ceramic Insulators #124-TD45-87 |
|
Copper Coils #12-671-6772 |
|
Variable Resistors #116010 |
|
公式 |
说明(结果) |
=MID(A2,1,FIND(" #",A2,1)-1) |
在上面第一个字符串中提取从位置 1 到位置 # 的文本 (Ceramic Insulators) |
=MID(A3,1,FIND(" #",A3,1)-1) |
在上面第二个字符串中提取从位置 1 到位置 # 的文本 (Copper Coils) |
=MID(A4,1,FIND(" #",A4,1)-1) |
在上面第三个字符串中提取从位置 1 到位置 # 的文本 (Variable Resistors) |
|
示例 3:FINDB(将您的计算机设置为支持 DBCS 的一种默认语言)
在下面的示例中:
- 由于每个字符均按其字节数来计数,所以函数 FINDB 返回 3;又由于首字符有 2 个字节,所以第二个字符从第三个字节开始。
- 函数 FIND 返回 2,因为“ ”在字符串中的第二个位置。无论您计算机上的默认语言设置如何,函数 FIND 都返回 2。
=FINDB(" "," ")
等于 3
=FIND(" "," ")
等于 2
find FINDB functions xl