30 天内 30 个 Excel 函数:搜索

昨天在马拉松 30 天 30 个 Excel 函数 我们使用函数识别了错误的类型 ERROR.TYPE (错误类型)并确保它对于纠正 Excel 中的错误非常有用。

马拉松第18天,我们将致力于函数的研究 搜索 (搜索)。 它在文本字符串中查找一个字符(或多个字符)并报告找到它的位置。 我们还将研究如何处理此函数引发错误的情况。

那么,让我们仔细看看函数的理论和实际例子 搜索 (搜索)。 如果您有一些使用此功能的技巧或示例,请在评论中分享。

功能 18:搜索

功能 搜索 (SEARCH) 在另一个文本字符串中搜索一个文本字符串,如果找到,报告它的位置。

如何使用搜索功能?

功能 搜索 (SEARCH) 在另一个文本字符串中搜索一个文本字符串。 她可以:

  • 在另一个文本字符串中查找一个文本字符串(不区分大小写)。
  • 在搜索中使用通配符。
  • 确定查看文本中的起始位置。

搜索语法

功能 搜索 (SEARCH) 具有以下语法:

SEARCH(find_text,within_text,[start_num])

ПОИСК(искомый_текст;текст_для_поиска;[нач_позиция])

  • 查找文本 (search_text) 是您要查找的文本。
  • inside_text (text_for_search) – 在其中执行搜索的文本字符串。
  • 起始编号 (start_position) – 如果未指定,搜索将从第一个字符开始。

陷阱搜索 (SEARCH)

功能 搜索 (SEARCH) 将返回第一个匹配字符串的位置,不区分大小写。 如果您需要区分大小写的搜索,可以使用该功能 FIND (查找),我们将在马拉松稍后遇到 30 天 30 个 Excel 函数.

示例 1:在字符串中查找文本

使用功能 搜索 (搜索)在文本字符串中查找一些文本。 在此示例中,我们将在单元格 B5 中找到的文本字符串中查找单个字符(在单元格 B2 中键入)。

=SEARCH(B5,B2)

=ПОИСК(B5;B2)

如果找到文本,函数 搜索 (SEARCH) 将返回其第一个字符在文本字符串中的位置编号。 如果没有找到,结果将是一条错误消息 #值! (#所以)。

如果结果是错误的,您可以使用该函数 IFERROR (IFERROR) 以便代替执行函数 搜索 (搜索)显示相应的消息。 功能 IFERROR (IFERROR) 从 2007 版开始在 Excel 中引入。在早期版本中,使用 IF (IF) 连同 ISERROR (EOSHIBKA)。

=IFERROR(SEARCH(B5,B2),"Not Found")

=ЕСЛИОШИБКА(ПОИСК(B5;B2);"Not Found")

示例 2:在 SEARCH 中使用通配符

检查返回结果的另一种方法 搜索 (搜索),对于错误 - 使用函数 ISNUMBER (编号)。 如果找到字符串,则结果 搜索 (SEARCH) 将是一个数字,这意味着一个函数 ISNUMBER (ISNUMBER) 将返回 TRUE。 如果找不到文本,则 搜索 (SEARCH) 将报告错误,并且 ISNUMBER (ISNUMBER) 将返回 FALSE。

在参数的值 查找文本 (search_text) 你可以使用通配符。 象征 * (星号)替换任意数量的字符或不替换,并且 ? (问号)替换任何单个字符。

在我们的示例中,使用了通配符 *,因此将在街道名称中找到短语 CENTRAL、CENTER 和 CENTER。

=ISNUMBER(SEARCH($E$2,B3))

=ЕЧИСЛО(ПОИСК($E$2;B3))

示例 3:确定搜索 (SEARCH) 的起始位置

如果我们在函数前面写两个减号(双重否定) ISNUMBER (ISNUMBER),它将返回值 1/0 而不是真/假(真/假)。 接下来,函数 SUM 单元格 E2 中的 (SUM) 将计算找到搜索文本的记录总数。

在以下示例中,B 列显示:

城市名称 | 职业

我们的任务是查找包含在单元格 E1 中输入的文本字符串的职业。 单元格 C2 中的公式为:

=--ISNUMBER(SEARCH($E$1,B2))

=--ЕЧИСЛО(ПОИСК($E$1;B2))

这个公式找到了包含“银行”一词的行,但在其中一个中,这个词不是以专业名称,而是以城市名称。 这不适合我们!

每个城市名称后跟一个符号 | (竖线),所以我们,使用函数 搜索 (搜索),我们可以找到这个字符的位置。 它的位置可以指定为参数的值 起始编号 (start_position) 在“main”函数中 搜索 (搜索)。 因此,搜索将忽略城市名称。

现在,经过测试和更正的公式将只计算那些在专业名称中包含“银行”一词的行:

=--ISNUMBER(SEARCH($E$1,B2,SEARCH("|",B2)))

=--ЕЧИСЛО(ПОИСК($E$1;B2;ПОИСК("|";B2)))

发表评论