让我们一起探索一下这些藏在excel自动排序中的“小秘密”。-英雄云拓展知识分享
323
2024-02-23
Excel 教程 - 按特定位置提取文本或数字
很多情况下,你可能只需要从一个句子或单元格中的文本字符串中提取有用的内容,例如从地址中提取省分,从句子中提取电子邮件地址,从对话中提取快递单号,等等。 本教程将提取范围缩小到单元格中的特定位置,并搜集了不同的方法来帮助在 Excel 中按特定位置从单元格中提取文本或数字。
目录: [ 隐藏 ]
本节搜集可以从单元格中提取文本的常见位置,并提供相应的方法来逐渐处理它们。 您可以阅读以了解更多详细信息。
要从字符串的左边或右边提取字符数,您可以尝试以下方法之一。
1.1 用公式提取前N个字符或后N个字符
假定您在 B 列中有一个文本字符串列表,以下面的屏幕截图所示,要从每一个字符串中提取前 2 个字符和后 2 个字符,您可以利用以下公式。
从文本字符串中提取前 N 个字符
LEFT 函数可以帮助轻鬆地从 Excel 中的文本字符串中提取前 N 个字符。
通用公式
=LEFT(text_string,[num_chars])
参数
现在您可以利用此公式从 B 列的单元格中提取前 2 个字符。
1.选择一个空白单元格,复制或输入下面的公式,然后按 Enter 取得第一个结果的关键。 选择结果单元格并将其自动填充句柄向下拖动以将公式利用于其他单元格。
=LEFT(B5,2)
现在已提取范围 B2:B5 的每一个单元格中的前 10 个字符。
从文本字符串中提取最后 N 个字符
在这里,我们利用 RIGHT 函数从 Excel 中的文本字符串中提取最后 N 个字符。
通用公式
=RIGHT(text_string,[num_chars])
参数
选择一个空白单元格,复制或输入下面的公式,然后按 Enter 取得结果的关键。 然后选择此结果单元格并向下拖动其自动填充句柄以获得其他结果。
=RIGHT(B5,2)
1.2 用一个奇异的工具提取第一个或最后N个字符
虽然上面的公式很简单,但要从一长串文本字符串中提取第一个或最后 n 个字符,依然需要从上到下拖动 AutoFill Handle,这可能会有点耗时。 这里推荐 Excel的tools“ 提取文字 实用程序来帮助从批量文本字符串列表中提取第一个或最后 N 个字符。
1. 预先选择要从中提取文本的文本字符串列表,然后单击 库工具 > 文本 > 提取文字.
2.在弹出 提取文字 对话框,您需要配置以下。
备注:要在文本字符串更改时使结果动态,您可以检查 作为公式插入 框。
3.在接下来弹出 提取文字 对话框,选择一个单元格以输出提取的字符,然后单击 OK.
然后从选定的单元格中批量提取指定的第一个或最后 N 个字符。
单击以了解有关此功能的更多信息。
如果您想免费试用(30天)此实用程序, 请点击下载,然后依照上述步骤进行操作。
要提取某个字符或单词之前或以后的文本,本节中的不同场景将满足您的需求。
2.1 在第一个分隔符(一个字符)之前或以后提取文本
以下面的屏幕截图所示,要从 B4:B10 范围内的每一个单元格中提取第一个分隔符之前或以后的文本,您可以利用以下方法之一。
2.1.1 用公式提取第一个分隔符之前的文本
利用基于 LEFT 和 FIND 函数的公式可以帮助从单元格中提取第一个分隔符之前的文本。 您可以依照以下步骤完成。
通用公式
=LEFT(text_string,FIND("delimiter",text_string,1)⑴)
参数
选择一个空白单元格,将下面的公式复制或输入其中,然后按 Enter 取得第一个结果的关键。 选择第一个结果单元格并向下拖动其自动填充句柄以获得其他单元格的第一个分隔符之前的文本。
=LEFT(B5,FIND("-",B5,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 使用奇异的工具在第一个分隔符之前或以后提取文本
这里强烈推荐 提取文字 的功效 tools for Excel。 使用此功能,您可以轻鬆地从一系列单元格中批量提取第一个分隔符之前或以后的文本。
1. 选择要提取文本的单元格范围,然后单击 库工具 > 文本 > 提取文字.
2。 在里面 提取文字 对话框,您需要配置以下。
注意: 要在文本字符串更改时使结果动态化,您可以选中作为公式插入框。
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",""))))⑴)
参数
选择一个单元格,输入下面的公式,然后按 Enter 取得结果的关键。 选择此结果单元格并向下拖动其自动填充句柄以从同一列中的其他文本字符串中提取文本。
=LEFT(B5,SEARCH("#",SUBSTITUTE(B5,"-","#",LEN(B5)-LEN(SUBSTITUTE(B5,"-",""))))⑴)
2.2.2 用公式提取最后一个分隔符后的文本
从单元格中提取最后一个分隔符之前的文本后,您可以针对需要利用下面的公式来提取最后一个分隔符以后的文本。
通用公式
=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,"-","")))))
2.3 提取第n个字符后的文本
看下面的例子,在 B4:B10 范围内有一个文本字符串列表,要从每一个单元格中提取第3个字符以后的文本,您可以利用基于 MID 函数和 LEN 函数的公式。
通用公式
=MID(text_string,nth_char+1,LEN(text_string))
参数
选择一个空白单元格,将下面的公式复制或输入其中,然后按 Enter 取得结果的关键。 选择此结果单元格并向下拖动其自动填充句柄以取得其他结果。
=MID(B5,3+1,LEN(B5))
2.4 从文本字符串中提取第n个单词
假定您有以下屏幕截图所示的文本字符串列表,并且只想从文本字符串中提取第 n 个单词,本节提供3种方法供您完成。
2.4.1 用公式提取第n个单词
您可以结合 TRIM、MID、SUBSTITUTE、REPT 和 LEN 函数从单元格中的文本字符串中提取第 n 个单词。
通用公式
=TRIM(MID(SUBSTITUTE(text_string," ",REPT(" ",LEN((text_string))), (N⑴)*LEN((text_string)+1, LEN((text_string)))
参数
在这类情况下,范围 B5:B10 包括文本字符串,D5:D10 包括表示第 n 个单词的数字,让我们利用此公式从文本字符串中提取第 n 个单词。
选择一个空白单元格,将下面的公式复制或输入其中,然后按 Enter 取得第一个结果的关键。 选择此结果单元格并向下拖动其自动填充句柄以获得其他单元格的第 n 个单词。
=TRIM(MID(SUBSTITUTE(B5," ",REPT(" ",LEN(B5))), (D5⑴)*LEN(B5)+1, LEN(B5)))
注意: 您可以直接在公式中键入第 n 个数字,以下所示。
=TRIM(MID(SUBSTITUTE(B5," ",REPT(" ",LEN(B5))), (2⑴)*LEN(B5)+1, LEN(B5)))
2.4.2 用自定义内涵函数提取第n个单词
除上述公式,您还可以利用用户定义内涵的函数从 Excel 中的单元格中提取第 n 个单词。
1。 按 其他 + 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 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 for Applications 窗口。
4. 返回包括要从中提取第 n 个单词的文本字符串的工作表。 选择一个空白单元格,复制或输入下面的公式,然后按 Enter 取得第 n 个单词的关键。
=FindWord(B5,D5)
Or
=FindWord(B5,2)
注意: 在公式中,D5 是包括代表第 n 个单词的数字的单元格。 或,您可以直接将单元格援用替换为数字。
5. 选择结果单元格并将其自动填充句柄向下拖动以从其他单元格的文本字符串中提取第 n 个单词。
2.4.3 用奇异的工具提取第n个单词
如果您不想手动利用上面提供的公式或用户定义内涵的函数,这里推荐 tools for Excel's 提取单元格中的第n个单词 公用事业。 使用此功能,您只需单击几下便可轻鬆地从单元格中的文本字符串中提取第 n 个单词。
1. 选择要放置结果的单元格,然后单击 库工具 > 公式助手 > 文本 > 提取 单元格中的第 n 个单词。 看截图:
2。 在里面 公式助手 对话框,您需要配置以下。
3.然后从B5单元格的文本字符串中提取第n(第2)个单词,可以看到同时创建了一个公式。 选择此结果单元格并向下拖动其自动填充句柄以从其他文本字符串中获得第 n 个单词。
单击以了解有关此功能的更多信息。
如果您想免费试用(30天)此实用程序, 请点击下载,然后依照上述步骤进行操作。
2.5 在第 n 次出现分隔符之前或以后提取文本
假定您有一个文本字符串列表,以下面的屏幕截图所示。 要在第2次出现空格之前或以后提取文本,本节提供了两个公式来帮助您完成。
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)⑴)
参数
选择一个单元格,复制或输入下面的公式,然后按 Enter 取得结果的关键。 选择此结果单元格并将其向下拖动 AutoFill Handle 以获得列表中的其他结果。
=LEFT(SUBSTITUTE(B5," ",CHAR(9),2),FIND(CHAR(9),SUBSTITUTE(B5," ",CHAR(9),2),1)⑴)
注意: 在公式中,B5 是包括要从中提取文本的文本字符串的单元格; 这里的“ ”代表一个空格,数字 2 代表第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)
参数
现在,您可以利用此公式从 B5:B10 范围内的每一个单元格中第2次出现空格后提取文本,以下所示。
选择一个单元格,输入下面的公式,然后按 Enter 取得结果的关键。 选择此结果单元格并将其向下拖动 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)⑴)
参数
选择一个空白单元格,将下面的公式复制或输入其中,然后按 Enter 取得结果的关键。 选择此结果单元格,然后向下拖动其自动填充句柄以将此公式利用于其他单元格。
=LEFT(B5, SEARCH(CHAR(10), B5)⑴)
然后您可以看到提取范围 B5:B8 中每一个单元格中第一个换行符之前的文本,以下面的屏幕截图所示。
注意: 在公式中,CHAR(10) 表示 Windows 上的换行符。
2.6.2 用公式提取最后一个换行符后的文本
在上一步中,我们讨论了如何在单元格中的第一个换行符之条件取文本。 这部份将指点您如何在具有不同公式的单元格中的最后一个换行符以后提取文本。
通用公式
=TRIM(RIGHT(SUBSTITUTE(cell,CHAR(10),REPT(" ",200)),200))
参数
选择一个空白单元格,输入下面的公式,然后按 Enter 取得结果的关键。 选择此结果单元格,然后向下拖动其自动填充句柄以将公式利用于其他单元格。
=TRIM(RIGHT(SUBSTITUTE(B5,CHAR(10),REPT(" ",200)),200))
然后是产品编号。 提取列表中每一个单元格的一部份,如上面的屏幕截图所示。
注意: 在公式中,CHAR(10) 表示 Windows 上的换行符。
2.7 提取单词之前或以后的文本
在前面的部份中,我们学习了如何在字符或分隔符之前或以后提取文本。 您应当怎幺做才能在全部单词之前或以后提取文本? 本节将介绍3种方法来帮助您完成此任务。
2.7.1 用公式提取某个单词前的文本
以下公式可帮助您在 Excel 中的单元格中提取特订单词之前的文本。
通用公式
=IFERROR(LEFT(cell,FIND(word,cell)⑴),cell)
参数
选择一个空白单元格,输入下面的公式,然后按 Enter 取得结果的关键。 选择此结果单元格,然后向下拖动其自动填充句柄以将此公式利用于其他单元格。
在此示例中,我们将提取单词“Excel”之前的所有文本,因此我们直接在公式中键入单词并将其括在双引号中。 或您可以援用包括“Excel”一词的单元格。
=IFERROR(LEFT(B5,FIND("Excel",B5)⑴),B5)
笔记:
2.7.2 用公式提取某个单词后的文本
要在某个单词以后提取文本,您可以利用以下公式来完成它。
通用公式
=TRIM(MID(cell,SEARCH(word,cell)+LEN(word),255))
参数
选择一个单元格,输入下面的公式,然后按 Enter 取得结果的关键。 选择结果单元格,然后向下拖动其自动填充句柄以将此公式利用于其他单元格。
=TRIM(MID(B5,SEARCH("Excel",B5)+LEN("Excel"),255))
然后你可以看到每一个单元格中“Excel”这个词被提取出来后的所有文本,以下面的截图所示。
笔记:
2.7.3 使用奇异的工具在某个单词之前或以后提取文本
如果您觉得使用公式可能会带来很多不便,这里强烈推荐 提取文字 的功效 Excel的tools. 只需单击几下,此功能有助于在 Excel 中自动履行提取任务。
1。 点击 库工具 > 文本 > 提取文字 启用此功能。
2。 在里面 提取文字 对话框,进行以下设置。
笔记: 如果要创建动态结果,请选中 作为公式插入 盒子。 然后当范围内的数据产生变化时,结果会自动更新。
3.然后 提取文字 弹出对话框,您需要选择一个单元格来输出结果,然后单击 OK 按钮。
然后立即提取所选范围内每一个单元格中某个单词之前或以后的文本。
注意: 此功能辨别大小写。
单击以了解有关此功能的更多信息。
如果您想免费试用(30天)此实用程序, 请点击下载,然后依照上述步骤进行操作。
如果要提取某些字符或单词之间的文本,请尝试以下方法。
3.1 提取两个字符之间的文本
提取两个字符之间的文本,这两个字符多是相同或不同的字符。 本节提供了几种方法,您可以针对需要选择其中一种。
3.1.1 用公式提取两个相同字符之间的文本
以下图所示,B 列中有一个文本字符串列表,如果你想从范围内的每一个单元格中提取字符“/”之间的数字部份,下面的公式可以帮到你。
选择一个空白单元格,复制或输入下面的公式,然后按 Enter 取得结果的关键。 选择结果单元格,然后将其拖动 AutoFill Handle 以获得列表中其他单元格的结果。
=SUBSTITUTE(MID(SUBSTITUTE("/" & B5&REPT(" ",6),"/",REPT(",",255)),2*255,255),",","")
然后从范围内的每一个单元格中提取两个相同字符“/”之间的文本。 看截图:
注意:
3.1.2 用公式提取两个不同字符之间的文本
在学习了如何在单元格内的两个相同字符之间提取文本以后,我们将在这里演示一个在两个不同字符之间提取文本的公式。 以下图所示,要从 B 列的每一个单元格中仅提取“<”和“>”之间的电子邮件地址,您可以履行以下操作。
通用公式
=MID(LEFT(cel,FIND("end_char",cell)⑴),FIND("start_char",cell)+1,LEN(cell))
参数
选择一个空白单元格,复制或输入下面的公式,然后按 Enter 取得结果的关键。 选择此结果单元格,然后向下拖动其自动填充句柄以将此公式利用于其他单元格。
=MID(LEFT(B5,FIND(">",B5)⑴),FIND("<",B5)+1,LEN(B5))
您可以看到只提取了指定字符之间的文本,如上面的屏幕截图所示。
3.1.3 用一个奇异的工具提取两个字符之间的文本
这里强烈推荐 提取指定文本之间的字符串 的特点 Excel的tools 帮助您轻鬆提取 Excel 单元格中两个相同或不同字符之间的文本。
1.选择一个空白单元格以输出结果,然后单击 库工具 > 公式助手 > 公式助手.
2。 在里面 公式助手 对话框,进行以下设置。
3.然后只提取单元格B5中“<”和“>”之间的文本。 同时,已创建了一个公式,您可以选择此结果单元格,然后将其自动填充句柄向下拖动以从同一列表中的其他单元格中提取文本。
单击以了解有关此功能的更多信息。
如果您想免费试用(30天)此实用程序, 请点击下载,然后依照上述步骤进行操作。
3.1.4 按规则提取两个字符(包括字符)之间的文本
如果您想在提取后保存这两个字符,请尝试在 tools for Excel 的提取文本功能中利用规则。
1。 点击 库工具 > 文本 > 提取文字.
2。 在里面 提取文字 对话框,进行以下设置。
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)⑷)
参数
选择一个空白单元格,复制或输入下面的公式,然后按 Enter 取得结果的关键。 选择此结果单元格,然后向下拖动其自动填充句柄以将此公式利用于其他单元格。
=MID(B5,SEARCH("KTE",B5)+3,SEARCH("feature",B5)-SEARCH("KTE",B5)⑷)
备注:公式中,数字3代表单词“KTE”的字符长度; 数字 4 表示单词“KTE”的字符长度加 1。
您可以看到指定两个单词之间的所有文本字符串都是从 B 列中的每一个单元格中提取的。
3.2.2 用一个奇异的工具提取两个单词之间的文本
对许多 Excel 用户来讲,公式可能很难记住和处理。 在这里,与 提取指定文本之间的字符串 的特点 Excel的tools,您只需单击几下便可轻鬆提取两个单词之间的文本。
1. 选择要输出结果的单元格,然后点击 库工具 > 公式助手 > 公式助手。
2。 在里面 公式助手 对话框,您需要配置以下。
3.然后提取单元格B5中两个单词“KTE”和“feature”之间的所有文本字符串。 同时,已创建了一个公式,您可以选择此结果单元格,然后将其自动填充句柄向下拖动以从同一列表中的其他单元格中提取文本。
如果您想免费试用(30天)此实用程序, 请点击下载,然后依照上述步骤进行操作。
对字母数字字符串的列表,可能有3种情况:
在本节中,我们将提供可用于在上述每种情况下提取数字的不同方法。
这部份将介绍一个公式来帮助您仅提取单元格中文本之前出现的数字。
通用公式
=LEFT(cell, MATCH(FALSE, ISNUMBER(MID(cell, ROW(INDIRECT("1:"&LEN(cell)+1)), 1) *1), 0) ⑴)
参数
注意:
选择一个空白单元格,输入下面的公式,然后按 按Ctrl + 转移 + Enter or Enter 取得结果的关键。 选择此结果单元格,然后向下拖动其自动填充句柄以获得其他单元格的数量。
=LEFT(B5, MATCH(FALSE, ISNUMBER(MID(B5, ROW(INDIRECT("1:"&LEN(B5)+1)), 1) *1), 0) ⑴)
笔记:
以下面的屏幕截图所示,要仅提取单元格中文本以后出现的数字,请尝试以下公式。
通用公式
=RIGHT(cell, LEN(cell) - MAX(IF(ISNUMBER(MID(cell, ROW(INDIRECT("1:"&LEN(cell))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(cell))), 0)))
参数
注意:
选择一个空白单元格,输入下面的公式,然后按 按Ctrl + 转移 + Enter or 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种方法供您完成。
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。 按 其他 + F11 键打开 Microsoft Visual Basic for Applications 窗口。
2.在开幕 Microsoft Visual Basic for Applications 窗口中,单击 插入 > 模块。 然后将下面的 VBA 复制到模块代码窗口中。
VBA代码:从文本字符串中的任何位置提取所有数字
Sub ExtrNumbersFromRange()'Updated by 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 = "toolsforExcel"
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 键来运行代码。 在开幕 toolsfor Excel 对话框中,选择要从每一个单元格中提取所有数字的单元格区域,然后单击 OK 按钮。
4.然后另外一个 toolsfor Excel 对话框弹出。 在此对话框中,选择目标单元格并单击 肯定。
然后从选定范围内的每一个单元格中批量提取所有数字。
以下图所示,要提取特定文本“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}))
参数
选择一个空白单元格,复制或输入下面的公式,然后按 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}))
笔记:
4.2 使用自定义内涵函数提取特定文本后的数字
以下用户定义内涵的函数还可以帮助提取单元格中特定文本以后的数字。 请履行以下操作。
1。 按 其他 + F11 键打开 Microsoft Visual Basic for Applications 窗口。
2。 在里面 Microsoft Visual Basic for Applications 窗口中,单击 插入 > 模块 然后将下面的 VBA 代码复制到模块代码窗口中。
VBA代码:在单元格中的特定文本以后提取数字
Function GetNumberAfterTheChar(Rng As Range, Char As String)'Updated by 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 for Applications 窗口。
4. 选择一个单元格,输入下面的公式,然后按 Enter 钥匙。 选择此结果单元格,然后向下拖动其自动填充句柄以将此公式利用于其他单元格。
=GetNumberAfterTheChar(B5,"No. ")
笔记:
Excel 教程:拆分文本、数字和日期单元格(分成多列)
本教程分为3个部份:拆分文本单元格、拆分数字单元格和拆分日期单元格。 每一个部份都提供了不同的示例,以帮助您了解在遇到相同问题时如何处理拆分作业。
点击了解更多...
Excel将文本和数字添加到单元格的指定位置
在 Excel 中,向单元格添加文本或数字是一项非常常见的工作。 例如在名称之间添加空格,在单元格中添加前缀或后缀,在社交号码中添加破折号。 在本教程中,它列出了 Excel 中几近所有的添加场景,并为您提供了相应的方法。
点击了解更多...
Excel从文本字符串中删除字符、单词、数字
假定您有一长串包括字符、数字或其他特定符号的文本字符串。 通常,在某些情况下,您可能需要针对位置删除一些字符,例如从文本字符串中的右边、左边或中间,或从字符串列表中删除一些不需要的字符、数字。 逐一寻觅解决方案会让你头疼,本教程搜集了Excel中去除字符、单词或数字的各种方法。
点击了解更多...
>>>>🚀🌟 点击注册 免费试用 更高级的-英雄云企业级云表单 🌟🚀 😃👉🌐>>>>
在现代企业管理中,数据的高效管理和处理至关重要。随着信息技术的不断发展,英雄云的云表单已经成为了提高数据录入、管理和分析效率的不可或缺的工具。让我们来深入探讨英雄云-云表单的几大优势。
基础字段:多样性满足业务需求
英雄云的云表单中包括了各种基础字段,如单行文本、多行文本、数字输入框、单选框、复选框、下拉框、下拉复选框、日期时间、分割线等。这些字段的多样性使用户可以根据具体的业务需求,轻松进行文本、数据和时间信息的录入或修改。例如,您可以使用单行文本字段录入员工姓名、产品型号等,或者使用下拉框进行多选,根据不同情况选择更加方便的字段类型。
高级字段:提升工作效率
英雄云的云表单还提供了高级字段,如地址、图片、附件、手写签名、手机、子表、关联数据、关联查询以及流水号。这些高级字段在基础字段的基础上升级,可帮助用户完成一些琐碎的工作。例如,使用地址字段可以避免逐字打字,而流水号字段可以自动生成规律性的编号,非常适用于合同编号生成等场景。
部门成员字段:精确管理与通讯录的关联
英雄云的部门成员字段允许企业对各个部门的成员进行精确管理。用户可以通过部门成员字段获取通讯录中的部门成员信息,应用于记录报销人、报销部门等场景。这些成员字段还细分为成员单选和成员多选,可根据具体需求在通讯录中选择一个或多个成员。
聚合表:数据处理更智能
英雄云的聚合表功能用于对已存在的表单数据进行聚合计算,从而得到一张聚合表,后续其他表单可调用聚合表进行数据联动、关联查询和关联数据等操作完成数据处理。这一功能可应用于多种场景,如进销存管理、财务管理和门店零售管理等,帮助企业完成数据处理,提高工作效率。
表单权限设置:灵活管理数据访问
英雄云的表单权限设置允许用户根据企业的具体需求管理表单的访问和操作权限。用户可以根据系统权限或自定义权限对不同成员或团队进行权限设置,以确保数据的安全和合规性。这一功能使企业能够根据变化的业务需求和团队结构,实时调整权限设置。
自定义打印模板:文档输出更便捷
英雄云的云表单支持自定义打印模板,可将表单数据转换为可打印的Word文档。用户可以根据自己的需求进行排版和编辑,将产品规格说明书等文档轻松生成。这一功能提供了一种标准化的文档输出方式,简化了信息整理的过程。
综合来看,选择英雄云的云表单意味着选择更智能、更灵活、更高效的数据管理工具。无论是提高工作效率,精确管理数据,还是实现数据处理,英雄云的云表单都能满足您的多样化需求,助力您的业务发展。
如果您正在寻找一款强大的云表单工具,不妨考虑英雄云,它将为您带来更多的便捷和智能,助您事半功倍。
免责声明:
本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。本网站所展示的所有内容,如文字、图像、标志、音频、视频、软件和程序等的版权均属于原创作者。如果任何组织或个人认为网站内容可能侵犯其知识产权,或包含不准确之处,请即刻联系我们进行相应处理。
发表评论
暂时没有评论,来抢沙发吧~