发布时间:2022-11-09 文章分类:Excel函数 投稿人:李佳 字号: 默认 | | 超大 打印

本文介绍MicrosoftExcel中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不能包含任何通配符。
  • 如果find_text未显示在within_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

    数据

    CeramicInsulators#124-TD45-87

    CopperCoils#12-671-6772

    VariableResistors#116010

    公式

    描述(结果)

    结果

    =MID(A2,1,FIND(“#”,A2,1)-1)

    提取单元格A2中从第一个字符到“#”的文本(CeramicInsulators)

    CeramicInsulators

    =MID(A3,1,FIND(“#”,A3,1)-1)

    提取单元格A3中从第一个字符到“#”的文本(CopperCoils)

    CopperCoils

    =MID(A4,1,FIND(“#”,A4,1)-1)

    提取单元格A4中从第一个字符到“#”的文本(VariableResistors)

    VariableResistors