跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

如何删除Excel中不包含特定文本的行?

Author Sun Last modified

许多Excel用户熟悉在包含特定文本时删除整行。然而,您可能会遇到需要删除不包含某些文本的行的情况。例如,您可能有一个大型数据集,只想保留与特定关键字相关的行,删除所有其他行。这对于过滤报告、清理调查响应、数据质量控制等非常有用。虽然Excel没有提供直接的一键解决方案,但您可以使用几种实用的方法,每种方法根据您的技能水平和需求具有不同的优势。本教程将引导您通过几种有效技术删除Excel中包含指定文本字符串的行,包括筛选器、VBA、Kutools和公式方法。

使用筛选器删除不包含特定文本的行

使用VBA删除不包含特定文本的行

使用Kutools for Excel删除不包含特定文本的行

使用Excel公式(辅助列)删除不包含特定文本的行


arrow blue right bubble 使用筛选器删除不包含特定文本的行

Excel的筛选器功能是一种简单易用的方法,用于识别和删除不包含特定文本的行。此方法特别适用于希望快速、直观处理的人,并且适用于中小型数据表。然而,对于非常大的数据集或目标文本变化很大的场景,效率可能会降低。

1. 选择包含要筛选文本的列。然后点击 数据 > 筛选器 以对表格应用筛选器。参见截图:

doc-delete-rows-not-contain-1
doc-arrow
doc-delete-rows-not-contain-2

2. 单击相关列标题中的筛选按钮(向下箭头)以打开下拉筛选菜单。取消选中所有选项,除了要保留的文本;这意味着只有包含特定文本的行将保持可见。如果您的文本作为部分值或子字符串出现,请考虑使用“文本筛选器” > “包含...”选项以获得更大的灵活性。参见截图:

doc-delete-rows-not-contain-3

3. 现在,只显示标题和包含指定文本的行;不包含该文本的行在当前视图中被过滤掉。参见截图:

doc-delete-rows-not-contain-4

4. 选择除标题外的所有可见行(您可以单击第一行,按住Shift,然后单击最后一行),然后右键单击并从上下文菜单中选择 删除行。此操作将移除可见(筛选入)行。删除后,只有包含指定文本的被过滤掉的行可能仍然隐藏。

doc-delete-rows-not-contain-5

5. 要完成过程,请再次点击 数据 > 筛选器 移除筛选器,您会看到只有不包含指定文本的行保留在工作表中。参见截图:

doc-delete-rows-not-contain-6
doc-arrow
doc-delete-rows-not-contain-7

注意:在删除之前,仔细检查是否仅选择了预期的行。删除的行除非撤销操作(Ctrl+Z),否则无法恢复。如果您的表格包含合并单元格或嵌套小计,此方法无法正常工作。


arrow blue right bubble 使用VBA删除不包含特定文本的行

如果您需要处理大型数据集或频繁重复操作,使用VBA(Visual Basic for Applications)可以大大加快删除过程。VBA解决方案允许您根据单元格是否包含或不包含特定文本字符串自动删除行,非常适合具备基本编程技能的用户或需要自定义逻辑的情况(例如区分大小写的匹配)。

1. 按 Alt + F11 打开 Microsoft Visual Basic for Applications 编辑器窗口。

2. 在编辑器窗口中,点击 插入 > 模块 以打开新的模块窗口。将以下VBA代码复制并粘贴到模块窗口中。

VBA:如果单元格不包含特定文本,则删除整行。

Sub DeleteRowNoInclude()
'Updateby Extendoffice
Dim xRow As Range
Dim rng As Range
Dim WorkRng As Range
Dim xStr As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
xStr = Application.InputBox("Text", xTitleId, "", Type:=2)
Application.ScreenUpdating = False
For i = WorkRng.Rows.Count To 1 Step -1
    Set xRow = WorkRng.Rows(i)
    Set rng = xRow.Find(xStr, LookIn:=xlValues)
    If rng Is Nothing Then
       xRow.Delete
    End If
Next
Application.ScreenUpdating = True
End Sub

3. 单击 运行 按钮。将提示一个对话框让您选择要处理的范围(例如要搜索指定文本的列)。参见截图:

doc-delete-rows-not-contain-8

4. 单击 确定,并在下一个弹出对话框中输入要用作删除条件的文本。为了获得最佳效果,请完全按照数据中出现的文本输入。代码执行非区分大小写(默认)搜索;如果需要区分大小写,请修改代码。参见截图:

