跳到主要内容

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

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

目录: [ 隐藏 ]

(单击下面目录中的任何标题或在右侧导航到相应的章节。)

按位置提取文本

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

1.从左或右提取字符数

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

1.1 用公式提取前N个字符或后N个字符

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

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

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

通用公式

=LEFT(text_string,[num_chars])

参数

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

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

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

=LEFT(B5,2)

现在已提取范围 B2:B5 的每个单元格中的前 10 个字符。

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

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

通用公式

=RIGHT(text_string,[num_chars])

参数

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

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

=RIGHT(B5,2)

1.2 用一个神奇的工具提取第一个或最后N个字符

虽然上面的公式很简单,但要从一长串文本字符串中提取第一个或最后 n 个字符,仍然需要从上到下拖动 AutoFill Handle,这可能会有点耗时。 这里推荐 Kutools for Excel 提取文字 实用程序来帮助从批量文本字符串列表中提取第一个或最后 N 个字符。

1. 预先选择要从中提取文本的文本字符串列表,然后单击 库工具 > 文本 > 提取文字.

2.在弹出 提取文字 对话框,您需要配置如下。

2.1) 确保您留在 按位置提取 标签;
2.2)在 范围 框,里面显示选中的范围,可以根据需要换成其他范围;
2.3)在 附加选项 部分:
如果要提取前 N 个字符,请选择 前N个字符 单选按钮,然后指定您将在文本框中提取的字符数。 在这种情况下,我输入数字 2;
如果要提取最后 N 个字符,请选择 最后N个字符 单选按钮,然后指定您将在文本框中提取的字符数。 在这种情况下,我想从文本字符串中提取最后 2 个字符,因此我在文本框中输入数字 2。
2.4)点击 OK。 看截图:

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

3.在接下来弹出 提取文字 对话框,选择一个单元格以输出提取的字符,然后单击 OK.

然后从选定的单元格中批量提取指定的第一个或最后 N 个字符。

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

  如果您想免费试用(30天)此实用程序, 请点击下载,然后按照上述步骤进行操作。


2.提取某个字符/单词之前或之后的文本

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

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

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

2.1.1 用公式提取第一个分隔符之前的文本

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

通用公式

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

参数

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

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

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

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

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

通用公式

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

参数

文字字串:要从中提取子字符串的文本字符串。 它可以是单元格引用或用双引号括起来的实际文本字符串;
分隔符: 定义将从单元格中提取的文本的第一个分隔符。
选择一个空白单元格,将下面的公式复制或输入其中,然后按 输入 获得第一个结果的关键。 选择第一个结果单元格并向下拖动其自动填充句柄以获取其他结果。

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

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

这里强烈推荐 提取文字 实用程序 Excel 的 Kutools。 使用此功能,您可以轻松地从一系列单元格中批量提取第一个分隔符之前或之后的文本。

1. 选择要提取文本的单元格范围,然后单击 库工具 > 文本 > 提取文字.

2.在 提取文字 对话框,您需要配置如下。

2.1) 留在 按位置提取 标签;
2.2)在 范围 框,选择的范围显示在里面,可以根据需要更改;
2.3)在 附加选项 部分:
要在第一个分隔符之前提取文本,请选择 在正文之前 单选按钮,然后在文本框中键入第一个分隔符;
要在第一个分隔符之后提取文本,请选择 在正文之后 单选按钮,然后在文本框中输入第一个分隔符。
2.4)点击 确定。

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

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

然后立即从选定的单元格中提取第一个分隔符之前或之后的文本。

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

  如果您想免费试用(30天)此实用程序, 请点击下载,然后按照上述步骤进行操作。

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)

参数

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

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

=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","")))))

参数

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

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

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

2.3 提取第n个字符后的文本

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

通用公式

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

参数

文字字串:要从中提取子字符串的文本字符串。 它可以是单元格引用或用双引号括起来的实际文本字符串;
第 n 个字符: 一个数字代表第n个字符,你将提取它后面的文本。

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

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

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)))

参数

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

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

选择一个空白单元格,将下面的公式复制或输入其中,然后按 输入 获得第一个结果的关键。 选择此结果单元格并向下拖动其自动填充句柄以获取其他单元格的第 n 个单词。

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

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

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

2.4.2 用自定义函数提取第n个单词

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

1。 按 其他 + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2.在 Microsoft Visual Basic应用程序 窗口中,单击 插页 > 模块 然后将下面的 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

