Excel教程 – 按特定位置提取文本或数字
在许多情况下,您可能只需要从单元格中的句子或文本字符串中提取有用的文本,例如从地址中提取省份,从句子中提取电子邮件地址,从对话中提取快递单号等等。本教程将提取范围缩小到单元格中的特定位置,并收集不同的方法来帮助在Excel中按特定位置提取文本或数字。
目录:[ 隐藏 ]
按位置提取文本
本节收集了可以从单元格中提取文本的常见位置,并提供了相应的方法来逐步处理它们。您可以浏览以获取更多详细信息。
1. 从左或右提取字符数
要从字符串的左侧或右侧提取字符数,您可以尝试以下方法之一。
假设您在B列中有一个文本字符串列表,如下图所示,要从每个字符串中提取前2个字符和后2个字符,您可以应用以下公式。
从文本字符串中提取前N个字符
LEFT函数可以帮助轻松地从Excel中的文本字符串中提取前N个字符。
通用公式
=LEFT(text_string,[num_chars])
参数
现在您可以应用此公式从B列中的单元格中提取前2个字符。
1.选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得第一个结果。选择结果单元格并向下拖动其自动填充手柄以将公式应用于其他单元格。
=LEFT(B5,2)
现在您已从给定区域的每个单元格中提取了前2个字符。
从文本字符串中提取后N个字符
这里我们应用RIGHT函数从Excel中的文本字符串中提取后N个字符。
通用公式
=RIGHT(text_string,[num_chars])
参数
选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得结果。然后选择此结果单元格并向下拖动其自动填充手柄以获得其他结果。
=RIGHT(B5,2)
尽管上述公式很简单,但要从长文本字符串列表中提取首或尾n个字符,您仍然需要从上到下拖动自动填充手柄,这可能会有点耗时。在这里,我们推荐"Kutools for Excel"的"提取文本"工具来帮助批量提取文本字符串列表中的首或尾N个字符。
1.预先选择要从中提取文本的文本字符串列表,然后点击"Kutools" > "文本" > "提取文本"。
2. 在弹出的"提取文本"对话框中,您需要进行如下配置。
注意:要使结果在文本字符串更改时动态更新,您可以勾选"作为公式插入"框。
3. 在下一个弹出的"提取文本"对话框中,选择一个单元格以输出提取的字符,然后点击"确定"。
然后从选定的单元格中批量提取首N或尾N个字符。
Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取
2. 在某个字符/单词前后提取文本
要在某个字符或单词前后提取文本,本节中的不同方案将满足您的需求。
如下面的截图所示,要从范围B4:B10中的每个单元格中提取第一个分隔符前后的文本,您可以应用以下方法之一。
应用基于LEFT和FIND函数的公式可以帮助从单元格中提取第一个分隔符前的文本。您可以按照以下步骤完成。
通用公式
=LEFT(text_string,FIND("delimiter",text_string,1)-1)
参数
选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得第一个结果。选择第一个结果单元格并向下拖动其自动填充手柄以获取其他单元格的第一个分隔符前的文本。
=LEFT(B5,FIND("-",B5,1)-1)
下面的公式有助于从Excel中的单元格中提取第一个分隔符后的文本。
通用公式
=MID(text_string,FIND("delimiter",text_string)+1,LEN(text_string))
参数
=MID(B5,FIND("-",B5)+1,LEN(B5))
在这里,我们强烈推荐"Kutools for Excel"的"提取文本"工具。使用此功能,您可以轻松地从一系列单元格中批量提取第一个分隔符前后的文本。
1.选择要从中提取文本的单元格范围,然后点击"Kutools" > "文本" > "提取文本"。
2. 在"提取文本"对话框中,您需要进行如下配置。
注意:要使结果在文本字符串更改时动态更新,您可以勾选作为公式插入框。
3. 然后弹出另一个"提取文本"对话框,选择一个单元格以输出结果并点击"确定"。
然后从选定的单元格中一次性提取第一个分隔符前后的文本。
要了解更多关于此功能的信息,请访问:快速从Excel中的单元格中提取特定文本。
Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取
在上面的步骤中,我们已经学习了从单元格中提取第一个分隔符前后的文本的方法。如下面的截图所示,本节将向您展示两个公式,以从单元格中提取最后一个分隔符前后的文本。您可以按照以下步骤完成。
要从单元格中提取最后一个分隔符前的文本,您可以在LEFT函数中使用SEARCH、LEN和SUBSTITUTE函数。
通用公式
=LEFT(text_string,SEARCH("#",SUBSTITUTE(text_string,"delimiter","#",LEN(text_string)-LEN(SUBSTITUTE(text_string,"delimiter",""))))-1)
参数
选择一个单元格,输入下面的公式并按"Enter"键以获得结果。选择此结果单元格并向下拖动其自动填充手柄以从同一列中的其他文本字符串中提取文本。
=LEFT(B5,SEARCH("#",SUBSTITUTE(B5,"-","#",LEN(B5)-LEN(SUBSTITUTE(B5,"-",""))))-1)
在从单元格中提取最后一个分隔符前的文本后,您可以应用下面的公式根据需要提取最后一个分隔符后的文本。
通用公式
=RIGHT(text_string,LEN(text_string)-SEARCH("#",SUBSTITUTE(text_string,"delimiter","#",LEN(text_string)-LEN(SUBSTITUTE(text_string,"delimiter","")))))
参数
选择一个单元格,输入下面的公式并按"Enter"键以获得结果。选择此结果单元格并向下拖动其自动填充手柄以从同一列中的其他文本字符串中提取文本。
=RIGHT(B5,LEN(B5)-SEARCH("#",SUBSTITUTE(B5,"-","#",LEN(B5)-LEN(SUBSTITUTE(B5,"-","")))))
查看下面的示例,范围B4:B10中有一个文本字符串列表,要从每个单元格中提取第三个字符后的文本,您可以应用基于MID函数和LEN函数的公式。
通用公式
=MID(text_string,nth_char+1,LEN(text_string))
参数
选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得结果。选择此结果单元格并向下拖动其自动填充手柄以获取其他结果。
=MID(B5,3+1,LEN(B5))
假设您有一个文本字符串列表,如下图所示,并希望仅从文本字符串中提取第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)))
参数
在这种情况下,范围B5:B10包含文本字符串,D5:D10包含表示第N个单词的数字,让我们应用此公式从文本字符串中提取第N个单词。
选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得第一个结果。选择此结果单元格并向下拖动其自动填充手柄以获取其他单元格的第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)))
除了上述公式外,您还可以应用用户自定义函数从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
3. 按"Alt" + "Q"键关闭"Microsoft Visual Basic for Applications"窗口。
4. 返回包含您要从中提取第N个单词的文本字符串的工作表。选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得第N个单词。
=FindWord(B5,D5)
或者
=FindWord(B5,2)
注意:在公式中,D5是包含表示第N个单词的数字的单元格。或者,您可以直接用数字替换单元格引用。
5.选择结果单元格并向下拖动其自动填充手柄以从其他单元格的文本字符串中提取第N个单词。
如果您不想手动应用上述公式或用户自定义函数,这里我们推荐Kutools for Excel的"提取单元格中第N个单词"工具。使用此功能,您可以轻松地从单元格中的文本字符串中提取第N个单词,只需点击几下即可。
1.选择一个单元格以放置结果,然后点击"Kutools" > "公式助手" > "文本" > "提取" "单元格中第N个单词"。见截图:
2. 在"公式助手"对话框中,您需要进行如下配置。
3. 然后从单元格B5中的文本字符串中提取出第N个(第二个)单词,同时创建了一个公式。选择此结果单元格并向下拖动其自动填充手柄以从其他文本字符串中提取第N个单词。
Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取
假设您有一个文本字符串列表,如下图所示。要在空格第二次出现前后提取文本,本节提供了两个公式来帮助您完成。
您可以使用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)
参数
选择一个单元格,复制或输入下面的公式并按"Enter"键以获得结果。选择此结果单元格并向下拖动其自动填充手柄以获取列表中的其他结果。
=LEFT(SUBSTITUTE(B5," ",CHAR(9),2),FIND(CHAR(9),SUBSTITUTE(B5," ",CHAR(9),2),1)-1)
注意:在公式中,B5是包含您要从中提取文本的文本字符串的单元格;“ ”在这里表示空格,数字2表示空格的第二次出现。您可以根据需要更改它们。
要在分隔符第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)
参数
现在您可以应用此公式从范围B5:B10中的每个单元格中提取空格第二次出现后的文本,如下所示。
选择一个单元格,输入下面的公式并按"Enter"键以获得结果。选择此结果单元格并向下拖动其自动填充手柄以获取其他结果。
=RIGHT(SUBSTITUTE(B5, " ", CHAR(9), 2), LEN(B5)- FIND(CHAR(9), SUBSTITUTE(B5, " ", CHAR(9), 2), 1) + 1)
假设您在B列中有一个订单列表,并且您只想从每个单元格中提取日期部分和产品编号部分。您可以使用下面的Excel公式来完成。
如上图所示,日期部分位于单元格内的第一个换行符之前。本节将演示LEFT函数与SEARCH函数一起帮助您提取单元格内第一个换行符之前的文本。
通用公式
=LEFT(cell, SEARCH(CHAR(10), cell)-1)
参数
选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。
=LEFT(B5, SEARCH(CHAR(10), B5)-1)
然后您可以看到范围B5:B8中每个单元格的第一个换行符之前的文本已被提取,如下图所示。
注意:在公式中,CHAR(10)表示Windows上的换行符。
在上一步中,我们讨论了如何从单元格中提取第一个换行符之前的文本。本部分将指导您如何使用不同的公式从单元格中提取最后一个换行符之后的文本。
通用公式
=TRIM(RIGHT(SUBSTITUTE(cell,CHAR(10),REPT(" ",200)),200))
参数
选择一个空白单元格,输入下面的公式并按"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。
=TRIM(RIGHT(SUBSTITUTE(B5,CHAR(10),REPT(" ",200)),200))
然后列表中每个单元格的产品编号部分已被提取,如上图所示。
注意:在公式中,CHAR(10)表示Windows上的换行符。
在前面的部分中,我们已经学习了如何在字符或分隔符前后提取文本。要在整个单词前后提取文本该怎么办?本节将介绍三种方法来帮助您完成此任务。
以下公式帮助您在Excel中的单元格内提取某个单词之前的文本。
通用公式
=IFERROR(LEFT(cell,FIND(word,cell)-1),cell)
参数
选择一个空白单元格,输入下面的公式并按"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。
在此示例中,我们将提取单词“Excel”之前的所有文本,因此我们直接在公式中输入单词并用双引号括起来。或者您可以引用包含单词“Excel”的单元格。
=IFERROR(LEFT(B5,FIND("Excel",B5)-1),B5)
注意:
要在某个单词后提取文本,您可以应用以下公式来完成。
通用公式
=TRIM(MID(cell,SEARCH(word,cell)+LEN(word),255))
参数
选择一个单元格,输入下面的公式并按"Enter"键以获得结果。选择结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。
=TRIM(MID(B5,SEARCH("Excel",B5)+LEN("Excel"),255))
然后您可以看到每个单元格中单词“Excel”之后的所有文本已被提取,如下图所示。
注意:
如果您觉得使用公式可能会带来很多不便,在这里,我们强烈推荐"Kutools for Excel"的"提取文本"工具。此功能有助于在Excel中自动化提取任务,只需点击几下即可。
1. 点击"Kutools" > "文本" > "提取文本"以启用此功能。
2. 在"提取文本"对话框中,进行以下设置。

