如何从文本字符串中提取前两个或最后两个或第n个单词?
在Excel中处理大量文本数据时,通常需要从每个单元格中提取某些单词,例如前几个单词、最后的单词或特定位置的单词。常见的场景包括从包含多词文本条目的单元格中提取名称、地址、关键字或唯一标识符,特别是当数据由空格分隔时。例如,您可能有一个包含句子或产品代码的单元格,并希望提取前三个单词,或者仅提取最后两个单词以进行后续处理。Excel没有直接内置的函数来实现这一点,但有多种方法可以实现灵活的单词提取,每种方法都适用于不同的数据大小和需求。本文将介绍公式、实用工具和额外的自动化技术,帮助您高效地从Excel中的文本字符串提取前、后或第n个单词。
使用公式从文本字符串提取前两个或第n个单词
要从单元格值中提取前几个单词,您可以使用以下公式。如果您有始终如一的单词分隔符(例如空格),并且希望从单元格中提取前三个单词,这些公式特别有用。这些公式易于应用,适用于中等规模的数据集,并且可以调整为提取任意数量的前导单词。
在空白单元格(如C2)中输入以下任一公式,然后向下拖动填充柄以填充所有相关行的公式。您将看到从每个文本字符串中提取出所需数量的前导单词,如下方截图所示。
说明与提示:
1. 在上述示例公式中,A2指代包含原始文本的单元格,而3是您希望提取的单词数。根据您的数据需求修改这些引用。
2. 如果您希望提取的单词数按行变化,并且指定在B列中,您可以使用以下灵活公式:
此公式允许您通过引用单元格(例如B2)动态指定要提取的单词数。请确保B2包含有效的整数。
3. 如果您的文本由其他分隔符(如逗号或分号)分隔,您可以通过将空格字符(" ")替换为您特定的分隔符来适应该公式。
4. 注意开头/结尾的双空格或多连续空格,因为这些会影响结果。应用TRIM
有助于去除多余的空格。
5. 如果单元格中的总单词数少于您试图提取的数量,该公式将返回完整文本而不报错。
使用公式从文本字符串提取最后两个或第n个单词
要从文本字符串中提取最后的单词(如最后两个或最后n个单词),以下公式会有所帮助。这种方法对于需要始终提取尾随单词的数据集非常有效,例如姓氏、文件扩展名或文本单元格末尾的标识符。
请复制并将以下公式粘贴到您希望显示结果的空白单元格中。输入公式后,向下拖动填充柄以将其应用于其他行。
- A2: 包含文本的源单元格。
- 3: 您希望提取的最后单词的数量。要提取最后5个单词,只需将公式中的3改为5。
- 如果单元格中总的单词数少于您请求的数量,它将简单地返回该单元格中所有可用的单词。
- 如果您的数据由另一个分隔符(逗号、制表符)分隔,请相应调整公式。
- 数据中复杂或不一致的间距可能导致结果不准确;在可能的情况下,在应用公式之前清理您的文本。
使用便捷功能从文本字符串提取第一个或第N个单词
如果您需要仅从文本字符串中提取第一个或特定的(第n个)单词,并且更喜欢不需要记忆或编辑复杂公式的解决方案,可以使用Kutools for Excel。提取单元格中第n个单词的功能允许您轻松从单元格中选择特定的单词位置,使其适合偶尔使用和重复任务。如果您想要一个快速、菜单驱动的解决方案,错误风险最小且无需手动输入公式,则推荐此方法。
安装Kutools for Excel后,请按以下步骤操作:
1. 选择一个您希望显示提取结果的单元格。然后转到Kutools > 公式助手 > 公式助手,如下图所示:
2. 在公式助手对话框中,执行以下步骤:
- 从公式类型下拉列表中选择文本。
- 从公式列表框中选择提取单元格中第n个单词。
- 在单元格文本框中指定您的源单元格,并在第N个文本框中键入所需的单词位置(例如,2表示第二个单词)。
3. 点击确定返回结果,然后向下拖动填充柄以将相同的逻辑应用于列表的其余部分。见插图:
当提取要求经常变化时,或者当您想要一个引导界面而不是每次构建自定义公式时,此方法非常适用。
使用VBA宏提取单词(第一个、最后一个或第n个单词)
对于更高级的用例——例如动态提取文本中的第一个、最后一个或任何特定的第n个单词,或者在处理大型或频繁更新的数据集时——VBA宏比单独使用公式提供了更多的灵活性和自动化。VBA允许您创建一个可重复使用的工具,可以快速处理许多单元格,让您可以根据需要自定义要提取的单词或单词组。如果您需要定期以相同的方式操作文本,或者想避免复杂的嵌套公式,这尤其有用。
典型场景:批量提取导入的文本、批量清理或准备标准化报告。
1. 单击开发工具 > Visual Basic打开VBA编辑器。在Microsoft Visual Basic for Applications窗口中,选择插入 > 模块并将以下代码粘贴到新模块中:
Sub ExtractWord()
Dim Rng As Range
Dim Cell As Range
Dim WordPos As Integer
Dim Words() As String
Dim ExtractedWord As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set Rng = Application.Selection
Set Rng = Application.InputBox("Select range to extract word from", xTitleId, Rng.Address, Type:=8)
WordPos = Application.InputBox("Enter which word number to extract (1=first,2=second, etc., or -1 for last)", xTitleId, 1, Type:=1)
Application.ScreenUpdating = False
For Each Cell In Rng
Words = Split(Application.Trim(Cell.Value), " ")
If WordPos = -1 Then
If UBound(Words) >= 0 Then
ExtractedWord = Words(UBound(Words))
Else
ExtractedWord = ""
End If
ElseIf WordPos >= 1 And WordPos <= UBound(Words) + 1 Then
ExtractedWord = Words(WordPos - 1)
Else
ExtractedWord = ""
End If
Cell.Offset(0, 1).Value = ExtractedWord
Next Cell
Application.ScreenUpdating = True
MsgBox "Extraction complete! Results placed in the column to the right.", vbInformation, xTitleId
End Sub
2运行宏,点击 运行按钮或按 F5。宏将提示您选择数据范围,询问要提取哪个单词位置(例如,1表示第一个单词,-1表示最后一个单词),然后将提取的单词放置在相邻右侧的列中。确保您的分隔符为空格,或根据需要调整
Split
函数以适应其他分隔符。
这种VBA方法使重复、批量提取更快,是基于公式的解决方案变得繁琐时的理想选择。注意:在运行宏之前始终保存您的工作簿,并确保在安全设置中启用了宏。
使用Power Query提取单词(分割并重新组合)
在管理大型表格或重复导入/导出任务时,Power Query为从文本字符串中提取和操作单词提供了强大的替代方案。Power Query位于数据选项卡下的获取和转换数据中,让您可以通过分隔符(空格、逗号等)直观地拆分文本,提取所需的单词,然后重新组合或将数据加载回Excel。此过程高度可重复,适用于批量数据清理,特别是在处理数百或数千行数据时。
主要优势:一致性用于重复使用,可视化界面,如果单词位置要求改变则易于调整。
操作步骤:
- 选择您的数据范围并选择数据 > 从表/范围以将数据加载到Power Query中。如果出现提示,请确认/创建您的表。
- 在Power Query编辑器中,选择包含您文本的列。
- 单击拆分列 > 按分隔符
- 选择空格或输入您自定义的分隔符,然后选择拆分于 – 每次出现分隔符。然后点击确定。
- 文本中的每个单词现在将出现在其自己的列中(例如,列1、列2等)。如果您希望提取前两个单词,请重新组合拆分的单词。选择相应的列,右键单击标题,然后从上下文菜单中选择合并列。
- 选择您首选的分隔符(例如,空格或逗号)并点击确定。
- 最后,点击关闭并加载以将您的结果加载回当前工作簿的新工作表中。
Power Query还使重复使用该过程变得毫不费力,因为如果底层表格发生变化,您可以刷新查询,确保一致的结果而无需手动重新应用公式或宏。请记住检查Power Query生成的列数,并考虑较短文本字符串中缺失的单词。
更多相关文章:
- 从单元格中提取多行
- 如果您有一个由换行符分隔的文本字符串列表(在输入文本时按下Alt + Enter键产生),现在,您想将这些行的文本提取到多个单元格中,如下方截图所示。如何在Excel中使用公式解决这个问题?
- 从Excel中的文本字符串提取子字符串
- 您可能经常需要从文本字符串中提取子字符串,在Excel中没有直接的函数来完成这个任务,但是借助LEFT、RIGHT、MID和SEARCH函数,您可以根据需要提取各种子字符串。
- 从文本字符串中提取括号内的文本
- 如果文本字符串中有部分文本被括号包围,现在您需要提取括号之间的所有文本字符串,如下方截图所示。如何在Excel中快速轻松地解决这个任务?
- 在Excel中提取以特定字符开头的单词
- 例如,您可能需要提取以特定字符“=”开头的单词,如下方截图所示,如何在Excel中快速轻松地解决这个任务?
- 提取特定字符最后一次出现后的文本
- 如果您有一系列复杂的文本字符串,其中包含多个分隔符(以下方截图为例,其中包含连字符、逗号、单元格数据中的空格),现在,您想找到连字符最后一次出现的位置,然后提取其后的子字符串。
最佳Office办公效率工具
🤖 | Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数…… |
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入…… | |
高级LOOKUP:多条件VLookup|多值VLookup|多表查找|模糊查找…… | |
高级下拉列表:快速创建下拉列表 |依赖下拉列表 | 多选下拉列表…… | |
列管理器: 添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列…… | |
特色功能:网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)…… | |
15大工具集:12项 文本工具(添加文本、删除特定字符等)|50+种 图表 类型(甘特图等)|40+实用 公式(基于生日计算年龄等)|19项 插入工具(插入二维码、从路径插入图片等)|12项 转换工具(小写金额转大写、汇率转换等)|7项 合并与分割工具(高级合并行、分割单元格等)| …… |
通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……
Office Tab为Office带来多标签界面,让您的工作更加轻松
- 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读。
- 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
- 可提升50%的工作效率,每天为您减少数百次鼠标点击!
所有Kutools加载项,一键安装
Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。





- 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
- 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
- 协同更高效——提升Office应用间的整体工作效率
- 30天全功能试用——无需注册,无需信用卡
- 超高性价比——比单独购买更实惠