删除Excel中的空白行(5 种简单方法)

删除Excel中的空白行

在 Excel 中处理大型数据集时,您可能需要清理数据才能进一步使用。

一种常见的数据清理步骤是从 Excel 数据中删除空白行。

在本教程中,我将向您展示如何使用不同的方法删除Excel中的空白行。

虽然 Excel 中没有内置功能可以执行此操作,但可以使用简单的公式技术或使用 Power Query 或 Go-To Special 等功能快速完成。

对于 VBA 爱好者,我还将为您提供一个简单的 VBA 代码,您可以使用它快速删除 Excel 数据集中的所有空白行。

推荐:如何修复Windows 11上VMware BSOD错误

使用排序功能删除空白行

快速删除空白行的最简单方法之一是对数据集进行排序,以便所有空白行堆叠在一起。

一旦所有空行集中在一起,您就可以手动选择并一次性删除它们。

但是,您不能简单地将排序应用于现有数据集(因为它可以通过在排序时重新排列行来更改数据集)。我们需要添加一个辅助列,用于对数据进行排序,然后删除空白行。

让我用一个简单的例子向您展示它是如何工作的。

下面我有一个数据集,其中有一些我想从该数据集中删除的空白行:

删除Excel中的空白行

以下是使用辅助列和排序功能删除空白列的步骤:

  1. 我们首先需要在数据集的左侧插入一个辅助列。为此,请选择第一列的列标题,右键单击,然后单击插入
插入辅助列
  1. 现在在单元格 A1 中输入以下公式,然后将其复制到该列中的所有单元格

=IF(COUNTA(B1:XFD1)=0,”空白”,”非空白”)

当行为空时,上面的公式将为我们提供结果“Blank”,当行不为空时,结果将为“Not Blank”。

辅助列的公式
  1. 选择整个数据集(包括辅助列)
  2. 单击数据选项卡
单击数据选项卡
  1. 单击“排序”图标(在“排序和过滤”组中)
单击功能区中的排序图标
  1. 在打开的“排序”对话框中,取消选中“我的数据有标题”选项
取消选中我的数据有标题选项
  1. 打开“排序依据”下拉列表并选择“A 列”(这是我们的辅助列)
选择辅助列作为排序依据列
  1. 保持“排序”和“顺序”值不变
  2. 单击“确定”

上述步骤将对数据集进行排序,以便所有空白行在顶部堆叠在一起,其余数据集位于空白行下方。

数据集已排序,所有空白行都放在顶部
  1. 选择所有空白行,右键删除
选择并删除所有空白行
  1. 完成后,请随意删除辅助列

注意:当我们使用上述步骤对数据集进行排序时,它不会扰乱行的原始顺序。它只会将所有空白行放在顶部,同时保持原始数据集完整。

为了使此方法发挥作用,空白行中的每个单元格实际上都必须是空白的。如果它有空格字符或空字符串,则不会被视为空白。另请阅读:如何删除 Excel 中的行(单行或多行)?

使用查找和替换删除空白行

从数据集中快速删除空白行的另一种明智方法是使用查找和替换功能。

让我通过一个例子向您展示它是如何工作的。

下面有一个数据集,其中有一些我想删除的空白乌鸦:

包含需要删除的空白行的数据集

以下是使用具有查找和替换功能的辅助列执行此操作的步骤:

  1. 第一步是向我们的数据集添加一个辅助列。为此,请选择第一列的列标题,单击鼠标右键,然后单击“插入”。这将在数​​据集的左侧插入一个空白列
插入辅助列
  1. 现在在单元格 A1 中输入以下公式,然后将其复制到该列中的所有单元格

=IF(COUNTA(B1:XFD1)=0,”空白”,”非空白”)

当行为空时,上面的公式将为我们提供结果“Blank”,当行不为空时,结果将为“Not Blank”。

辅助列的公式
  1. 选择辅助列(而不是整个数据集)。
  2. 按住 Control 键并按 F 键。这将打开“查找和替换”对话框。您还可以通过单击“主页”选项卡,单击“编辑”组中的“查找和替换”图标,然后单击“查找”选项来执行此操作。
  3. 在“查找和替换”对话框的“查找内容”字段中输入“空白”
在“查找内容”字段中输入空白,然后出现查找和替换对话框
  1. 检查选项 – 匹配整个单元格内容