注意:如果您想创建动态结果,请勾选"作为公式插入"框。然后当范围中的数据更改时,结果将自动更新。
3. 然后弹出一个"提取文本"对话框,您需要选择一个单元格以输出结果,然后点击"确定"按钮。
然后从选定范围内的每个单元格中立即提取单词前后文本。
注意:此功能区分大小写。
Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取
3. 在字符/单词之间提取
如果您想在某些字符或单词之间提取文本,请尝试以下方法。
要在两个字符之间提取文本,这些字符可能相同或不同。本节提供了几种方法,您可以选择适合您需求的方法。
如下面的截图所示,B列中有一个文本字符串列表,您希望从范围内的每个单元格中提取字符“/”之间的数字部分,以下公式可以帮您一个忙。
选择一个空白单元格,复制或输入下面的公式,并按"Enter"键以获得结果。选择结果单元格,然后向下拖动自动填充手柄以获取列表中其他单元格的结果。
=SUBSTITUTE(MID(SUBSTITUTE("/" & B5&REPT(" ",6),"/",REPT(",",255)),2*255,255),",","")
然后从范围内的每个单元格中提取出两个相同字符“/”之间的文本。见截图:
注意:
3.1.2 使用公式在两个不同字符之间提取文本
在学习了如何在单元格中提取两个相同字符之间的文本后,这里我们将演示一个公式来提取两个不同字符之间的文本。如下面的截图所示,要从B列中的每个单元格中仅提取“<”和“>”之间的电子邮件地址,您可以按如下方式操作。
通用公式
=MID(LEFT(cel,FIND("end_char",cell)-1),FIND("start_char",cell)+1,LEN(cell))
参数
选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。
=MID(LEFT(B5,FIND(">",B5)-1),FIND("<",B5)+1,LEN(B5))
您可以看到,仅提取了指定字符之间的文本,如上图所示。
在这里,我们强烈推荐"Kutools for Excel"的"提取指定文本间的字符串"功能,以帮助您轻松地在Excel中的单元格内提取两个相同或不同字符之间的文本。
1.选择一个空白单元格以输出结果,然后点击"Kutools" > "公式助手" > "公式助手"。
2. 在"公式助手"对话框中,进行以下设置。
3. 然后仅提取出单元格B5中“<”和“>”之间的文本。同时,创建了一个公式,您可以选择此结果单元格,然后向下拖动其自动填充手柄以从同一列表中的其他单元格中提取文本。
Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取
如果您想在提取后保留两个字符,请尝试在Kutools for Excel的提取文本功能中应用规则。
1. 点击"Kutools" > "文本" > "提取文本"。
2. 在"提取文本"对话框中,进行以下设置。


