KutoolsforOffice — 一套方案,五大工具。事半功倍。

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

作者Siluvia修改日期

在许多场景中,您可能只需从单元格中的句子或文本字符串里提取关键信息,例如从地址中提取省份、从句子中提取邮箱地址,或从对话中提取快递单号等。本教程聚焦于按单元格中的指定位置提取文本或数字,并汇总了多种实用方法,助您高效完成此类操作。

 目录:[ 隐藏 】

(单击下方或右侧目录中的任意标题,即可跳转到相应章节。)

按位置提取提取文本

本节汇总了从单元格中提取文本的常见位置,并提供相应的分步操作指南,欢迎浏览以获取更多详情。

1. 从左侧或右侧提取指定数量的字符

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

1.1 使用公式提取前 N 个或后 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 列单元格中提取前两个字符。

1. 请选择一个空白单元格,复制或输入以下公式,然后按 Enter 键获取首个结果;接着选中该结果单元格,向下拖动自动填充柄,即可将公式快速应用到其他单元格。

=LEFT(B5,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 个字符

尽管上述公式简单,但若需从大量文本字符串中提取前 N 个或后 N 个字符,您仍需从上往下拖动自动填充柄,略显耗时。在此,我们推荐使用 Kutools for Excel 的“提取文本”功能,即可批量提取文本字符串列表中的前 N 个或后 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”:要从中提取子字符串的文本字符串,可以是单元格引用,也可以是用双引号括起的实际文本内容。
“分隔符”:用于指定从单元格中提取文本时所依据的第一个分隔符。

请选择一个空白单元格,复制或输入以下公式,然后按 Enter 键获取首个结果。选中该结果单元格,向下拖动其自动填充柄,即可在其他单元格中提取第一个分隔符之前的文本。

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

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

以下公式可帮您从 Excel 单元格中提取首个分隔符之后的文本。

通用公式

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

参数

“Text_string”:要从中提取子字符串的文本字符串。可以是一个单元格引用,也可以是用双引号括起来的实际文本字符串;
“分隔符”:用于指定从单元格中提取文本时所依据的首个分隔符。
请选择一个空白单元格,复制或输入以下公式,然后按 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”:要从中提取子字符串的文本字符串,可以是单元格引用,也可以是用双引号括起的实际文本内容。
“分隔符”:用于指定从单元格中提取文本时所依据的最后一个分隔符。

选择一个单元格,输入以下公式,然后按“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 函数的公式。

显示在 Excel 中提取第 n 个字符之后文本的示例截图

通用公式

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

参数

“Text_string”:要从中提取子字符串的文本字符串,可以是单元格引用,也可以是用双引号括起的实际文本内容。
“nth_char”:表示第 n 个字符的位置,您将提取该字符之后的文本。

请选择一个空白单元格,复制或输入以下公式,然后按 Enter 键获取结果。选中该结果单元格,向下拖动填充柄,即可快速填充其他结果。

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

显示用于在 Excel 中提取第 n 个字符之后文本的公式截图

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 个单词。

显示用于从 Excel 文本字符串中提取第 n 个单词的公式截图

请选择一个空白单元格,将下方公式复制或输入其中,然后按 Enter 键获取首个结果。选中该结果单元格,向下拖动其自动填充柄,即可依次获取其他单元格中的第 n 个单词。

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

显示使用自动填充(AutoFill)从 Excel 文本字符串中提取第 n 个单词的公式截图

注意:您也可以直接在公式中输入第 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

显示 Microsoft Visual Basic for Applications 窗口,其中包含用于从文本字符串中提取第 n 个单词的 VBA 代码截图

3. 按下“Alt”+“Q”组合键,即可关闭“Microsoft Visual Basic for Applications”窗口。

4. 返回包含要提取第 n 个单词的文本字符串的工作表。请选择一个空白单元格,将下方公式复制或输入其中,然后按 Enter 键即可获取第 n 个单词。

=FindWord(B5,D5)

=FindWord(B5,2)

注意:在公式中,D5 是包含表示第 n 个单词的数字的单元格;您也可以直接将该单元格引用替换为具体数字。

5. 选中结果单元格,向下拖动其自动填充柄,即可从其他单元格的文本字符串中提取第 n 个单词。

显示在 Excel 中使用自定义函数从文本字符串中提取第 n 个单词后的结果截图

2.4.3 使用强大工具提取第 n 个单词

如果您不想手动输入上述公式或自定义函数,我们推荐使用 Kutools for Excel 的“提取单元格中第 N 个单词”功能——只需几次点击,即可轻松从单元格文本中提取第 n 个单词。

Kutools for Excel 提供 300 多项高级功能,简化复杂任务,提升创造力与效率。集成 AI 能力,Kutools 精准自动化任务,让数据管理变得轻松自如。Kutools for Excel 的详细信息……         免费试用……

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

显示 Kutools for Excel 界面的截图,其中“公式助手”下包含“提取单元格中的第 n 个单词”选项

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

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

显示已配置为从文本字符串中提取第 n 个单词的“公式助手”对话框截图

3. 此时,单元格 B5 文本字符串中的第 n 个(即第二个)单词已被提取,并自动生成相应公式。选中该结果单元格,向下拖动填充柄,即可从其他文本字符串中快速提取各自的第 n 个单词。

显示使用 Kutools 从文本字符串中提取第 n 个单词后的结果截图

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

Kutools for Excel——通过 300 多款必备工具全面增强 Excel 功能,助您工作更快速、更轻松,并借助 AI 功能实现更智能的数据处理与高效办公!立即获取

2.5 在分隔符的出现次数前或后提取文本

假设您有一个如下图所示的文本字符串列表,本节将为您提供两个公式,分别用于提取空格第二次出现之前或之后的文本。

显示 Excel 中文本字符串列表的截图,其中需提取第二个空格位置的内容

2.5.1 在分隔符的出现次数前提取文本

您可以结合使用 LEFT、SUBSTITUTE 和 FIND 函数,从 Excel 单元格中提取文本分隔符指定出现次数之前的文本。

通用公式

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

参数

“Text_string”:要从中提取文本的字符串,可以是单元格引用,也可以是用双引号括起的实际文本字符串;
“N”:表示分隔符出现的次数,您将在此处之前提取文本。

请选择一个单元格,将下方公式复制或输入其中,然后按“Enter 键”获取结果。选中该结果单元格,向下拖动其自动填充柄,即可快速填充列表中的其他结果。

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

显示用于提取第 n 次出现空格之前文本的 Excel 公式截图

注意:在公式中,B5 是包含待提取文本的单元格;“ ”代表一个空格,数字 2 表示空格第二次出现的位置。您可根据实际需求调整这些内容。

2.5.2 在分隔符的出现次数后提取文本

要提取文本中分隔符出现指定次数之后的内容,您可以结合使用 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”:表示分隔符出现的次数,您将在此之后提取文本。

现在,您可以按以下方式应用此公式,从 B5:B10 区域的每个单元格中提取空格第二次出现之后的文本。

请选择一个单元格,输入下方公式,然后按“Enter 键”获取结果。选中该结果单元格,向下拖动其自动填充柄,即可快速填充其他结果。

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

显示用于提取第 n 次出现空格之后文本的 Excel 公式截图

2.6 在换行符前或后提取文本

假设 B 列包含一份订单列表,您只需从中提取日期和产品编号。使用下方的 Excel 公式即可轻松实现!

显示 Excel 中订单列表的截图,需在换行符前后提取文本

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

如上图所示,日期部分位于单元格内第一个换行符之前。本节将演示如何巧妙结合 LEFT 函数与 SEARCH 函数,轻松提取单元格中第一个换行符前的文本内容。

通用公式

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

参数

“Cell”:要从中提取首个换行符之前文本的单元格。

请选择一个空白单元格,将下方公式复制或输入其中,然后按“Enter 键”即可获取结果。选中该结果单元格,向下拖动其自动填充柄,即可将此公式快速应用到其他单元格。

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

随后,您将看到 B5:B8 区域中每个单元格内第一个换行符前的文本已被成功提取,如下方截图所示。

显示在 Excel 单元格中提取第一个换行符之前文本的结果截图

注意:在公式中,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))

