分享

SEARCH、SEARCHB 函数 (文本函数)

 whliang8309@163.com 2011-09-01

说明

SEARCH 和 SEARCHB 函数可在第二个文本字符串中查找第一个文本字符串,并返回第一个文本字符串的起始位置的编号,该编号从第二个文本字符串的第一个字符算起。例如,若要查找字母“n”在单词“printer”中的位置,可以使用以下函数:

=SEARCH("n","printer")

此函数会返回 4,因为“n”是单词“printer”的第四个字符。

也可以在一个单词中搜索另一个单词。例如,以下函数:

=SEARCH("base","database")

会返回 5,因为单词“base”是从单词“database”的第五个字符开始的。使用 SEARCH 和 SEARCHB 函数可以确定某个字符或文本字符串在另一个文本字符串中的位置,然后可使用 MID 和 MIDB 函数返回文本,或使用 REPLACE 和 REPLACEB 函数更改文本。本文中的示例 1 中演示了这些函数。

 要点   只有在将 DBCS 语言设置为默认语言时,SEARCHB 函数才会将每个双字节字符按 2 计数,否则,SEARCHB 函数会将每个字符按 1 计数,这与 SEARCH 函数的行为一样。

支持 DBCS 的语言包括日语、中文(简体)、中文(繁体)以及朝鲜语。

语法

SEARCH(find_text,within_text,[start_num])
SEARCHB(find_text,within_text,[start_num])

SEARCH 和 SEARCHB 函数具有下列参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。)

  • find_text     必需。要查找的文本。
  • within_text     必需。要在其中搜索 find_text 参数的值的文本。
  • start_num     可选。within_text 参数中从之开始搜索的字符编号。

说明

  • SEARCH 和 SEARCHB 函数不区分大小写。如果要执行区分大小写的搜索,可以使用 FIND 和 FINDB 函数。
  • 可以在 find_text 参数中使用通配符(问号 (?) 和星号 (*))。问号匹配任意单个字符;星号匹配任意字符序列。如果要查找实际的问号或星号,请在该字符前键入波形符 (~)。  
  • 如果找不到 find_text 的值,则返回错误值 #VALUE!。
  • 如果省略了 start_num 参数,则假设其值为 1。
  • 如果 start_num 不大于 0(零)或大于 within_text 参数的长度,则返回错误值 #VALUE!。
  • 使用 start_num 可跳过指定的字符编号。以 SEARCH 函数为例,假设要处理文本字符串“AYF0093.YoungMensApparel”。若要在文本字符串的说明部分中查找第一个“Y”的位置,请将 start_num 设置为 8,这样就不会搜索文本的序列号部分(即本例中的“AYF0093”)。SEARCH 函数从第 8 个字符开始,在下一个字符处查找在 find_text 参数中指定的字符,并返回数字 9。SEARCH 函数总是返回从 within_text 参数的起始位置计算的字符的编号,如果 start_num 参数大于 1,则会计算跳过的字符。

示例

示例 1:SEARCH

如果将示例复制到一个空白工作表中,可能会更容易理解该示例。

显示如何复制示例?

  • 选择本文中的示例。如果在 Excel Web App 中复制该示例,请每次复制并粘贴一个单元格。

 要点   请勿选择行标题或列标题。

从帮助中选择一个示例

从帮助中选择一个示例
  • 按 Ctrl+C。
  • 创建一个空白工作簿或工作表。
  • 在工作表中,选择单元格 A1,然后按 Ctrl+V。如果在 Excel Web App 中工作,请对示例中的每个单元格重复复制和粘贴操作。

 要点   为使示例正常工作,必须将其粘贴到工作表的单元格 A1 中。

  • 要在查看结果和查看返回结果的公式之间进行切换,请按 Ctrl+`(重音符),或在 “公式”选项卡上的 “公式审核”组中单击 “显示公式”按钮。

在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。

 
1
2
3
4
5
6


7



8





9



10

11



12
A B C
数据
Statements
Profit Margin
margin
The "boss" is here.
公式 说明 结果
=SEARCH("e",A2,6) 单元格 A2 中的字符串中,从第 6 个位置起,第一个“e”的位置。 7
=SEARCH(A4,A3) “margin”(要搜索的字符串位于单元格 A4 中)在“Profit Margin”(要搜索的字符串位于单元格 A3 中)中的位置。 8
=REPLACE(A3,SEARCH(A4,A3),6,"Amount") 首先在单元格 A3 中搜索“Margin”的位置,然后将该字符以及接下来的五个字符替换为字符串“Amount”,从而实现将“Margin”替换为“Amount”的目的。 Profit Amount
=MID(A3,SEARCH(" ",A3)+1,4) 返回“Profit Margin”(单元格 A3)中第一个空格字符后的前四个字符。 Marg
=SEARCH("""",A5) 单元格 A5 中第一个双引号标记 (") 的位置。 5
=MID(A5,SEARCH("""",A5)+1,SEARCH("""",A5,SEARCH("""",A5)+1)-SEARCH("""",A5)-1) 仅返回单元格 A5 中被双引号括起来的文本。 boss

示例 2:SEARCHB

 要点   为了正确运行本示例,必须将区域设置设为支持 DBCS 的语言。

在下面的示例中:

  • 由于每个字符均按其字节数来计数,因此 SEARCHB 函数返回 3;又由于首字符有 2 个字节,因此第二个字符从第三个字节开始。
  • SEARCH 函数返回 2,因为“Tokyo to Shibuya ”在字符串中的第二个位置。无论默认语言设置如何,SEARCH 函数都返回 2。

=SEARCHB("Tokyo to Shibuya ","Tokyo to Shibuya Tokyo to Shibuya Tokyo to Shibuya ") 等于 3

=SEARCH("Tokyo to Shibuya ","Tokyo to Shibuya Tokyo to Shibuya Tokyo to Shibuya ") 等于 2

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多