检查匹配整个单元格内容框
  1. 在“查找范围”下拉列表中,选择“值”。
在下拉列表中选择值
  1. 单击查找全部按钮。
单击查找全部按钮
  1. 这将找到所有值为空白的单元格,并在查找和替换对话框下方显示列表。
已找到所有空白单元格
  1. 按住 Control 键并按 A 键一次。这将选择“查找和替换”选项找到的所有单元格。
使用 control a 选择所有空白单元格
  1. 右键单击任何选定的单元格,然后单击“删除”选项。
右键单击选定的单元格,然后单击删除
  1. 在打开的删除对话框中,选择整行选项
在删除对话框中选择删除整行选项
  1. 单击“确定”。这应该从数据集中删除所有空白行
  2. 完成后,请随意删除辅助列。

为了使此方法发挥作用,空白行中的每个单元格实际上都必须是空白的。如果它有空格字符或空字符串,则不会被视为空白。另请阅读:删除 Excel 中的空白列(3 个简单方法 + VBA)

使用“转到特殊”删除空白行(谨慎使用)

我还向您展示如何使用“转到”特殊技术删除 Excel 中的空白行。

但是,让我警告您,这可能最终会删除一些可能不完全空白的行(并且可能只有几个空白单元格)。

我建议您不要对大型数据集使用此方法。

下面我有一个数据集,其中有一些要删除的空白行:

包含需要删除的空白行的数据集

以下是使用“转到特殊”技术执行此操作的步骤:

  1. 选择整个数据集
  2. 按键盘上的 F5 打开“转到”对话框。
转到对话框
  1. 单击特殊按钮。这将打开“转到特殊对话框”。或者,您可以单击“主页”选项卡,然后单击“编辑”组中的“查找和替换”图标,然后单击“转到特殊项”选项。
单击转到对话框中的特殊按钮
  1. 在打开的“转到特殊”对话框中,单击“空白”选项
在转到特殊对话框中选择空白
  1. 单击“确定”。

上述步骤将选择数据集中所有空白的单元格。由于空白行中的所有单元格都是空的,因此最终会选择所有空白行。

所有空白单元格都被选中
  1. 右键单击任何选定的空白单元格,然后单击“删除”选项
右键单击任意空白单元格,然后单击删除
  1. 在打开的删除对话框中,选择整行选项
在删除对话框中选择删除整行选项
  1. 单击“确定”

上述步骤将删除包含空白单元格的所有行。

注意:仅当您确定数据集中除空白行中的单元格之外没有空白单元格时,才应使用此方法。如果非空白行中有空白单元格,甚至这些行也会被删除,因为此方法的工作原理是选择空白单元格,然后删除该空白单元格的整行。

使用 VBA 宏删除空白行

如果您需要经常删除空白行,您还可以考虑使用简单的 VBA 宏代码来执行此操作。

即使您是 Excel VBA 宏的绝对初学者,也不必担心。我将向您展示如何正确设置它,以便您可以一次又一次地使用它。

但首先让我给你 VBA 代码。

下面是 VBA 代码,它将遍历整个数据集并删除所有空白行:

'Code Developed by Sumit Bansal from 

Sub DeleteBlankRows()

Dim EntireRow As Range
On Error Resume Next
MsgBox Selection.Row.Count

Application.ScreenUpdating = False

        For i = Selection.Rows.Count To 1 Step -1
            Set EntireRow = Selection.Cells(i, 1).EntireRow
            If Application.WorksheetFunction.CountA(EntireRow) = 0 Then
                EntireRow.Delete
            End If
        Next

Application.ScreenUpdating = True

End Sub

上面的 VBA 代码使用简单的 For Next 循环来遍历数据集中的每一行,并使用 COUNTA 函数检查该行是否为空。

一旦发现空行,就会将其删除并移至下一行。

现在让我向您展示如何设置此 VBA 代码以在 Excel 中使用它的步骤:

  1. 选择包含要删除的空白行的数据集
  2. 单击功能区中的“开发人员”选项卡。如果您没有看到“开发人员”选项卡,请单击此处了解如何获取它。
  3. 单击“Visual Basic”选项。这将打开 VB 编辑器,我们将在其中添加我上面给出的 VBA 代码。
单击功能区中的 Visual Basic 图标

Excel提示:您还可以使用键盘快捷键 ALT + F11 打开 VB 编辑器

  1. 在 VB 编辑器中,单击菜单中的“插入”选项。
单击菜单中的插入选项
  1. 单击模块选项。这将插入一个新模块并打开模块代码窗口。
插入一个新模块
  1. 将我上面给出的 VBA 代码复制并粘贴到模块代码窗口中。
将 VBA 宏代码复制并粘贴到模块代码窗口中
  1. 将光标放在代码中的任意位置,然后单击工具栏中的“运行子/用户窗体”图标(或按 F5 键)
通过单击工具栏中的运行子例程图标来运行宏
  1. 关闭 VB 编辑器

上述步骤将从数据集中删除所有空白行。

以下是在 Excel 中使用此宏时需要了解的一些事项:

  • 将 VBA 代码添加到 Excel 文件后,您需要将 Excel 文件另存为启用宏的文件(带有 .XLSM 扩展名)
  • 如果您按照上述步骤插入模块,然后将此代码添加到该模块中,则它只会在添加它的工作簿中起作用。
  • 如果您希望此代码适用于您的所有 Excel 工作簿,则应将其保存在您的个人宏工作簿中。将代码保存在个人宏工作簿中后,您可以在系统上的任何 Excel 工作簿中使用它。

注意:请记住,通过 VBA 代码完成的任何更改都是不可逆的,并且在运行宏代码后您将无法恢复原始数据。因此,最好对数据进行备份,以备将来需要时使用。

使用 Power Query 删除空白行(获取和转换)

从 Excel 数据集中删除空白行的另一种非常快速的方法是使用 Power Query。

使用 Power Query,您可以在 Power Query 编辑器中打开数据集,然后只需单击几下即可删除所有空白行。当您在 Power Query 编辑器中获得所需结果时,您可以快速将此数据作为新表返回到 Excel 中。

让我向您展示它是如何工作的。

下面我有相同的数据集,其中有一些我想要删除的空白行。

包含需要删除的空白行的数据集

以下是使用 Power Query 删除空白行的步骤:

  1. 第一步是将数据转换为 Excel 表格(如果尚未采用 Excel 表格格式)。为此,请选择数据集,然后单击功能区中的“插入”选项卡,然后单击“表”图标。或者您可以使用键盘快捷键Control + T
单击功能区中的插入表格图标
  1. 在“创建表”对话框中,确保范围正确并且选中“我的表有标题”选项。
检查创建表对话框中的范围
  1. 单击“确定”。这样做会将我们的数据集转换为可在 Power Query 中使用的 Excel 表。
  2. 选择 Excel 表格中的任意单元格
  3. 单击数据选项卡
  4. 在“获取和转换数据”组中,单击“来自表/范围”选项。这将打开 Power Query 编辑器。
单击数据选项卡中的表格或范围选项
  1. 在 Power Query 编辑器中显示的表中,单击第一列筛选器图标。
单击第一列中的列过滤器图标
  1. 单击“删除空”。这将从数据集中删除所有空白单元格。
选择删除空选项
  1. 单击功能区中的“关闭并加载”选项。
单击功能区中的关闭并加载选项

上述步骤将在工作簿中插入一个新工作表,其中将插入生成的表格。

新工作表已插入已删除空白行的位置

使用 Power Query 的一个巨大好处是,当您设置一次流程后,您可以一次又一次地重复使用此查询。

例如,如果您更改原始数据集,或向数据集添加更多行,则无需重复相同的步骤。您只需转到步骤 9 后得到的结果表,右键单击任意单元格,然后单击“刷新”。

当您刷新查询时,它会在后端重复相同的步骤,返回到原始表,检查数据,删除空白行,并在几秒钟内更新结果表。

在本教程中,我向您展示了从 Excel 数据集中删除空白行的五种不同方法。

最简单的方法是使用辅助列,然后使用排序功能将所有空白行堆叠在一起并删除它们,或者使用查找和替换来查找所有空白行并手动删除它们。

删除空白行的另一种简单且流行的方法是使用“转到特殊”技术。但是,您应该谨慎使用它,因为它最终也可能删除那些不完全为空的行。

如果您习惯使用 VBA,您还可以使用我在本文中给出的简单宏代码来快速删除所有空白行。

最后,我还介绍了如何使用 Power Query 执行此操作。

推荐:如何修复Windows 10/11中的网络摄像头错误代码0xA00F4289


发表评论