doc-delete-rows-not-contain-9

5. 单击 确定,任何单元格不包含指定文本(例如,“苹果”)的行将立即被删除。确保在运行VBA宏之前保存您的工作,因为此操作无法轻松撤消。如果发生意外结果,请使用撤消(Ctrl+Z)或不保存关闭文件,然后使用正确的参数重试。对于高级用户,您可以根据需要调整此代码以进行部分匹配或多条件匹配。


arrow blue right bubble 使用Kutools for Excel删除不包含特定文本的行

对于不喜欢手动筛选或使用VBA的用户,Kutools for Excel 提供了一种高效、互动的方式来快速选择和删除不包含特定文本的行,只需几次点击。这在频繁处理数据或处理多个搜索条件时尤其有用。虽然 Kutools 需要安装,但它显著简化了复杂的Excel操作并支持批量操作。其操作直观且适合初学者。

Kutools for Excel 包含300多种便捷的Excel工具。免费试用30天无限制。立即获取

1. 选择要在其中删除不包含指定文本的行的列,然后点击 Kutools > 选择工具 > 选择指定单元格。参见截图:

doc-delete-rows-not-contain-10

2. 在“ 选择指定单元格”对话框中,勾选 整行,从下拉菜单中选择 不包含,并在文本框中输入目标文本。或者,您可以点击 特定类型 部分中的范围选择图标以选择包含所需文本的引用单元格。仔细检查输入是否有拼写错误或多余空格,因为这些会影响选择准确性。

doc-delete-rows-not-contain-11

3. 单击 确定。不包含定义文本的行将自动被选中。右键单击任何高亮显示的行号,并从上下文菜单中选择 删除。这将一次性删除所有选定的行。参见截图:

doc-delete-rows-not-contain-12

4. 现在,所选范围内未包含您指定文本的所有行都已从工作表中删除。有关更多高级提示和最新功能,请参阅:选择指定单元格 文档

提示:在删除之前,检查您的选择以避免意外丢失所需数据,并考虑创建备份副本以确保安全。Kutools 的选择功能可以与其他功能结合使用,以实现更加定制化的数据管理。


arrow blue right bubble 使用Excel公式(辅助列)删除不包含特定文本的行

另一种非常实用的方法是在辅助列中使用Excel公式。这种方法允许您快速识别每一行是否包含(或不包含)某些文本,然后根据需要进行筛选或删除。此方法适用于熟悉公式并希望通过透明、可审核的过程在删除前检查结果的用户。当您的搜索文本可能出现在单元格内的任何位置(不仅仅是完全匹配)时,尤其有用。

优点:高度灵活,不需要插件或VBA,安全,因为它不会立即删除数据——用户首先审查结果。缺点:多步骤流程,需要一些熟悉Excel公式和筛选器的知识。

说明:

1. 在数据旁边添加一个新的辅助列。为说明起见,假设您的文本在A列并且数据从第2行开始(不包括标题)。

2. 在辅助列的第一行(例如B2)中,输入以下公式(将“text”替换为您要搜索的字符串):

=ISNUMBER(SEARCH("text",A2))

如果A2单元格包含给定文本(作为子字符串,不区分大小写),此公式返回TRUE,否则返回FALSE

3. 按Enter键,然后双击单元格右下角以将公式填充到数据集中的所有其他行。

4. 对辅助列使用筛选器功能。单击下拉箭头,选择FALSE以仅显示包含目标文本的行。选择所有这些筛选后的行(如适用,不包括标题),右键单击并选择删除行

5. 删除后,清除筛选器以恢复视图。验证您的结果,并根据需要删除辅助列。

参数和提示说明:

  • 如果需要匹配确切的单元格值(而不是子字符串),请将公式修改为 =A2="text"
  • 如果您的数据包含空单元格,ISNUMBER(SEARCH(...)) 返回FALSE,并且这些行将被视为不包含文本。
  • 对于区分大小写的匹配,请在公式中将SEARCH替换为FIND。

 

故障排除:公式方法在实际删除行之前是非破坏性的。始终仔细检查您的TRUE/FALSE结果,并在批量删除之前考虑保存备份副本。


相关文章:

最佳Office办公效率工具

🤖 Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件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中进行多标签编辑与阅读
  • 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
  • 可提升50%的工作效率,每天为您减少数百次鼠标点击!

所有Kutools加载项,一键安装

Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。

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