跳至主要内容

Excel教程 – 按特定位置提取文本或数字

Author: Siluvia Last Modified: 2025-07-31

在许多情况下,您可能只需要从单元格中的句子或文本字符串中提取有用的文本,例如从地址中提取省份,从句子中提取电子邮件地址,从对话中提取快递单号等等。本教程将提取范围缩小到单元格中的特定位置,并收集不同的方法来帮助在Excel中按特定位置提取文本或数字。

 目录:[ 隐藏 ]

(点击下方或右侧目录中的任意标题以导航到相应章节。)

按位置提取文本

本节收集了可以从单元格中提取文本的常见位置,并提供了相应的方法来逐步处理它们。您可以浏览以获取更多详细信息。

1. 从左或右提取字符数

要从字符串的左侧或右侧提取字符数,您可以尝试以下方法之一。

1.1 使用公式提取首或尾N个字符

假设您在B列中有一个文本字符串列表,如下图所示,要从每个字符串中提取前2个字符和后2个字符,您可以应用以下公式。

从文本字符串中提取前N个字符

LEFT函数可以帮助轻松地从Excel中的文本字符串中提取前N个字符。

通用公式

=LEFT(text_string,[num_chars])

参数

"Text_string": 包含您要提取的字符的文本字符串。它可以是单元格引用或用双引号括起来的实际文本字符串;
"Num_chars": 指定要提取的字符数。
Num_chars必须大于或等于零;
如果指定的Num_chars大于文本字符串的长度,则返回整个文本;
如果省略Num_chars,则假定为1。

现在您可以应用此公式从B列中的单元格中提取前2个字符。

1.选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得第一个结果。选择结果单元格并向下拖动其自动填充手柄以将公式应用于其他单元格。

=LEFT(B5,2)

现在您已从给定区域的每个单元格中提取了前2个字符。

从文本字符串中提取后N个字符

这里我们应用RIGHT函数从Excel中的文本字符串中提取后N个字符。

通用公式

=RIGHT(text_string,[num_chars])

参数

"Text_string": 包含您要提取的字符的文本字符串。它可以是单元格引用或用双引号括起来的实际文本字符串;
"Num_chars": 指定要提取的字符数。
"Num_chars"必须大于或等于零;
如果指定的"Num_chars"大于文本字符串的长度,则返回整个文本;
如果省略"Num_chars",则假定为1。

选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得结果。然后选择此结果单元格并向下拖动其自动填充手柄以获得其他结果。

=RIGHT(B5,2)

1.2 使用一个神奇工具提取首或尾N个字符

尽管上述公式很简单,但要从长文本字符串列表中提取首或尾n个字符,您仍然需要从上到下拖动自动填充手柄,这可能会有点耗时。在这里,我们推荐"Kutools for Excel"的"提取文本"工具来帮助批量提取文本字符串列表中的首或尾N个字符。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

1.预先选择要从中提取文本的文本字符串列表,然后点击"Kutools" > "文本" > "提取文本"。

2. 在弹出的"提取文本"对话框中,您需要进行如下配置。

2.1) 确保您停留在"按位置提取"选项卡中;
2.2) 在"区域"框中,显示所选区域,您可以根据需要更改为其他区域;
2.3) 在"选项"部分:
如果您想提取首N个字符,请选择"前N个字符"单选按钮,然后在文本框中指定要提取的字符数。在这种情况下,我输入数字2;
如果您想提取尾N个字符,请选择"后N个字符"单选按钮,然后在文本框中指定要提取的字符数。在这种情况下,我想从文本字符串中提取最后2个字符,所以我在文本框中输入数字2。
2.4) 点击"确定"。见截图:

注意:要使结果在文本字符串更改时动态更新,您可以勾选"作为公式插入"框。

3. 在下一个弹出的"提取文本"对话框中,选择一个单元格以输出提取的字符,然后点击"确定"。

然后从选定的单元格中批量提取首N或尾N个字符。

点击了解更多关于此功能的信息。

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取


2. 在某个字符/单词前后提取文本

要在某个字符或单词前后提取文本,本节中的不同方案将满足您的需求。

2.1 在第一个分隔符(一个字符)前后提取文本

如下面的截图所示,要从范围B4:B10中的每个单元格中提取第一个分隔符前后的文本,您可以应用以下方法之一。

2.1.1 使用公式在第一个分隔符前提取文本

应用基于LEFT和FIND函数的公式可以帮助从单元格中提取第一个分隔符前的文本。您可以按照以下步骤完成。

通用公式

=LEFT(text_string,FIND("delimiter",text_string,1)-1)

参数

"Text_string": 您要从中提取子字符串的文本字符串。它可以是单元格引用或用双引号括起来的实际文本字符串;
"Delimiter": 定义从单元格中提取哪个文本的第一个分隔符。

选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得第一个结果。选择第一个结果单元格并向下拖动其自动填充手柄以获取其他单元格的第一个分隔符前的文本。

=LEFT(B5,FIND("-",B5,1)-1)

2.1.2 使用公式在第一个分隔符后提取文本

下面的公式有助于从Excel中的单元格中提取第一个分隔符后的文本。

通用公式