显示在 Excel 单元格中提取最后一个换行符之后文本的结果截图

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

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

2.7 在某个单词前或后提取文本

在前面的部分中,我们学习了如何提取文本中某个字符或分隔符之前或之后的内容。那么,如果要提取整个单词之前或之后的文本,您该怎么做呢?本节将为您介绍三种实用方法,助您轻松完成这一任务。

显示在 Excel 单元格中提取“Excel”一词前后文本的截图

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)

显示在 Excel 单元格中提取“Excel”一词之前文本的结果截图

注意:

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”一词之后的所有文本已被提取,如下方截图所示。

显示在 Excel 单元格中提取“Excel”一词之后文本的结果截图

注意:

1) 此公式不区分大小写。
2) 若您输入的单词在同一个单元格中存在重复,该公式仅提取首次出现之后的文本。

2.7.3 使用强大工具提取特定单词前或后的提取文本

如果您觉得使用公式可能带来诸多不便,我们强烈推荐您使用“Kutools for Excel”的“提取文本”功能——只需轻点几下,即可在 Excel 中自动完成文本提取任务。

Kutools for Excel 提供 300 多项高级功能,简化复杂任务,提升创造力与效率。集成 AI 能力,Kutools 精准自动化任务,让数据管理变得轻松自如。Kutools for Excel 的详细信息……         免费试用……

