跳至主要内容

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

如何在Excel中删除空白单元格并将数据左移?

Author: Sun Last Modified: 2025-08-22

在Excel中处理数据集时,经常会出现不需要的空白单元格零散分布在数据中的情况。这些空白区域可能会中断计算、排序或分析,尤其是在您希望数据条目整齐排列而没有空隙的情况下。如果手动删除每个空白单元格并将剩余内容向左移动,对于大量信息来说非常耗时且容易出错。本教程介绍了几种快速高效的方法,用于在数据区域中删除空白单元格并将剩余单元格左移,确保您的工作表保持整洁并更适合进一步处理或分析。以下解决方案满足不同需求,无论您更喜欢手动操作、使用公式还是编程方法。了解每种方法的优点和权衡可以帮助您选择最适合实际需求的方法。

original data  arrow right delete blank cells and move data left

定位功能 - 删除空白单元格并向左移动
Excel公式 - 删除空白并将数据左移
VBA代码 - 自动删除空白单元格并将数据左移


定位功能 - 删除空白单元格并向左移动

当您想删除空白单元格并将剩余数据向左移动时,Excel提供了一种内置方法,对于相对较小且一致的范围而言速度很快。这种方法特别适合不喜欢使用公式或编程的情况。然而,它最适合基本的一次性清理,而不是自动化解决方案或非常大的数据集。以下是逐步完成此任务的方法:

1. 选择包含要删除的空白单元格的数据范围。这可以是单行、多行或整个区域。然后按 Ctrl + G 以显示 定位 对话框。在此窗口中,点击 特殊 以进一步细化您的选择。见截图:
enable Go To dialog, and click Special

2. 在 定位条件 对话框中,勾选 空白单元格 选项,并点击 确定。此步骤会高亮显示所选范围内的所有空白单元格。见截图:
check Blanks option in the dialog box

3. 选中所有空白单元格后,右键单击任何一个被选中的空白单元格并选择 删除 从上下文菜单中。见截图:
 select Delete from the context menu

4. 在 删除 对话框中,选择 将单元格左移 选项并点击 确定。此操作会使所有数据左移,整齐地填补由空白单元格造成的空隙。见截图:
check Shift cells left option in the dialog box

完成这些步骤后,空白单元格将被删除,剩余数据将左移,如下图所示:

original data arrow right delete blank cells and move data left
这种手动选择和删除的方法非常适合快速编辑中等大小的数据集,并立即可见结果。但是,请注意以下事项:如果您的范围包括合并单元格,则此方法可能会产生错误;如果您有链接到单元格的公式,删除单元格可能会影响计算引用。在提交更改之前,始终检查您的数据结构。

Excel公式 - 删除空白并将数据左移

在某些情况下,您可能需要一个动态的、公式驱动的解决方案——例如消除行或列中的空白,并在源数据发生变化时自动更新结果——Excel公式如FILTER(适用于Excel 365和Excel 2021) 可以非常有效。这种方法特别适用于生成一个无空白的新范围,这意味着您可以保留原始数据的同时,在工作表其他位置获得一个无空白、左移版本的数据。

注意:具体可用的公式取决于您的Excel版本。FILTER函数仅在较新的版本中可用(Excel 365、Excel 2021或更高版本)。

1. 假设您的数据在A1:E10(横向)。为了创建一个没有空白的新行,选择一个您想要输出的空单元格,例如F1,并输入以下公式:

=FILTER(A1:E1, A1:E1 <> "")

该公式仅收集A1:E1中的非空白单元格,并从F1开始将其左对齐列出。

2. 按Enter键后,非空白数据将在新范围内自动填充左移。然后拖动或复制公式向下。

适用场景:当您希望保持源数据不变并在其他地方自动生成一个清理过的范围时,推荐使用此方法。然而,一个限制是它不会覆盖原始数据——而是提供一个“虚拟”左移版本的数据。

实用提示:如果您希望新范围中只保留值,在应用公式后,复制结果并使用选择性粘贴>值来覆盖原始范围(如有必要)。确保在将公式复制到其他区域时调整单元格引用。


VBA代码 - 自动删除空白单元格并将数据左移

如果您经常需要删除空白单元格并将剩余条目左移——特别是跨大范围或不规则大小的数据集时——VBA宏可以自动执行这一重复任务。这种方法就地处理单元格,物理删除空白,使数据在每一行内“压缩”到左边。宏节省时间并有助于避免在处理复杂工作表时出现手动错误。

1. 点击开发工具>Visual Basic打开VBA编辑器。在出现的Microsoft Visual Basic for Applications窗口中,点击插入>模块,并将以下代码粘贴到模块区域:

Sub DeleteBlanksShiftLeft()
    Dim WorkRng As Range
    Dim RowRng As Range
    Dim xTitleId As String
    Dim i As Long, c As Long
    Dim TempList As Collection
    Dim Cell As Range
    xTitleId = "KutoolsforExcel"
    On Error Resume Next
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Select range to process (rows will be processed individually):", xTitleId, WorkRng.Address, Type:=8)
    On Error GoTo 0
    If WorkRng Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    ' Process each row individually
    For Each RowRng In WorkRng.Rows
        Set TempList = New Collection
        ' Collect non-empty values in the row
        For Each Cell In RowRng.Cells
            If Trim(Cell.Value) <> "" Then
                TempList.Add Cell.Value
            End If
        Next Cell
        ' Clear entire row first
        RowRng.ClearContents
        ' Refill row with collected values from left to right
        For i = 1 To TempList.Count
            RowRng.Cells(1, i).Value = TempList(i)
        Next i
    Next RowRng
    Application.ScreenUpdating = True
    MsgBox "All blank cells in rows have been removed and values shifted left.", vbInformation
End Sub 

2。插入代码后,点击 Run button 按钮,或按 F5 运行宏。系统提示时,选择目标范围。宏将处理每一行,将值左移以填充空白并沿途删除空单元格。

适用场景:宏最适合熟悉启用和使用VBA的用户,尤其是当需要在大数据范围内例行删除空白或在可重用模板中进行时。此方法实际上修改了原始数据,因此建议事先备份工作表。如果您的数据结构不规则或包含公式,请谨慎操作,因为宏作用于值并可能破坏底层依赖关系。

故障排除提示:如果出现意外结果,可能是由于合并单元格、公式输出或受保护的单元格引起的。在运行宏之前根据需要取消合并、解锁或清除公式。

总结建议:尽可能选择公式进行动态、非破坏性的数据转换,选择宏进行批量就地编辑。在运行自动化之前始终保存一份数据副本,并检查结果以确保工作表布局保持预期状态。


在Excel区域中以特定间隔批量插入空白行或列

如果要在每隔一行插入空白行,可能需要逐一手动插入,但Kutools for Excel 的“插入空白行和列 ”功能可以在几秒钟内完成此操作。点击获取 30 天免费试用!
doc insert blank row column
Kutools for Excel:包含 300 多个实用的Excel加载项,可免费试用 30 天且无任何限制。

相关文章

最佳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天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