KutoolsforOffice — 一套方案,五大工具。事半功倍。

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

作者Sun修改日期

在 Excel 中处理数据集时,数据中常常散布着多余的空白单元格。这些空白会影响计算、排序和分析,尤其当您希望数据条目整齐对齐、不留空隙时更为明显。若数据量较大,手动逐个删除空白单元格并将其余内容向左移动,不仅耗时,还容易出错。本教程为您介绍几种快速高效的方法,助您轻松删除数据区域中的空白单元格,并将剩余单元格向左移动,让工作表始终保持整洁,更便于后续处理与分析。无论您偏好手动操作、公式驱动,还是可编程方式,以下解决方案都能满足不同需求。了解每种方法的优势与权衡,将帮助您根据实际情况选择最合适的方式。

original data arrow rightdelete 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 dataarrow rightdelete 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 区域中按指定间隔批量插入空白行或列

如果您想每隔一行插入空白行,可能需要逐一手动插入,但此任务可在几秒内完成!立即点击,免费试用 30 天!
doc insert blank row column
Kutools for Excel:包含超过 300 个实用 Excel 加载项,30 天内可无限制免费试用。

相关文章

最佳办公效率工具

🤖KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLookup  |  多值 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、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