=MID(text_string,FIND("delimiter",text_string)+1,LEN(text_string))

参数

"Text_string": 您要从中提取子字符串的文本字符串。它可以是单元格引用或用双引号括起来的实际文本字符串;
"Delimiter:" 定义从单元格中提取哪个文本的第一个分隔符。
选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得第一个结果。选择第一个结果单元格并向下拖动其自动填充手柄以获取其他结果。
=MID(B5,FIND("-",B5)+1,LEN(B5))

2.1.3 使用一个神奇工具在第一个分隔符前后提取文本

在这里,我们强烈推荐"Kutools for Excel"的"提取文本"工具。使用此功能,您可以轻松地从一系列单元格中批量提取第一个分隔符前后的文本。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

1.选择要从中提取文本的单元格范围,然后点击"Kutools" > "文本" > "提取文本"。

2. 在"提取文本"对话框中,您需要进行如下配置。

2.1) 停留在"按位置提取"选项卡中;
2.2) 在"区域"框中,显示所选区域,您可以根据需要更改;
2.3) 在"选项"部分:
要在第一个分隔符前提取文本,选择"文字前"单选按钮,然后在文本框中输入第一个分隔符;
要在第一个分隔符后提取文本,选择"文字后"单选按钮,然后在文本框中输入第一个分隔符。
2.4) 点击"确定"。

注意:要使结果在文本字符串更改时动态更新,您可以勾选作为公式插入框。

3. 然后弹出另一个"提取文本"对话框,选择一个单元格以输出结果并点击"确定"。

然后从选定的单元格中一次性提取第一个分隔符前后的文本。

要了解更多关于此功能的信息,请访问:快速从Excel中的单元格中提取特定文本

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取

2.2 在最后一个分隔符(一个字符)前后提取文本

在上面的步骤中,我们已经学习了从单元格中提取第一个分隔符前后的文本的方法。如下面的截图所示,本节将向您展示两个公式,以从单元格中提取最后一个分隔符前后的文本。您可以按照以下步骤完成。

2.2.1 使用公式在最后一个分隔符前提取文本

要从单元格中提取最后一个分隔符前的文本,您可以在LEFT函数中使用SEARCH、LEN和SUBSTITUTE函数。

通用公式

=LEFT(text_string,SEARCH("#",SUBSTITUTE(text_string,"delimiter","#",LEN(text_string)-LEN(SUBSTITUTE(text_string,"delimiter",""))))-1)

参数

"Text_string": 您要从中提取子字符串的文本字符串。它可以是单元格引用或用双引号括起来的实际文本字符串;
"Delimiter:" 定义从单元格中提取哪个文本的最后一个分隔符。

选择一个单元格,输入下面的公式并按"Enter"键以获得结果。选择此结果单元格并向下拖动其自动填充手柄以从同一列中的其他文本字符串中提取文本。

=LEFT(B5,SEARCH("#",SUBSTITUTE(B5,"-","#",LEN(B5)-LEN(SUBSTITUTE(B5,"-",""))))-1)

2.2.2 使用公式在最后一个分隔符后提取文本

在从单元格中提取最后一个分隔符前的文本后,您可以应用下面的公式根据需要提取最后一个分隔符后的文本。

通用公式

=RIGHT(text_string,LEN(text_string)-SEARCH("#",SUBSTITUTE(text_string,"delimiter","#",LEN(text_string)-LEN(SUBSTITUTE(text_string,"delimiter","")))))

参数

"Text_string": 您要从中提取子字符串的文本字符串。它可以是单元格引用或用双引号括起来的实际文本字符串;
"Delimiter:" 定义从单元格中提取哪个文本的最后一个分隔符。

选择一个单元格,输入下面的公式并按"Enter"键以获得结果。选择此结果单元格并向下拖动其自动填充手柄以从同一列中的其他文本字符串中提取文本。

=RIGHT(B5,LEN(B5)-SEARCH("#",SUBSTITUTE(B5,"-","#",LEN(B5)-LEN(SUBSTITUTE(B5,"-","")))))

2.3 在第N个字符后提取文本

查看下面的示例,范围B4:B10中有一个文本字符串列表,要从每个单元格中提取第三个字符后的文本,您可以应用基于MID函数和LEN函数的公式。

A screenshot showing an example of extracting text after the nth character in Excel

通用公式

=MID(text_string,nth_char+1,LEN(text_string))

参数

"Text_string": 您要从中提取子字符串的文本字符串。它可以是单元格引用或用双引号括起来的实际文本字符串;
"nth_char": 表示第N个字符的数字,您将在其后提取文本。

选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得结果。选择此结果单元格并向下拖动其自动填充手柄以获取其他结果。

=MID(B5,3+1,LEN(B5))

A screenshot showing the formula for extracting text after the nth character in Excel

2.4 从文本字符串中提取第N个单词

假设您有一个文本字符串列表,如下图所示,并希望仅从文本字符串中提取第N个单词,本节为您提供三种方法来完成。

2.4.1 使用公式提取第N个单词

您可以结合使用TRIM、MID、SUBSTITUTE、REPT和LEN函数从单元格中的文本字符串中提取第N个单词。

通用公式