1. 单击“Kutools”>“文本”>“提取文本”以启用此功能。

显示 Excel 功能区中 Kutools 选项卡下的“提取文本”选项截图

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

2.1) 请确保您位于“按位置提取”选项卡中;
2.2) 在“范围”框中,单击区域选择按钮按钮以选择要提取文本的单元格范围;
2.3) 在“选项”部分:
要提取某个单词之前的所有文本,请选择“文本之前”选项按钮,然后在文本框中输入该单词;
要提取某个单词之后的所有文本,请选择“文本之后”选项,然后在文本框中输入该单词。
2.4) 单击“确定”按钮。参见截图:

显示“提取文本”对话框的截图

注意:若要生成动态结果,请勾选“作为公式插入”复选框,这样当所选区域中的数据发生变化时,结果将自动更新。

3. 随后将弹出“提取文本”对话框,请选择一个用于输出结果的单元格,然后单击“确定”按钮。

显示“提取文本”对话框中输出单元格选择的截图

随后,区域中每个单元格内特定单词前或后的文本将立即被提取出来。

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

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

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) 勾选“筛选”框,然后在文本框中输入单词““Extract””;
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” > “Text” > “提取文本”。

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

2.1) 单击“按规则提取”选项卡;
2.2) 在“范围”部分,单击按钮以选择要从中提取字符之间文本的单元格范围;
2.3) 在“文本”框中,输入“““”;
提示:“““”是您希望在其中提取文本的字符,* 是通配符,代表任意数量的字符。您可以根据需要输入条件。
2.4) 单击“添加”按钮,将条件添加到“规则内容”列表框中;
2.5) 单击“确定”按钮。参见截图:
显示“提取文本”对话框中的设置截图,包括区域选择和文本输入

3. 随后将弹出另一个“提取文本”对话框,请选择一个用于输出结果的单元格,然后点击“确定”按钮。

显示第二个“提取文本”对话框并已选择输出单元格的截图

随后,指定字符之间(包括字符本身)的文本将从选择区域中的每个单元格批量提取出来。

显示使用 Kutools 在 Excel 中提取指定字符之间文本的截图

Kutools for Excel——通过 300 多款必备工具全面增强 Excel 功能,助您工作更快速、更轻松,并借助 AI 功能实现更智能的数据处理与高效办公!立即获取

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

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

显示 B 列中文本字符串列表的截图,需提取“KTE”和“feature”之间的内容

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

您可以使用结合 MID 函数与 SEARCH 函数的公式,轻松提取单元格中两个单词之间的全部文本内容。

通用公式

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

参数

“Cell”:要从中提取两个单词之间所有文本字符串的单元格;
“Start_word”:要提取其之后所有文本字符串的两个单词中的起始单词;
“Length 1”:起始单词的字符长度。
“End_word”:要提取其之前所有文本字符串的两个单词中的结束单词。
“Length 2”:起始单词的字符长度加 1.

请选择一个空白单元格,复制或输入下方公式,然后按 Enter 键获取结果。选中该结果单元格,向下拖动其自动填充柄,即可将公式快速应用到其他单元格。

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

显示使用 MID 和 SEARCH 函数在 Excel 中提取两个单词之间文本的公式截图

注:在公式中,数字 3 代表单词“KTE”的字符长度;数字 4 则为其字符长度加 1.

