Excel find() 函数

17 Mar 2025 | 6 分钟阅读

find() 是 Excel 的一个内置方法,用于在另一个字符串中查找文本字符串。作为结果值,它返回第一个字符串在第二个字符串中找到的位置。如果它没有在另一个字符串中找到第一个字符串,则返回 **#VALUE!** 错误。

find() 函数区分大小写,不支持通配符运算符。如果此函数找到字符串的多个出现,它将返回第一次出现的位置。**例如**,对于子字符串 "t",在 "Javatpoint" 中,它将返回 5(t 的第一次出现)。

本章将涵盖此函数的每个参数并详细描述。

目的

使用此函数的主要目的是在另一个字符串中查找字符串并获取其位置。

此函数的功能与 Excel 内置的 FIND 选项相同,该选项用于在 Excel 文件中搜索内容(数字、字符串)。但它只会在找到文本时导航到该文本。

返回值

find() 函数返回第一个字符串在第二个字符串中找到的位置。

如果找不到字符串,则返回一个名为 **#VALUE!** 的错误。

语法

find() 函数主要接受两个参数。带有两个强制参数的语法将是 -

此外,Excel 还允许设置一个位置以从特定位置开始搜索字符串。为此,语法将是 -

参数

  1. **子字符串 -** 包含要在另一个搜索字符串中搜索的文本。您可以将其称为子字符串。
  2. **字符串 -** 包含要在其中搜索第一个字符串(子字符串)的文本字符串。
  3. **[startfrom] -** 它包含一个整数。您可以指定一个数字值以从第二个 (within_text) 字符串中的该位置开始搜索。

关于 find() 函数的要点

以下是关于 find() 函数的一些重要信息,在使用它时您应该了解。

  1. find() 函数不支持 **_通配符运算符_**。
  2. 此函数区分大小写。因此,它将字符串 "Happy" 和 "HAPPY" 区别对待。
  3. 它从 1 开始计数,而不是从 0 开始。**例如**,对于 ("p", "Empty") - 返回 3。
  4. 它返回一个数字值,即在第二个字符串中找到的第一个字符串的位置。
  5. 如果此函数找到字符串的多个出现,它将返回第一次出现的位置。
  6. 如果未传入要搜索的子字符串,则返回 1。
  7. 在 MS Excel 中,find() 函数归入 **_字符串/文本_** 函数类别。
  8. 它与 Excel 内置的 FIND 选项功能相同。

示例

下面是包含不同表达式结果的示例列表。

表达返回位置说明
=FIND("v", "Javatpoint")3返回字符串 Javatpoint 中 v 的位置。
=FIND("K", "Javatpoint")#VALUE!返回一个错误,因为它在字符串 Javatpoint 中找不到子字符串 K。
=FIND("", "Javatpoint")1返回 1,因为没有提供子字符串进行搜索。
=FIND("a", "Javatpoint")2返回第二个字符串中 a 的第一次出现。
=FIND("a", "JAvatpoint")4返回 6,因为 find() 函数区分大小写。
=FIND("a", "Javatpoint", 5)#VALUE!从第二个字符串中的位置 5 开始搜索,不搜索子字符串 a。
=ISNUMBER(FIND("He", "World Hello"))TRUE找到子字符串匹配时返回 TRUE。
=ISNUMBER(FIND("He", "Welcome"))FALSE未在主字符串中找到子字符串时返回 FALSE。

您可以在 Excel 工作表中实现这些表达式并验证它们是否返回相同的结果。

示例 1

让我们以一个包含一些字符串或数字数据的 Excel 工作表为例。我们将应用 find() 函数在存储在此 Excel 工作表中的另一个字符串中搜索子字符串。

在 Excel 数据上实现 find() 函数的步骤

**步骤 1:** 我们在 Excel 工作表中取得了一些数据,其中 A 列包含搜索字符串,B 列包含将要搜索的字符串。

Excel find() function

当子字符串存在于字符串中时

**步骤 2:** 对第一行数据执行第一个查找操作,并在 C2 单元格中写入以下公式。

=FIND(A2, B2)

Excel find() function