=TRIM(MID(SUBSTITUTE(text_string," ",REPT(" ",LEN((text_string))), (N-1)*LEN((text_string)+1, LEN((text_string)))

参数

"Text_string": 您要从中提取第N个单词的文本字符串。它可以是单元格引用或用双引号括起来的实际文本字符串;
"N": 表示您将从文本字符串中提取的第N个单词的数字。

在这种情况下,范围B5:B10包含文本字符串,D5:D10包含表示第N个单词的数字,让我们应用此公式从文本字符串中提取第N个单词。

A screenshot showing the formula for extracting the nth word from a text string in Excel

选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得第一个结果。选择此结果单元格并向下拖动其自动填充手柄以获取其他单元格的第N个单词。

=TRIM(MID(SUBSTITUTE(B5," ",REPT(" ",LEN(B5))), (D5-1)*LEN(B5)+1, LEN(B5)))

A screenshot showing the formula for extracting the nth word from a text string in Excel with AutoFill

注意:您可以直接在公式中输入第N个数字,如下所示。

=TRIM(MID(SUBSTITUTE(B5," ",REPT(" ",LEN(B5))), (2-1)*LEN(B5)+1, LEN(B5)))

2.4.2 使用用户自定义函数提取第N个单词

除了上述公式外,您还可以应用用户自定义函数从Excel中的单元格中提取第N个单词。

1. 按"Alt" + "F11"键打开"Microsoft Visual Basic for Applications"窗口。

2. 在"Microsoft Visual Basic for Applications"窗口中,点击"插入" > "模块",然后将下面的VBA复制到代码窗口中。

VBA代码:从单元格中的文本字符串中提取第N个单词

Function ExtractTheNthWord(Source As String, Position As Integer)
'Update by Extendoffice 20211202
Dim arr() As String
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
    FindWord = ""
Else
    FindWord = arr(Position - 1)
End If
End Function

A screenshot showing the Microsoft Visual Basic for Applications window with the VBA code for extracting the nth word from a text string

3. 按"Alt" + "Q"键关闭"Microsoft Visual Basic for Applications"窗口。

4. 返回包含您要从中提取第N个单词的文本字符串的工作表。选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得第N个单词。

=FindWord(B5,D5)

或者

=FindWord(B5,2)

注意:在公式中,D5是包含表示第N个单词的数字的单元格。或者,您可以直接用数字替换单元格引用。

5.选择结果单元格并向下拖动其自动填充手柄以从其他单元格的文本字符串中提取第N个单词。

A screenshot of the result in Excel after using a user-defined function to extract the nth word from a text string

2.4.3 使用一个神奇工具提取第N个单词

如果您不想手动应用上述公式或用户自定义函数,这里我们推荐Kutools for Excel的"提取单元格中第N个单词"工具。使用此功能,您可以轻松地从单元格中的文本字符串中提取第N个单词,只需点击几下即可。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

1.选择一个单元格以放置结果,然后点击"Kutools" > "公式助手" > "文本" > "提取" "单元格中第N个单词"。见截图:

A screenshot of the Kutools for Excel interface showing the Extract the nth word in cell option under Formula Helper

2. 在"公式助手"对话框中,您需要进行如下配置。

2.1) 在"选择一个公式列表"框中,"提取单元格中第N个单词"选项被高亮显示;
2.2) 在"单元格"框中,选择一个包含您要从中提取第N个单词的文本字符串的单元格;
2.3) 在"第N个"框中,选择一个包含第N个数字的单元格或根据需要直接输入一个数字;
2.4) 点击"确定"。

A screenshot of the Formula Helper dialog box configured to extract the nth word from a text string

3. 然后从单元格B5中的文本字符串中提取出第N个(第二个)单词,同时创建了一个公式。选择此结果单元格并向下拖动其自动填充手柄以从其他文本字符串中提取第N个单词。

A screenshot showing the result after using Kutools to extract the nth word from a text string

点击了解更多关于此功能的信息。

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取

2.5 在分隔符第N次出现前后提取文本

假设您有一个文本字符串列表,如下图所示。要在空格第二次出现前后提取文本,本节提供了两个公式来帮助您完成。

A screenshot showing a list of text strings in Excel with the second occurrence of a space for extraction

2.5.1 在分隔符第N次出现前提取文本

您可以使用LEFT函数与SUBSTITUTE和FIND函数一起从Excel中的单元格中提取分隔符第N次出现前的文本。

通用公式

=LEFT(SUBSTITUTE(text_string,"delimiter",CHAR(9),n),FIND(CHAR(9),SUBSTITUTE(text_string,"delimiter",CHAR(9),n),1)-1)

参数

"Text_string": 您要从中提取文本的文本字符串。它可以是单元格引用或用双引号括起来的实际文本字符串;
"N": 表示分隔符第N次出现的数字,您将在其前提取文本。

选择一个单元格,复制或输入下面的公式并按"Enter"键以获得结果。选择此结果单元格并向下拖动其自动填充手柄以获取列表中的其他结果。

=LEFT(SUBSTITUTE(B5," ",CHAR(9),2),FIND(CHAR(9),SUBSTITUTE(B5," ",CHAR(9),2),1)-1)