您可以看到,B 列每个单元格中位于两个指定单词之间的所有文本字符串都已被成功提取。

3.2.2 使用强大工具在两个单词之间提取文本

对许多 Excel 用户来说,公式往往难以记忆和操作。现在,借助“Kutools for Excel”的“提取指定文本间的字符串”功能,只需轻点几下,即可轻松提取两个单词之间的文本。

Kutools for Excel 提供 300 多项高级功能,简化复杂任务,提升创造力与效率。集成 AI 能力,Kutools 精准自动化任务,让数据管理变得轻松自如。Kutools for Excel 的详细信息……         免费试用……

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

显示 Excel 功能区中 Kutools 选项卡下的“公式助手”选项截图

2. 在“公式助手”对话框中,需按如下方式进行配置。

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

显示“公式助手”对话框截图,其中已选择“提取指定文本之间的字符串”选项

3. 随后,B5 单元格中“KTE”与“feature”之间的所有文本字符串将被自动提取。系统已生成相应公式,您只需选中该结果单元格,向下拖动填充柄,即可快速提取列表中其他单元格的对应内容。

显示在 Excel 单元格中应用公式后提取两个单词之间文本的截图

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) 如果您使用的是 Excel 2019 或更早版本,请按“Ctrl”+“Shift”+“Enter”组合键来确认此数组公式。
2) 如果您使用的是 Excel 365 或 Excel 2021,只需按下“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) 如果您使用的是 Excel 2019 或更早版本,请按“Ctrl+Shift+Enter”组合键来确认此数组公式。
2) 如果您使用的是 Excel 365 或 Excel 2021,只需按 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 脚本,即可自动完成此任务。操作步骤如下:

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”键运行代码。在弹出的“Kutools for Excel”对话框中,选择您要从中提取所有数字的单元格区域,然后点击“确定”按钮。

显示 Kutools for Excel 对话框要求输入区域的截图

4. 随后将弹出另一个“Kutools for Excel”对话框,请在其中选择目标单元格,然后点击“确定”。

显示 Kutools for Excel 对话框要求输出区域的截图

随后,将从所选区域的每个单元格中批量提取所有数字。

显示使用 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

显示用于在 Excel 中提取特定文本后数字的 VBA 代码截图

3. 按下“Alt”+“Q”组合键,即可关闭“Microsoft Visual Basic for Applications”窗口。

4. 选择一个单元格,输入下方公式,然后按“ENTER 键”。选中该结果单元格,再向下拖动其自动填充柄,将此公式应用到其他单元格。

=GetNumberAfterTheChar(B5,"No. ")

显示使用 VBA 方法在 Excel 中提取特定文本后数字的结果截图

注意:

1) 在此公式中,B5 是您要提取数字的单元格,“No. ”是您希望在其后提取数字的特定文本。您可以根据需要进行修改。
2) 如果特定文本与数字之间存在分隔符,请在文本末尾添加该分隔符。在此例中,我在“No.”后添加了一个空格,最终显示为“No. ”。
3) 此方法不区分大小写;
4) 如果单元格不包含特定文本,该公式将返回空白结果。

相关文章:

Excel 教程:拆分文本、数字和日期单元格(分离为多列)
本教程分为三部分:拆分文本单元格、拆分数字单元格和拆分日期单元格,每部分均配有实用示例,助您轻松掌握各类拆分操作方法,遇到类似问题时即可快速应对!
单击了解详情……

在 Excel 单元格指定位置插入文本或数字
在 Excel 中,在单元格的指定位置插入文本或数字是一项非常常见的任务,例如在姓名之间添加空格、为单元格内容添加前缀或后缀、在社保号码中插入短横线等。本教程汇总了 Excel 中几乎所有相关场景,并为您提供对应的高效解决方案。
单击了解详情……

Excel 从文本字符串中删除特定字符、单词或数字
假设您有一长串包含字符、数字或其他特定符号的文本字符串。在某些情况下,您可能需要根据位置删除部分字符(例如从文本字符串左侧、右侧或中间删除),或从字符串列表中移除不需要的字符或数字。逐一寻找解决方案费时费力,本教程汇总了 Excel 中删除字符、单词或数字的各种高效方法。
单击了解详情……

最佳办公效率工具

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

使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……


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

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