**步骤 3:** 看到 find() 函数返回 3,因为它在 _Javatpoint_ 字符串中的第 3 个位置找到了 _vat_ 子字符串。

Excel find() function

当子字符串不存在于字符串中时

**步骤 4:** 现在,检查其他子字符串。因此,修改上述公式如下,并写入 C3 单元格。

=FIND(A3, B3)

Excel find() function

**步骤 5:** 它现在返回了一个名为 #VALUE! 的错误,因为 find() 函数在 _Javatpoint_ 字符串中没有找到 **_k_**。

Excel find() function

当未提供子字符串时

如果用户没有提供任何子字符串进行搜索,让我们看看它会返回什么。

**步骤 6:** 为第 4 行写入以下公式,其中 A4 单元格不包含任何要搜索的子字符串。

=FIND(A4, B4)

Excel find() function

**步骤 7:** 这次它返回了 1。如果用户没有传入任何要搜索的子字符串,Excel find() 函数总是返回 1。

Excel find() function

**步骤 8:** 同样,对其他数据应用 find() 函数,并查看每个比较对应的返回位置。

Excel find() function

我们还为每个结果添加了备注。

示例 3:提供 [startFrom] 参数

您上面学到的所有示例都是在没有指定搜索起始 [startFrom] 参数的情况下解决的。让我们看一个示例,了解如果我们使用第三个(可选)[startFrom] 参数,find() 函数如何工作。

**步骤 1:** 我们取得了以下数据集以及 startFrom 参数,以从指定位置开始搜索。

Excel find() function

**步骤 2:** 为第 3 行数据写入以下公式,其中 find() 函数将从位置 5 开始搜索。

=FIND(A2, B2, C2)

Excel find() function

**步骤 3:** 它在从位置 5 开始搜索后,在 **_字符串:Welcome to Javatpoint_** 中没有找到 **_子字符串:come_**。

因此,它返回了 **#VALUE!** 错误。

Excel find() function

**步骤 4:** 现在,对其他单元格数据执行相同的操作,并使用以下公式

=FIND(A3, B3, C3)

Excel find() function

**步骤 5:** 这次它在主字符串中找到了指定的子字符串,即使在位置 7 开始搜索之后,并返回了位置 9。

Excel find() function

示例 3:find() 与 ISNUMBER()

这次我们希望子字符串在另一个字符串中是否存在的结果为 TRUE 或 FALSE。我们将使用嵌套在 ISNUMBER() 函数中的 find() 函数来获取 TRUE 或 FALSE 的结果。使用所描述的函数以布尔值而不是位置获取结果。

语法

=ISNUMBER(FIND(子字符串, 字符串))

返回值

  1. **TRUE -** 在字符串中找到子字符串时返回 TRUE。
  2. **FALSE -** 如果未在字符串中找到子字符串,则返回 FALSE。

我们有一个示例,我们将使用 ISNUMBER() 中的 find() 函数来获取布尔值(真或假)的结果。

查找字符串并获取布尔值结果的步骤

**步骤 1:** 我们将使用第一个示例中使用的数据,该数据包含子字符串和字符串,我们将在此数据上执行此修改后的操作。

Excel find() function

我们添加了名为 **布尔结果** 的一列来存储布尔结果。

**步骤 2:** 写入以下公式 -

=ISNUMBER(FIND(A2, B2))

Excel find() function

**步骤 3:** 它在字符串 (B2) 中找到了子字符串 (A2)。因此,它返回了 TRUE。

Excel find() function

**步骤 4:** 现在,我们已将相同的公式应用于所有剩余数据,并获取了它们的结果。

Excel find() function

查看每个操作的备注,以便您更好地理解它。

find() 和 search() 之间的区别

您可能想知道为什么不使用 search() 函数而不是 find()。就像 find() 函数一样,search() 函数也用于在另一个字符串中查找字符串并返回所搜索字符串的位置。此外,它们之间也存在一些差异。

它们之间存在一些差异,这就是为什么它们在不同的情况下使用。

  • find() 区分大小写,而 search() 是 Excel 的不区分大小写函数。
  • find() 函数不支持通配符操作,而 search() 函数支持通配符运算符。

下一主题Excel 技巧