A screenshot of the Excel formula used to extract text before the nth occurrence of a space

注意:在公式中,B5是包含您要从中提取文本的文本字符串的单元格;“ ”在这里表示空格,数字2表示空格的第二次出现。您可以根据需要更改它们。

2.5.2 在分隔符第N次出现后提取文本

要在分隔符第N次出现后提取文本,您可以应用RIGHT函数与SUBSTITUTE、LEN和FIND函数。

通用公式

=RIGHT(SUBSTITUTE(text_string, "delimiter", CHAR(9), n), LEN(text_string)- FIND(CHAR(9), SUBSTITUTE(text_string, "delimiter", CHAR(9), n),1) +1)

参数

"Text_string": 您要从中提取文本的文本字符串。它可以是单元格引用或用双引号括起来的实际文本字符串;
"N": 表示分隔符第N次出现的数字,您将在其后提取文本。

现在您可以应用此公式从范围B5:B10中的每个单元格中提取空格第二次出现后的文本,如下所示。

选择一个单元格,输入下面的公式并按"Enter"键以获得结果。选择此结果单元格并向下拖动其自动填充手柄以获取其他结果。

=RIGHT(SUBSTITUTE(B5, " ", CHAR(9), 2), LEN(B5)- FIND(CHAR(9), SUBSTITUTE(B5, " ", CHAR(9), 2), 1) + 1)

A screenshot of the Excel formula used to extract text after the nth occurrence of a space

2.6 在换行符前后提取文本

假设您在B列中有一个订单列表,并且您只想从每个单元格中提取日期部分和产品编号部分。您可以使用下面的Excel公式来完成。

A screenshot showing an order list in Excel where text is to be extracted before or after a line break

2.6.1 使用公式在第一个换行符前提取文本

如上图所示,日期部分位于单元格内的第一个换行符之前。本节将演示LEFT函数与SEARCH函数一起帮助您提取单元格内第一个换行符之前的文本。

通用公式

=LEFT(cell, SEARCH(CHAR(10), cell)-1)

参数

"Cell": 您要从中提取第一个换行符之前的文本的单元格。

选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。

=LEFT(B5, SEARCH(CHAR(10), B5)-1)

然后您可以看到范围B5:B8中每个单元格的第一个换行符之前的文本已被提取,如下图所示。

A screenshot showing the result of extracting text before the first line break in Excel cells

注意:在公式中,CHAR(10)表示Windows上的换行符。

2.6.2 使用公式在最后一个换行符后提取文本

在上一步中,我们讨论了如何从单元格中提取第一个换行符之前的文本。本部分将指导您如何使用不同的公式从单元格中提取最后一个换行符之后的文本。

通用公式

=TRIM(RIGHT(SUBSTITUTE(cell,CHAR(10),REPT(" ",200)),200))

参数

"Cell": 您要从中提取第一个换行符之前的文本的单元格。

选择一个空白单元格,输入下面的公式并按"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。

=TRIM(RIGHT(SUBSTITUTE(B5,CHAR(10),REPT(" ",200)),200))

A screenshot showing the result of extracting text after the last line break in Excel cells

然后列表中每个单元格的产品编号部分已被提取,如上图所示。

注意:在公式中,CHAR(10)表示Windows上的换行符。

 2.7 在单词前后提取文本

在前面的部分中,我们已经学习了如何在字符或分隔符前后提取文本。要在整个单词前后提取文本该怎么办?本节将介绍三种方法来帮助您完成此任务。

A screenshot showing extracting text before and after the word 'Excel' in Excel cells

2.7.1 使用公式在某个单词前提取文本

以下公式帮助您在Excel中的单元格内提取某个单词之前的文本。

通用公式

=IFERROR(LEFT(cell,FIND(word,cell)-1),cell)

参数

"Cell:" 您要从中提取某个单词之前的文本的单元格。
"Word:" 您要提取其之前所有文本的单词。它可以是单元格引用或用双引号括起来的实际文本字符串;

选择一个空白单元格,输入下面的公式并按"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。

在此示例中,我们将提取单词“Excel”之前的所有文本,因此我们直接在公式中输入单词并用双引号括起来。或者您可以引用包含单词“Excel”的单元格。

=IFERROR(LEFT(B5,FIND("Excel",B5)-1),B5)

A screenshot showing the result of extracting text before the word 'Excel' in Excel cells

注意:

1) 此公式区分大小写。
2) 如果您输入的单词在同一单元格中有重复项,公式仅提取第一次出现后的文本。

2.7.2 使用公式在某个单词后提取文本

要在某个单词后提取文本,您可以应用以下公式来完成。

通用公式

=TRIM(MID(cell,SEARCH(word,cell)+LEN(word),255))

参数

"Cell:" 您要从中提取某个单词之后的文本的单元格。
"Word:" 您要提取其之后所有文本的单词。它可以是单元格引用或用双引号括起来的实际文本字符串;

选择一个单元格,输入下面的公式并按"Enter"键以获得结果。选择结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。

=TRIM(MID(B5,SEARCH("Excel",B5)+LEN("Excel"),255))

然后您可以看到每个单元格中单词“Excel”之后的所有文本已被提取,如下图所示。