3. 弹出另一个"提取文本"对话框。请选择一个单元格以输出结果,然后点击"确定"按钮。
然后,从选定范围内的每个单元格中批量提取出指定字符之间的文本(包括字符)。
Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取
除了在两个字符之间提取文本外,您可能还需要在两个单词之间提取文本。例如,从B列中的每个单元格中提取两个单词“KTE”和“feature”之间的所有文本字符串,如下图所示。您可以尝试以下方法之一来完成。
您可以使用基于MID函数和SEARCH函数的公式在单元格内提取两个单词之间的所有文本字符串。
通用公式
=MID(cell,SEARCH("start_word",cell)+3,SEARCH("end_word",cell)-SEARCH("start_word",cell)-4)
参数
选择一个空白单元格,复制或输入下面的公式并按"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。
=MID(B5,SEARCH("KTE",B5)+3,SEARCH("feature",B5)-SEARCH("KTE",B5)-4)
注意:在公式中,数字3表示单词"KTE"的字符长度;数字4表示单词"KTE"的字符长度加1。
您可以看到,从B列中的每个单元格中提取出指定两个单词之间的所有文本字符串。
对于许多Excel用户来说,公式可能难以记住和处理。在这里,使用"Kutools for Excel"的"提取指定文本间的字符串"功能,您可以轻松地在两个单词之间提取文本,只需点击几下即可。
1.选择一个单元格以输出结果,然后点击"Kutools" > "公式助手" > "公式助手"。
2. 在"公式助手"对话框中,您需要进行如下配置。
3. 然后从单元格B5中提取出两个单词“KTE”和“feature”之间的所有文本字符串。同时,创建了一个公式,您可以选择此结果单元格,然后向下拖动其自动填充手柄以从同一列表中的其他单元格中提取文本。
Kutools for Excel - 通过超过300个必备工具,让Excel功能大幅提升。永久免费享受AI功能!立即获取
按位置提取数字
对于字母数字字符串列表,可能有三种情况:
- 数字位于文本的开头;
- 数字位于文本的末尾;
- 数字可以位于文本中的任何位置。
在本节中,我们将提供不同的方法,可以用于提取上述每种情况下的数字。
1 从字符串左侧提取数字
本部分将介绍一个公式,帮助您仅提取出现在单元格中文本之前的数字。
通用公式
=LEFT(cell, MATCH(FALSE, ISNUMBER(MID(cell, ROW(INDIRECT("1:"&LEN(cell)+1)),1) *1),0) -1)
参数
注意:
选择一个空白单元格,输入下面的公式并按"Ctrl" + "Shift" + "Enter"或"Enter"键以获得结果。选择此结果单元格,然后向下拖动其自动填充手柄以获取其他单元格的数字。
=LEFT(B5, MATCH(FALSE, ISNUMBER(MID(B5, ROW(INDIRECT("1:"&LEN(B5)+1)), 1) *1), 0) -1)
注意:
2 从字符串右侧提取数字
如下面的截图所示,要仅提取出现在单元格中文本之后的数字,请尝试以下公式。
通用公式
=RIGHT(cell, LEN(cell) - MAX(IF(ISNUMBER(MID(cell, ROW(INDIRECT("1:"&LEN(cell))),1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(cell))),0)))
参数
注意:
选择一个空白单元格,输入下面的公式并按"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)))
注意:
3. 从文本字符串中的任意位置提取所有数字
上述方法仅帮助从文本字符串的左侧或右侧提取数字。如果您想从文本字符串中的任意位置提取所有数字,这里我们为您提供三种方法来完成。
您可以应用以下公式从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.选择结果单元格,然后向下拖动其自动填充手柄以获取其他单元格的所有数字。
上述公式对于许多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"对话框中,选择要从每个单元格中提取所有数字的单元格范围,然后点击"确定"按钮。
4. 然后弹出另一个"KutoolsforExcel"对话框。在此对话框中,选择一个目标单元格并点击"确定"。
然后从选定范围内的每个单元格中批量提取所有数字。
4. 在特定文本后提取数字
如下面的截图所示,要在特定文本“No.”之后提取任何数字,本节提供了两种方法来帮助您完成。
您可以应用以下公式在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}))
参数
选择一个空白单元格,复制或输入下面的公式并按"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. 按"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
3. 按"Alt" + "Q"键关闭"Microsoft Visual Basic for Applications"窗口。
4.选择一个单元格,输入下面的公式并按"Enter"键。选择此结果单元格,然后向下拖动其自动填充手柄以将此公式应用于其他单元格。
=GetNumberAfterTheChar(B5,"No. ")
注意:
相关文章:
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 for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...
Office Tab 为 Office 带来标签式界面,让你的工作更加轻松
- 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
- 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
- 办公效率提升50%,每天帮你减少上百次鼠标点击!