3。 按 其他 + Q 关闭键 Microsoft Visual Basic应用程序 窗口。

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

=FindWord(B5,D5)

Or

=FindWord(B5,2)

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

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

2.4.3 用神奇的工具提取第n个单词

如果您不想手动应用上面提供的公式或用户定义函数,这里推荐 Kutools for Excel's 提取单元格中的第n个单词 公用事业。 使用此功能,您只需单击几下即可轻松地从单元格中的文本字符串中提取第 n 个单词。

1. 选择要放置结果的单元格,然后单击 库工具 > 公式助手 > 文本 > 提取 单元格中的第 n 个单词。 看截图:

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

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

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

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

  如果您想免费试用(30天)此实用程序, 请点击下载,然后按照上述步骤进行操作。

2.5 在第 n 次出现分隔符之前或之后提取文本

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

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)

参数

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

选择一个单元格,复制或输入下面的公式,然后按 输入 获得结果的关键。 选择此结果单元格并将其向下拖动 AutoFill Handle 以获取列表中的其他结果。

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

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

参数

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

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

选择一个单元格,输入下面的公式,然后按 输入 获得结果的关键。 选择此结果单元格并将其向下拖动 AutoFill Handle 以获得其他结果。

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

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

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

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

正如您在上面的屏幕截图中看到的,日期部分位于单元格内的第一个换行符之前。 本节将演示 LEFT 函数和 SEARCH 函数,以帮助您提取单元格内第一个换行符之前的文本。

通用公式

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

参数

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

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

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

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

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

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

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

通用公式

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

参数

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

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

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

然后是产品编号。 提取列表中每个单元格的一部分,如上面的屏幕截图所示。

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

2.7 提取单词之前或之后的文本

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

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

以下公式可帮助您在 Excel 中的单元格中提取特定单词之前的文本。

通用公式

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

参数

手机: 要从中提取特定单词之前的文本的单元格。
字: 您要提取它之前的所有文本的单词。 它可以是单元格引用或用双引号括起来的实际文本字符串;

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

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

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

笔记:

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

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

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

通用公式

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

参数

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

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

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

然后你可以看到每个单元格中“Excel”这个词被提取出来后的所有文本,如下面的截图所示。

笔记:

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

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

如果您觉得使用公式可能会带来很多不便,这里强烈推荐 提取文字 实用程序 Kutools for Excel. 只需单击几下,此功能有助于在 Excel 中自动执行提取任务。

1。 点击 库工具 > 文本 > 提取文字 启用此功能。

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

2.1) 确保您在 按位置提取 标签;
2.2)在 范围 框,单击 按钮选择要提取文本的单元格范围;
2.3)在 附加选项 部分:
要提取单词之前的所有文本,请选择 在正文之前 单选按钮,然后在文本框中输入单词;
要提取单词后的所有文本,请选择 在正文之后 单选按钮,然后在文本框中输入单词。
2.4)点击 OK 按钮。 看截图:

笔记: 如果要创建动态结果,请选中 作为公式插入 盒子。 然后当范围内的数据发生变化时,结果会自动更新。

3.然后 提取文字 弹出对话框,您需要选择一个单元格来输出结果,然后单击 OK 按钮。

然后立即提取所选范围内每个单元格中某个单词之前或之后的文本。

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

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

  如果您想免费试用(30天)此实用程序, 请点击下载,然后按照上述步骤进行操作。


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

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

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

提取两个字符之间的文本,这两个字符可能是相同或不同的字符。 本节提供了几种方法,您可以根据需要选择其中一种。

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

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

选择一个空白单元格,复制或输入下面的公式,然后按 输入 获得结果的关键。 选择结果单元格,然后将其拖动 AutoFill Handle 以获取列表中其他单元格的结果。

=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))

参数

手机: 要从中提取两个不同字符之间的文本的单元格;
结束字符: 两个不同字符的结束字符;
开始字符: 两个不同字符的起始字符。

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

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

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

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

这里强烈推荐 提取指定文本之间的字符串 的特点 Kutools for Excel 帮助您轻松提取 Excel 单元格中两个相同或不同字符之间的文本。

1.选择一个空白单元格以输出结果,然后单击 库工具 > 公式助手 > 公式助手.

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

