如何在 Excel 中删除空白单元格并将数据上移:8 种方法

世界杯梅西点球

方法 1 – 手动删除空白单元格步骤: 将光标悬停至出现向下箭头>> 左键单击选择列,此处为C 列。 单击删除下拉菜单>>按删除工作表列。 按住CT……

方法 1 – 手动删除空白单元格步骤:

将光标悬停至出现向下箭头>> 左键单击选择列,此处为C 列。

单击删除下拉菜单>>按删除工作表列。

按住CTRL 键>>左键单击行号可选择多行,在本例中为行 7、 9、12 和 14 >> 选择删除工作表行选项。

删除 Excel 中的空白单元格并将数据向上移动。

方法 2 – 使用转到特殊命令步骤:

B4:E16 单元格 >> 单击查找并选择下拉菜单 >> 选择转到特殊项。

转到特殊窗口,点击空白按钮>>点击确定。

右键单击打开上下文菜单>>选择删除。

选中向上移动单元格选项以删除所有空白行。

选择空白列>>选择向左移动单元格选项>>按确定。

删除空白单元格,如下图所示。

方法 3 – 使用过滤器选项步骤:

突出显示B4:E16单元格>>移动到数据选项卡>>单击过滤选项。

单击任何向下箭头按钮>>选中空白选项>>输入确定按钮。

删除表格行以删除所有空白行。

单击向下箭头按钮>>选中全选选项>>单击确定。

选择空白列>>按删除工作表列。

结果应如下图所示。

方法 4 – 应用排序功能步骤:

选择B5:E16单元格>>导航到数据选项卡>>点击排序功能。

选择空白行>>使用CTRL + –(减号)键将其删除。

选择空白列>>按CTRL + –(减号)键删除该列。

您的结果应类似于下面的屏幕截图。

方法 5 – 使用查找选项步骤:

选择B5:E16单元格>>跳转到查找并选择下拉列表中的查找选项。

查找和替换,选中匹配整个单元格内容选项 >> 在查找范围字段中,选择值选项>> 按查找全部。

将最上面的结果按CTRL + A键选择全部>>点击关闭。

应用删除工作表行选项。

结果应显示在下面的屏幕截图中。

方法 6 – 合并高级筛选菜单步骤:

请按照下面所示的动画 GIF 中所示的步骤进行操作。

最终输出应如下图所示。

方法7 – 使用FILTER功能步骤:

I选择B4:E16单元格>>按CTRL + T插入Excel表格,如下所示。

继续进入表格设计选项卡>>将表格重命名为“Best_Sellers”。

移至F5单元格>>将公式插入公式栏。=FILTER(Best_Sellers,Best_Sellers[[Name ]]<>"" )FILTER(Best_Sellers,Best_Sellers[[Name ]]<>”” ) → 过滤范围或数组。这里,Best_Sellers是数组参数,而Best_Sellers[[Name ]]<>””是包含删除给定数组中空白行的参数。

方法 8 – 实施 PowerQuery 选项步骤:

如前所示插入 Excel 表格 >> 转到数据选项卡,然后单击来自表格/范围选项。

实时按照 GIF 所示的步骤进行操作。

移至关闭并加载下拉列表>>选择关闭并加载到选项。

选择现有工作表选项并选择F4单元格。

结果应如下面的屏幕截图所示。

如何使用 Excel VBA 删除空单元格并向上移动数据步骤:

导航到开发人员选项卡>>单击Visual Basic 按钮。

这将在新窗口中打开Visual Basic 编辑器。

转到插入选项卡>>选择模块。

从此处复制代码并将其粘贴到下面的窗口中。

Sub Delete_blank_cells()

With Range("B4:D16")

If WorksheetFunction.CountA(.Cells) > 0 Then .SpecialCells(xlCellTypeBlanks).Delete Shift:=xlShiftUp

End With

End Sub

子例程有一个名称,这里是Delete_blank_cells()。使用With语句和Range属性设置数据集的范围。使用If语句和CountA函数检查单元格是否为空白,如果是空白,则使用Delete方法删除空白行。

单击运行按钮或按F5键执行宏。

结果应如下图所示。

如何删除 Excel 中的空白行并使用公式向上移动数据步骤:

将表达式复制并粘贴到 F5 单元格中。=IFERROR(INDEX(B:B,SMALL(IF(B$5:B$16<>"",ROW(B$5:B$16)), ROWS(B$5:B5))), "")B5:B16 单元格引用“Name”列。

ROW(B$5:B$16)→ 返回行的序列号。

输出 → {5;6;7;8;9;10;11;12;13;14;15;16}ROWS(B$5:B5) → 返回给定范围内的总行数。

输出 → 1IF(B$5:B$16<>””,ROW(B$5:B$16)) → 检查是否满足条件,如果TRUE则返回一个值,如果TRUE则返回另一个值如果FALSE,则值。这里,B$5:B$16<>”” 是检查 B5:B16 范围的 逻辑测试 参数对于空白。如果测试成立 TRUE(value_if_true 参数),则该函数返回 ROW(B$5:B$16) ,否则它返回FALSE(value_if_false参数)。

输出 → {5;6;FALSE;8;FALSE;10;11;FALSE;13;FALSE;15;16}SMALL(IF(B$5:B$16<>””,ROW(B$5:B$16)), ROWS(B$5:B5)) → 变为

SMALL({5;6;FALSE;8;FALSE;10;11;FALSE;13;FALSE;15;16}) → 返回数据集中第 k 个最小值。输出 → 5INDEX(B:B,SMALL(IF(B$5:B$16<>””,ROW(B$5:B$16)), ROWS(B$5:B5))) → 变为

INDEX(B:B,5) → 返回给定范围内行和列的交集处的值。在此表达式中,B:B 是数组 参数,即“Name ” 列。接下来,5 是指示行位置的row_num 参数。输出 → “喜新厌旧”IFERROR(INDEX(B:B,SMALL(IF(B$5:B$16<>””,ROW(B$5:B$16)), ROWS(B$5:B5))), “”) → <变成

IFERROR(“The Grass Always Greener”, “”) → 如果表达式有错误,则返回 value_if_error,否则返回表达式本身的值。这里,“喜新厌旧”是价值参数,“”是 value_if_error 参数。输出 → “喜新厌旧”

结果应如下图所示。