A screenshot showing the result of extracting text after the word 'Excel' in Excel cells

注意:

1) 此公式不区分大小写。
2) 如果您输入的单词在同一单元格中有重复项,公式仅提取第一次出现后的文本。

2.7.3 使用一个神奇工具在某个单词前后提取文本

如果您觉得使用公式可能会带来很多不便,在这里,我们强烈推荐"Kutools for Excel"的"提取文本"工具。此功能有助于在Excel中自动化提取任务,只需点击几下即可。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

1. 点击"Kutools" > "文本" > "提取文本"以启用此功能。

A screenshot of the Extract Text option in Kutools tab in Excel ribbon

2. 在"提取文本"对话框中,进行以下设置。

2.1) 确保您在"按位置提取"选项卡中;
2.2) 在"区域"框中,点击 Range selection button 按钮以选择要从中提取文本的单元格范围;
2.3) 在"选项"部分:
要提取单词之前的所有文本,选择"文字前"单选按钮,然后在文本框中输入单词;
要提取单词之后的所有文本,选择"文字后"单选按钮,然后在文本框中输入单词。
2.4) 点击"确定"按钮。见截图:

A screenshot of the Extract Text dialog box

注意:如果您想创建动态结果,请勾选"作为公式插入"框。然后当范围中的数据更改时,结果将自动更新。

3. 然后弹出一个"提取文本"对话框,您需要选择一个单元格以输出结果,然后点击"确定"按钮。

A screenshot of the Extract Text dialog box showing the output cell selection

然后从选定范围内的每个单元格中立即提取单词前后文本。

注意:此功能区分大小写。

点击了解更多关于此功能的信息。

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取


3. 在字符/单词之间提取

如果您想在某些字符或单词之间提取文本,请尝试以下方法。

3.1 在两个字符之间提取文本

要在两个字符之间提取文本,这些字符可能相同或不同。本节提供了几种方法,您可以选择适合您需求的方法。

 3.1.1 使用公式在两个相同字符之间提取文本

如下面的截图所示,B列中有一个文本字符串列表,您希望从范围内的每个单元格中提取字符“/”之间的数字部分,以下公式可以帮您一个忙。

选择一个空白单元格,复制或输入下面的公式,并按"Enter"键以获得结果。选择结果单元格,然后向下拖动自动填充手柄以获取列表中其他单元格的结果。

=SUBSTITUTE(MID(SUBSTITUTE("/" & B5&REPT(" ",6),"/",REPT(",",255)),2*255,255),",","")

然后从范围内的每个单元格中提取出两个相同字符“/”之间的文本。见截图:

注意:

1) "B5"是您要从中提取两个相同字符之间文本的单元格;
2) "/"是您要在其之间提取文本的两个相同字符。
您需要根据自己的数据更改这些变量。

 3.1.2 使用公式在两个不同字符之间提取文本

在学习了如何在单元格中提取两个相同字符之间的文本后,这里我们将演示一个公式来提取两个不同字符之间的文本。如下面的截图所示,要从B列中的每个单元格中仅提取“<”和“>”之间的电子邮件地址,您可以按如下方式操作。

通用公式

=MID(LEFT(cel,FIND("end_char",cell)-1),FIND("start_char",cell)+1,LEN(cell))

参数

"Cell:" 您要从中提取两个不同字符之间文本的单元格;
"End_char:" 两个不同字符的结束字符;
"Start_char:" 两个不同字符的开始字符。

选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。

=MID(LEFT(B5,FIND(">",B5)-1),FIND("<",B5)+1,LEN(B5))

您可以看到,仅提取了指定字符之间的文本,如上图所示。

3.1.3 使用一个神奇工具在两个字符之间提取文本

在这里,我们强烈推荐"Kutools for Excel"的"提取指定文本间的字符串"功能,以帮助您轻松地在Excel中的单元格内提取两个相同或不同字符之间的文本。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

1.选择一个空白单元格以输出结果,然后点击"Kutools" > "公式助手" > "公式助手"。

2. 在"公式助手"对话框中,进行以下设置。

2.1) 勾选"筛选"框,然后在文本框中输入"“提取”";
2.2) 在"选择一个公式列表"框中,点击"提取指定文本间的字符串"选项;
2.3) 在"参数输入"部分:
在"单元格"框中,选择一个要从中提取文本的单元格(这里我选择单元格B5);
在"开始字符(串)"框中,输入两个不同字符的开始字符;
在"结束字符(串)"框中,输入两个不同字符的结束字符。
2.4) 点击"确定"。见截图:

3. 然后仅提取出单元格B5中“<”和“>”之间的文本。同时,创建了一个公式,您可以选择此结果单元格,然后向下拖动其自动填充手柄以从同一列表中的其他单元格中提取文本。

点击了解更多关于此功能的信息。

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取

3.1.4 按规则在两个字符之间提取文本(包括字符)

如果您想在提取后保留两个字符,请尝试在Kutools for Excel的提取文本功能中应用规则。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

1. 点击"Kutools" > "文本" > "提取文本"。

2. 在"提取文本"对话框中,进行以下设置。

2.1) 点击"按规则提取"选项卡;
2.2) 在"区域"部分,点击 按钮以选择要从中提取字符之间文本的单元格范围;
2.3) 在"文本"框中,输入"<*>";
提示:"<"和">"是您要在其之间提取文本的字符,*是代表任意数量字符的通配符。您可以根据需要输入条件。
2.4) 点击"添加"按钮将条件添加到"规则内容"列表框中;
2.5) 点击"确定"按钮。见截图:
A screenshot showing the settings in the Extract Text dialog box, including range selection and text entry

3. 弹出另一个"提取文本"对话框。请选择一个单元格以输出结果,然后点击"确定"按钮。

A screenshot showing the second Extract Text dialog box with a selected output cell

然后,从选定范围内的每个单元格中批量提取出指定字符之间的文本(包括字符)。

A screenshot showing the extracted text between specified characters in Excel using Kutools

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取

3.2 在两个单词之间提取文本

除了在两个字符之间提取文本外,您可能还需要在两个单词之间提取文本。例如,从B列中的每个单元格中提取两个单词“KTE”和“feature”之间的所有文本字符串,如下图所示。您可以尝试以下方法之一来完成。

A screenshot showing a list of text strings between the words 'KTE' and 'feature' in column B for extraction

3.2.1 使用公式在两个单词之间提取文本

您可以使用基于MID函数和SEARCH函数的公式在单元格内提取两个单词之间的所有文本字符串。

通用公式

=MID(cell,SEARCH("start_word",cell)+3,SEARCH("end_word",cell)-SEARCH("start_word",cell)-4)

参数

"Cell:" 您要从中提取两个单词之间所有文本字符串的单元格;
"Start_word:" 您要在其后提取所有文本字符串的两个单词的开始单词;
"Length1:" 开始单词的字符长度。
"End_word:" 您要在其前提取所有文本字符串的两个单词的结束单词。
"Length2:" 开始单词的字符长度加1。

选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。

=MID(B5,SEARCH("KTE",B5)+3,SEARCH("feature",B5)-SEARCH("KTE",B5)-4)

A screenshot showing the formula for extracting text between two words in Excel using the MID and SEARCH functions

注意:在公式中,数字3表示单词"KTE"的字符长度;数字4表示单词"KTE"的字符长度加1。

您可以看到,从B列中的每个单元格中提取出指定两个单词之间的所有文本字符串。

3.2.2 使用一个神奇工具在两个单词之间提取文本

对于许多Excel用户来说,公式可能难以记住和处理。在这里,使用"Kutools for Excel"的"提取指定文本间的字符串"功能,您可以轻松地在两个单词之间提取文本,只需点击几下即可。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

1.选择一个单元格以输出结果,然后点击"Kutools" > "公式助手" > "公式助手"。

A screenshot showing the Formula Helper option in the Kutools tab in Excel ribbon

2. 在"公式助手"对话框中,您需要进行如下配置。

2.1) 勾选"筛选"框,然后在文本框中输入"“提取”";
2.2) 在"选择一个公式列表"框中,点击"提取指定文本间的字符串"选项;
2.3) 在"参数输入"部分:
在"单元格"框中,选择一个要从中提取文本的单元格(这里我选择单元格B5);
在"开始字符(串)"框中,输入您要在其后提取所有文本字符串的两个单词的开始单词;
在"结束字符(串)"框中,输入您要在其前提取所有文本字符串的两个单词的结束单词。
2.4) 点击"确定"。见截图:

A screenshot of the Formula Helper dialog box with the 'Extract strings between specified text' option selected

3. 然后从单元格B5中提取出两个单词“KTE”和“feature”之间的所有文本字符串。同时,创建了一个公式,您可以选择此结果单元格,然后向下拖动其自动填充手柄以从同一列表中的其他单元格中提取文本。

A screenshot of extracted text between two words in an Excel cell, with the formula applied

Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取


按位置提取数字

对于字母数字字符串列表,可能有三种情况:

  1. 数字位于文本的开头;
  2. 数字位于文本的末尾;
  3. 数字可以位于文本中的任何位置。

在本节中,我们将提供不同的方法,可以用于提取上述每种情况下的数字。

1 从字符串左侧提取数字

本部分将介绍一个公式,帮助您仅提取出现在单元格中文本之前的数字。

通用公式

=LEFT(cell, MATCH(FALSE, ISNUMBER(MID(cell, ROW(INDIRECT("1:"&LEN(cell)+1)),1) *1),0) -1)

参数

"Cell:" 您要从中提取文本左侧数字的单元格。

注意:

1) 如果您使用的是Excel2019及更早版本,您需要按"Ctrl" + "Shift" + "Enter"键确认此数组公式。
2) 如果您使用的是Excel365或Excel2021,只需按"Enter"键确认此公式。

选择一个空白单元格,输入下面的公式并按"Ctrl" + "Shift" + "Enter"或"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以获取其他单元格的数字。

=LEFT(B5, MATCH(FALSE, ISNUMBER(MID(B5, ROW(INDIRECT("1:"&LEN(B5)+1)), 1) *1), 0) -1)

注意:

1) 如果单元格中仅包含数字,则将提取整个数字。
2) 此公式仅提取文本字符串左侧的数字。如果数字位于文本字符串的中间或末尾,它们将被忽略。

2 从字符串右侧提取数字

如下面的截图所示,要仅提取出现在单元格中文本之后的数字,请尝试以下公式。

通用公式

=RIGHT(cell, LEN(cell) - MAX(IF(ISNUMBER(MID(cell, ROW(INDIRECT("1:"&LEN(cell))),1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(cell))),0)))

参数

"Cell:" 您要从中提取文本开头数字的单元格。

注意:

1) 如果您使用的是Excel2019及更早版本,您需要按"Ctrl" + "Shift" + "Enter"键确认此数组公式。
2) 如果您使用的是Excel365或Excel2021,只需按Enter键确认此公式。

选择一个空白单元格,输入下面的公式并按"Ctrl" + "Shift" + "Enter"或"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以获取其他单元格的数字。

=RIGHT(B5, LEN(B5) - MAX(IF(ISNUMBER(MID(B5, ROW(INDIRECT("1:"&LEN(B5))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(B5))), 0)))

注意:

1) 如果单元格中仅包含数字,则将提取整个数字。
2) 此公式仅提取文本字符串右侧的数字。如果数字位于文本字符串的中间或开头,它们将被忽略。

3. 从文本字符串中的任意位置提取所有数字

上述方法仅帮助从文本字符串的左侧或右侧提取数字。如果您想从文本字符串中的任意位置提取所有数字,这里我们为您提供三种方法来完成。

3.1 使用公式从字符串中的任意位置提取所有数字

您可以应用以下公式从Excel中的文本字符串中的任意位置提取所有数字。

1.选择一个空白单元格,复制或输入下面的公式并按"Enter"键以从单元格B5中提取所有数字。

=SUMPRODUCT(MID(0&B5, LARGE(INDEX(ISNUMBER(--MID(B5, ROW(INDIRECT("1:"&LEN(B5))), 1)) * ROW(INDIRECT("1:"&LEN(B5))), 0), ROW(INDIRECT("1:"&LEN(B5))))+1, 1) * 10^ROW(INDIRECT("1:"&LEN(B5)))/10)

2.选择结果单元格,然后向下拖动其自动填充手柄以获取其他单元格的所有数字。

3.2 使用VBA从字符串中的任意位置提取所有数字

上述公式对于许多Excel用户来说过于冗长和复杂。实际上,您可以运行VBA脚本来在Excel中自动化此任务。您可以按如下方式操作。

1. 按"Alt" + "F11"键打开"Microsoft Visual Basic for Applications"窗口。

2. 在打开的"Microsoft Visual Basic for Applications"窗口中,点击"插入" > "模块"。然后将下面的VBA复制到模块代码窗口中。

VBA代码:从文本字符串中的任意位置提取所有数字

Sub ExtrNumbersFromRange()
'Updated by Extendoffice 20220106
    Dim xRg As Range
    Dim xDRg As Range
    Dim xRRg As Range
    Dim nCellLength As Integer
    Dim xNumber As Integer
    Dim strNumber As String
    Dim xTitleId As String
    Dim xI As Integer
    xTitleId = "KutoolsforExcel"
    Set xDRg = Application.InputBox("Please select text strings:", xTitleId, "", Type:=8)
    If TypeName(xDRg) = "Nothing" Then Exit Sub
    Set xRRg = Application.InputBox("Please select output cell:", xTitleId, "", Type:=8)
    If TypeName(xRRg) = "Nothing" Then Exit Sub
    xI = 0
    strNumber = ""
  For Each xRg In xDRg
    xI = xI + 1
    nCellLength = Len(xRg)
    For xNumber = 1 To nCellLength
      If IsNumeric(Mid(xRg, xNumber, 1)) Then
        strNumber = strNumber & Mid(xRg, xNumber, 1)
      End If
    Next xNumber
    xRRg.Item(xI) = strNumber
    strNumber = ""
  Next xRg
End Sub

3. 按"F5"键运行代码。在打开的"KutoolsforExcel"对话框中,选择要从每个单元格中提取所有数字的单元格范围,然后点击"确定"按钮。

A screenshot of the Kutools for Excel dialog box asking for the input range

4. 然后弹出另一个"KutoolsforExcel"对话框。在此对话框中,选择一个目标单元格并点击"确定"。

A screenshot of the Kutools for Excel dialog box asking for the output range

然后从选定范围内的每个单元格中批量提取所有数字。

A screenshot showing the result after extracting all numbers using VBA


4. 在特定文本后提取数字

如下面的截图所示,要在特定文本“No.”之后提取任何数字,本节提供了两种方法来帮助您完成。

4.1 使用公式在特定文本后提取数字

您可以应用以下公式在Excel中的单元格中提取特定文本后的数字。

通用公式:

=LOOKUP(10^6,1*MID(cell,MIN(FIND({0,1,2,3,4,5,6,7,8,9},cell&"0123456789",FIND("text"," "&cell&" "))),{2,3,4,5,6}))

参数

"Cell:" 您要从中提取特定文本后数字的单元格;
"Text:" 您要在其后提取数字的文本。

选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。

=LOOKUP(10^6,1*MID(B5,MIN(FIND({0,1,2,3,4,5,6,7,8,9},B5&"0123456789",FIND("No."," "&B5&" "))),{2,3,4,5,6}))

注意:

1) 如果单元格不包含特定文本,公式将返回#N/A。
2)公式区分大小写。

4.2 使用用户自定义函数在特定文本后提取数字

以下用户自定义函数也可以帮助在单元格中提取特定文本后的数字。请按如下方式操作。

1. 按"Alt" + "F11"键打开"Microsoft Visual Basic for Applications"窗口。

2. 在"Microsoft Visual Basic for Applications"窗口中,点击"插入" > "模块",然后将下面的VBA代码复制到模块代码窗口中。

VBA代码:在单元格中提取特定文本后的数字

Function GetNumberAfterTheChar(Rng As Range, Char As String)
'Updated by Extendoffice 20220106
Dim xValue As String
Dim xRntString As String
Dim xStart As Integer
Dim xC
    xValue = Rng.Text
    xStart = InStr(1, xValue, Char, vbTextCompare)
    If IsEmpty(xStart) Then
            GetNumberAfterTheChar = ""
            Exit Function
    End If
    If xStart < 1 Then
        GetNumberAfterTheChar = ""
        Exit Function
    End If
    xStart = xStart - 1 + Len(Char)
    If xStart < 1 Then
        GetNumberAfterTheChar = ""
        Exit Function
    End If
    xValue = Mid(xValue, xStart + 1)
    xRntString = ""
    For xI = 1 To Len(xValue)
        xC = Mid(xValue, xI, 1)
        Select Case Asc(xC)
        Case 48 To 57
            xRntString = xRntString & xC
       Case Else
            Exit For
        End Select
    Next
   GetNumberAfterTheChar = xRntString
End Function

A screenshot of the VBA code to extract numbers after specific text in Excel

3. 按"Alt" + "Q"键关闭"Microsoft Visual Basic for Applications"窗口。

4.选择一个单元格,输入下面的公式并按"Enter"键。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。

=GetNumberAfterTheChar(B5,"No. ")

A screenshot showing the result of the VBA method to extract numbers after specific text in Excel

注意:

1) 在此公式中,B5是您要从中提取数字的单元格,“No. ”是您要在其后提取数字的特定文本。您可以根据需要更改它们。
2) 如果特定文本和数字之间有分隔符,请在文本末尾添加分隔符。在这种情况下,我在文本“No.”后添加了一个空格,最终显示为“No. ”。
3) 此方法不区分大小写;
4) 如果单元格不包含特定文本,公式将返回空白结果。

相关文章:

Excel教程:拆分文本、数字和日期单元格(分成多列)本教程分为三部分:拆分文本单元格、拆分数字单元格和拆分日期单元格。每个部分提供不同的示例,帮助您了解在遇到相同问题时如何处理拆分工作。点击了解更多...

Excel在Excel中将文本和数字添加到单元格的指定位置,向单元格添加文本或数字是一项非常常见的工作。例如在名称之间添加空格,向单元格添加前缀或后缀,向社保号码添加破折号。在本教程中,列出了Excel中几乎所有的添加场景,并为您提供了相应的方法。点击了解更多...

Excel从文本字符串中删除字符、单词、数字假设,您有一个包含字符、数字或其他特定符号的长文本字符串列表。在某些情况下,您可能需要根据位置删除一些字符,例如从文本字符串的右侧、左侧或中间删除,或者从字符串列表中删除一些不需要的字符、数字。逐一找到解决方案会让您头疼,本教程收集了在Excel中删除字符、单词或数字的各种方法。点击了解更多...

最佳 Office 办公效率工具

🤖 Kutools AI 助手:基于智能执行,彻底革新数据分析 生成代码创建自定义公式分析数据并生成图表调用 Kutools Functions
热门功能:查找、选中项的背景色或标记重复项|删除空行|合并列或单元格且不丢失数据|四舍五入(无公式)...
高级 LOOKUP多条件查找 (VLookup)多值查找 (VLookup)多表查找 (VLookup Across Multiple Sheets)模糊查找 (Fuzzy Lookup)...
高级下拉列表快速创建下拉列表依赖型下拉列表多选下拉列表...
列管理器添加指定数量的列移动列切换隐藏列的可见状态比较区域及列...
特色功能网格聚焦设计视图增强编辑栏工作簿 & 工作表管理器资源库(自动文本)|日期提取合并数据加密/解密单元格按列表发送电子邮件超级筛选特殊筛选(筛选粗体/倾斜/删除线等)...
热门15 大工具集12 款文本工具添加文本删除特定字符等)50+ 种图表 类型甘特图等)40+ 实用公式基于生日计算年龄等)19 款插入工具插入二维码按路径插入图片等)12 种转换工具小写金额转大写汇率转换等)7 款合并与分割工具高级合并行分割单元格等)...更多精彩等你发现
使用 Kutools,支持您的首选语言——包括英语、西班牙语、德语、法语、中文及40 多种其他语言!

用 Kutools for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...


Office Tab 为 Office 带来标签式界面,让你的工作更加轻松

  • 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
  • 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
  • 办公效率提升50%,每天帮你减少上百次鼠标点击!