2.1)检查 筛选器 框,然后输入单词 “提取” 进入文本框;
2.2)在 选择一个公式列表 框,单击 提取指定文本之间的字符串 选项;
2.3)在 参数输入 部分:
手机 框,选择要提取文本的单元格(这里我选择单元格B5);
起始字符 框,输入两个不同字符的起始字符;
结束 char(s) 框中,输入两个不同字符的结束字符。
2.4)点击 好吧。 看截图:

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

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

  如果您想免费试用(30天)此实用程序, 请点击下载,然后按照上述步骤进行操作。

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

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

1。 点击 库工具 > 文本 > 提取文字.

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

2.1)点击 依规则提取 标签;
2.2)在 范围 部分,点击 按钮选择要在字符之间提取文本的单元格范围;
2.3)在 文本 框中输入 <*>;
提示:<“和”>” 是要在它们之间提取文本的字符,* 是表示任意数量字符的通配符。 您可以根据需要输入条件。
2.4)点击 地址 按钮将条件添加到 规则说明 列表框;
2.5)点击 Ok 按钮。 看截图:

3.另一个 提取文字 弹出对话框,请选择要输出结果的单元格,然后单击 OK 按钮。

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

  如果您想免费试用(30天)此实用程序, 请点击下载,然后按照上述步骤进行操作。

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

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

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

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

通用公式

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

参数

手机: 要从中提取两个单词之间的所有文本字符串的单元格;
起始字: 您要提取其后所有文本字符串的两个单词的起始词;
长度1: 起始词的字符长度。
结束字: 您要提取其之前的所有文本字符串的两个单词的结束词。
长度2: 起始词的字符长度加 1。

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

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

备注:公式中,数字3代表单词“KTE”的字符长度; 数字 4 表示单词“KTE”的字符长度加 1。

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

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

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

1. 选择要输出结果的单元格,然后点击 库工具 > 公式助手 > 公式助手。

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

2.1)检查 筛选器 框,然后输入单词 “提取” 进入文本框;
2.2)在 选择一个公式列表 框,单击 提取指定文本之间的字符串 选项;
2.3)在 参数输入 部分:
手机 框,选择要提取文本的单元格(这里我选择单元格B5);
起始字符 框,输入要提取其后所有文本字符串的两个词的起始词;
结束字符 框,输入要提取其前面所有文本字符串的两个词的结束词。
2.4)点击 好吧。 看截图:

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

  如果您想免费试用(30天)此实用程序, 请点击下载,然后按照上述步骤进行操作。


按位置提取数字

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

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

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

1 从字符串左侧提取数字

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

通用公式

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

参数

手机: 文本字符串左侧要从中提取数字的单元格。

请注意:

1) 如果您使用的是 Excel 2019 及更早版本,则需要按 按Ctrl + 转移 + 输入 键来确认这个数组公式。
2) 如果您使用的是 Excel 365 或 Excel 2021,只需用 输入 键。

选择一个空白单元格,输入下面的公式,然后按 按Ctrl + 转移 + 输入 or 输入 获得结果的关键。 选择此结果单元格,然后向下拖动其自动填充句柄以获取其他单元格的数量。

=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)))

参数

手机: 要从文本字符串的开头提取数字的单元格。

请注意:

1) 如果您使用的是 Excel 2019 及更早版本,则需要按 按Ctrl + 转移 + 输入 键来确认这个数组公式。
2) 如果您使用的是 Excel 365 或 Excel 2021,只需按 Enter 键确认此公式即可。

选择一个空白单元格,输入下面的公式,然后按 按Ctrl + 转移 + 输入 or 输入 获得结果的关键。 选择此结果单元格,然后向下拖动其自动填充句柄以获取其他单元格的数量。

=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.选择一个空白单元格,复制或输入下面的公式,然后按 输入 键从单元格 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。 按 其他 + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2.在开幕 Microsoft Visual Basic应用程序 窗口中,单击 插页 > 模块。 然后将下面的 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. 对话框中,选择要从每个单元格中提取所有数字的单元格区域,然后单击 OK 按钮。

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

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


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}))

参数

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

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

=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。 按 其他 + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2.在 Microsoft Visual Basic应用程序 窗口中,单击 插页 > 模块 然后将下面的 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

3。 按 其他 + Q 关闭键 Microsoft Visual Basic应用程序 窗口。

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

=GetNumberAfterTheChar(B5,"No. ")

笔记:

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

相关文章:

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

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

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

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

产品描述


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations