删除Excel中的空白行
在 Excel 中处理大型数据集时,您可能需要清理数据才能进一步使用。
一种常见的数据清理步骤是从 Excel 数据中删除空白行。
在本教程中,我将向您展示如何使用不同的方法删除Excel中的空白行。
虽然 Excel 中没有内置功能可以执行此操作,但可以使用简单的公式技术或使用 Power Query 或 Go-To Special 等功能快速完成。
对于 VBA 爱好者,我还将为您提供一个简单的 VBA 代码,您可以使用它快速删除 Excel 数据集中的所有空白行。
推荐:如何修复Windows 11上VMware BSOD错误
使用排序功能删除空白行
快速删除空白行的最简单方法之一是对数据集进行排序,以便所有空白行堆叠在一起。
一旦所有空行集中在一起,您就可以手动选择并一次性删除它们。
但是,您不能简单地将排序应用于现有数据集(因为它可以通过在排序时重新排列行来更改数据集)。我们需要添加一个辅助列,用于对数据进行排序,然后删除空白行。
让我用一个简单的例子向您展示它是如何工作的。
下面我有一个数据集,其中有一些我想从该数据集中删除的空白行:
以下是使用辅助列和排序功能删除空白列的步骤:
- 我们首先需要在数据集的左侧插入一个辅助列。为此,请选择第一列的列标题,右键单击,然后单击插入
- 现在在单元格 A1 中输入以下公式,然后将其复制到该列中的所有单元格
=IF(COUNTA(B1:XFD1)=0,”空白”,”非空白”)
当行为空时,上面的公式将为我们提供结果“Blank”,当行不为空时,结果将为“Not Blank”。
- 选择整个数据集(包括辅助列)
- 单击数据选项卡
- 单击“排序”图标(在“排序和过滤”组中)
- 在打开的“排序”对话框中,取消选中“我的数据有标题”选项
- 打开“排序依据”下拉列表并选择“A 列”(这是我们的辅助列)
- 保持“排序”和“顺序”值不变
- 单击“确定”
上述步骤将对数据集进行排序,以便所有空白行在顶部堆叠在一起,其余数据集位于空白行下方。
- 选择所有空白行,右键删除
- 完成后,请随意删除辅助列
注意:当我们使用上述步骤对数据集进行排序时,它不会扰乱行的原始顺序。它只会将所有空白行放在顶部,同时保持原始数据集完整。
为了使此方法发挥作用,空白行中的每个单元格实际上都必须是空白的。如果它有空格字符或空字符串,则不会被视为空白。另请阅读:如何删除 Excel 中的行(单行或多行)?
使用查找和替换删除空白行
从数据集中快速删除空白行的另一种明智方法是使用查找和替换功能。
让我通过一个例子向您展示它是如何工作的。
下面有一个数据集,其中有一些我想删除的空白乌鸦:
以下是使用具有查找和替换功能的辅助列执行此操作的步骤:
- 第一步是向我们的数据集添加一个辅助列。为此,请选择第一列的列标题,单击鼠标右键,然后单击“插入”。这将在数据集的左侧插入一个空白列
- 现在在单元格 A1 中输入以下公式,然后将其复制到该列中的所有单元格
=IF(COUNTA(B1:XFD1)=0,”空白”,”非空白”)
当行为空时,上面的公式将为我们提供结果“Blank”,当行不为空时,结果将为“Not Blank”。
- 选择辅助列(而不是整个数据集)。
- 按住 Control 键并按 F 键。这将打开“查找和替换”对话框。您还可以通过单击“主页”选项卡,单击“编辑”组中的“查找和替换”图标,然后单击“查找”选项来执行此操作。
- 在“查找和替换”对话框的“查找内容”字段中输入“空白”
- 检查选项 – 匹配整个单元格内容
- 在“查找范围”下拉列表中,选择“值”。
- 单击查找全部按钮。
- 这将找到所有值为空白的单元格,并在查找和替换对话框下方显示列表。
- 按住 Control 键并按 A 键一次。这将选择“查找和替换”选项找到的所有单元格。
- 右键单击任何选定的单元格,然后单击“删除”选项。
- 在打开的删除对话框中,选择整行选项
- 单击“确定”。这应该从数据集中删除所有空白行
- 完成后,请随意删除辅助列。
为了使此方法发挥作用,空白行中的每个单元格实际上都必须是空白的。如果它有空格字符或空字符串,则不会被视为空白。另请阅读:删除 Excel 中的空白列(3 个简单方法 + VBA)
使用“转到特殊”删除空白行(谨慎使用)
我还向您展示如何使用“转到”特殊技术删除 Excel 中的空白行。
但是,让我警告您,这可能最终会删除一些可能不完全空白的行(并且可能只有几个空白单元格)。
我建议您不要对大型数据集使用此方法。
下面我有一个数据集,其中有一些要删除的空白行:
以下是使用“转到特殊”技术执行此操作的步骤:
- 选择整个数据集
- 按键盘上的 F5 打开“转到”对话框。
- 单击特殊按钮。这将打开“转到特殊对话框”。或者,您可以单击“主页”选项卡,然后单击“编辑”组中的“查找和替换”图标,然后单击“转到特殊项”选项。
- 在打开的“转到特殊”对话框中,单击“空白”选项
- 单击“确定”。
上述步骤将选择数据集中所有空白的单元格。由于空白行中的所有单元格都是空的,因此最终会选择所有空白行。
- 右键单击任何选定的空白单元格,然后单击“删除”选项
- 在打开的删除对话框中,选择整行选项
- 单击“确定”
上述步骤将删除包含空白单元格的所有行。
注意:仅当您确定数据集中除空白行中的单元格之外没有空白单元格时,才应使用此方法。如果非空白行中有空白单元格,甚至这些行也会被删除,因为此方法的工作原理是选择空白单元格,然后删除该空白单元格的整行。
使用 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 中使用它的步骤:
- 选择包含要删除的空白行的数据集
- 单击功能区中的“开发人员”选项卡。如果您没有看到“开发人员”选项卡,请单击此处了解如何获取它。
- 单击“Visual Basic”选项。这将打开 VB 编辑器,我们将在其中添加我上面给出的 VBA 代码。
Excel提示:您还可以使用键盘快捷键 ALT + F11 打开 VB 编辑器
- 在 VB 编辑器中,单击菜单中的“插入”选项。
- 单击模块选项。这将插入一个新模块并打开模块代码窗口。
- 将我上面给出的 VBA 代码复制并粘贴到模块代码窗口中。
- 将光标放在代码中的任意位置,然后单击工具栏中的“运行子/用户窗体”图标(或按 F5 键)
- 关闭 VB 编辑器
上述步骤将从数据集中删除所有空白行。
以下是在 Excel 中使用此宏时需要了解的一些事项:
- 将 VBA 代码添加到 Excel 文件后,您需要将 Excel 文件另存为启用宏的文件(带有 .XLSM 扩展名)
- 如果您按照上述步骤插入模块,然后将此代码添加到该模块中,则它只会在添加它的工作簿中起作用。
- 如果您希望此代码适用于您的所有 Excel 工作簿,则应将其保存在您的个人宏工作簿中。将代码保存在个人宏工作簿中后,您可以在系统上的任何 Excel 工作簿中使用它。
注意:请记住,通过 VBA 代码完成的任何更改都是不可逆的,并且在运行宏代码后您将无法恢复原始数据。因此,最好对数据进行备份,以备将来需要时使用。
使用 Power Query 删除空白行(获取和转换)
从 Excel 数据集中删除空白行的另一种非常快速的方法是使用 Power Query。
使用 Power Query,您可以在 Power Query 编辑器中打开数据集,然后只需单击几下即可删除所有空白行。当您在 Power Query 编辑器中获得所需结果时,您可以快速将此数据作为新表返回到 Excel 中。
让我向您展示它是如何工作的。
下面我有相同的数据集,其中有一些我想要删除的空白行。
以下是使用 Power Query 删除空白行的步骤:
- 第一步是将数据转换为 Excel 表格(如果尚未采用 Excel 表格格式)。为此,请选择数据集,然后单击功能区中的“插入”选项卡,然后单击“表”图标。或者您可以使用键盘快捷键Control + T
- 在“创建表”对话框中,确保范围正确并且选中“我的表有标题”选项。
- 单击“确定”。这样做会将我们的数据集转换为可在 Power Query 中使用的 Excel 表。
- 选择 Excel 表格中的任意单元格
- 单击数据选项卡
- 在“获取和转换数据”组中,单击“来自表/范围”选项。这将打开 Power Query 编辑器。
- 在 Power Query 编辑器中显示的表中,单击第一列筛选器图标。
- 单击“删除空”。这将从数据集中删除所有空白单元格。
- 单击功能区中的“关闭并加载”选项。
上述步骤将在工作簿中插入一个新工作表,其中将插入生成的表格。
使用 Power Query 的一个巨大好处是,当您设置一次流程后,您可以一次又一次地重复使用此查询。
例如,如果您更改原始数据集,或向数据集添加更多行,则无需重复相同的步骤。您只需转到步骤 9 后得到的结果表,右键单击任意单元格,然后单击“刷新”。
当您刷新查询时,它会在后端重复相同的步骤,返回到原始表,检查数据,删除空白行,并在几秒钟内更新结果表。
在本教程中,我向您展示了从 Excel 数据集中删除空白行的五种不同方法。
最简单的方法是使用辅助列,然后使用排序功能将所有空白行堆叠在一起并删除它们,或者使用查找和替换来查找所有空白行并手动删除它们。
删除空白行的另一种简单且流行的方法是使用“转到特殊”技术。但是,您应该谨慎使用它,因为它最终也可能删除那些不完全为空的行。
如果您习惯使用 VBA,您还可以使用我在本文中给出的简单宏代码来快速删除所有空白行。
最后,我还介绍了如何使用 Power Query 执行此操作。