在Excel中填充空白单元格直到下一个值3种方法

很多时候,您可能会遇到一个数据集,其中只有一个单元格填充了数据,而其下方的单元格在下一个值之前都是空白的。
如下图所示:
虽然这种格式对某些人来说是可行的,但这种数据的问题在于你不能用它来创建数据透视表或在计算中使用它。
这个问题很容易解决!
在本教程中,我将向您展示如何快速 在 Excel 中向下填充单元格,直到下一个填充值。
您可以使用简单的 Go-To 特殊对话框技术、VBA 或 Power Query 轻松完成此操作。
那么让我们开始吧!
推荐:在Microsoft Excel中从日期中提取年份的5种方法
方法 1 – 使用“转到特殊位置”+“公式”向下填充
假设您有如下所示的数据集,并且您想要在 A 列和 B 列中填充数据。

在 B 列中,目标是填充“打印机”直到其下方的最后一个空单元格,然后当“扫描仪”开始时,在下面的单元格中填充“扫描仪”,直到单元格为空。
以下步骤是使用“转到特殊”按钮选择所有空白单元格并使用简单公式向下填充:
- 选择要填充的数据(本例中为 A1:D21)
- 转到“主页”标签

- 在编辑组中,单击“查找和选择”图标(这将在下拉菜单中显示更多选项)

- 点击“前往”选项

- 在打开的“转到”对话框中,单击“特殊”按钮。这将打开“转到特殊”对话框

- 在“转到特殊”对话框中,单击“空白”

- 单击“确定”
上述步骤将选择数据集中的所有空白单元格(如下所示)。

在选中的空白单元格中,您会注意到一个单元格的颜色比其余单元格浅。这个单元格就是我们要输入公式的活动单元格。
无需担心单元格在选择中的位置,因为我们的方法在任何情况下都会有效。
现在,以下是在选定的空白单元格中填充数据的步骤:
- 按键盘上的等号 (=) 键。这将在活动单元格中插入等号
- 按向上箭头键。这将插入活动单元格上方单元格的单元格引用。例如,在我们的例子中,B3 是活动单元格,当我们执行这两个步骤时,它会在单元格中输入 =B2
- 按住 Control 键,然后按 Enter 键
上述步骤将自动插入所有空白单元格及其上方的值。

虽然这看起来步骤太多,但是一旦你掌握了这种方法,你就能够在几秒钟内快速在 Excel 中填充数据。
现在,使用此方法时还有两件事需要注意。
将公式转换为值
第一个是确保将公式转换为值(这样您就有静态值,并且在将来更改数据时不会出现混乱)。
下面的视频将向您展示如何在 Excel 中快速将公式转换为值。

推荐:在Microsoft Excel中显示公式的9种方法
更改日期格式
如果您在数据中使用日期(就像我在示例数据中一样),您会注意到日期列中填充的值是数字而不是日期。
如果日期列中的输出符合所需的日期格式,那就很好了,不需要做任何其他事情。
但如果这些日期格式不正确,则需要进行细微调整。当您拥有正确的值时,只需更改格式,使其在单元格中显示为日期即可。
以下是执行此操作的步骤:
- 选择包含日期的列
- 单击主页选项卡
- 在数字组中,单击格式下拉菜单,然后选择日期格式。

如果您偶尔需要进行这种填充,我建议您使用此 Go-To 特殊和公式技术。
虽然它有几个步骤,但很简单,并且可以在您的数据集中直接显示结果。
但如果你必须经常这样做,那么我建议你看看接下来介绍的 VBA 和 Power Query 方法
方法 2 – 使用简单的 VBA 代码向下填充
您可以使用一个非常简单的 VBA 宏代码来快速填充 Excel 中的单元格直到最后一个空值。
您只需将 VBA 代码添加到文件一次,然后您可以轻松地在系统上的同一个工作簿甚至多个工作簿中多次重复使用该代码。
下面是 VBA 代码,它将遍历选择中的每个单元格并填充所有空白单元格:
'This VBA code is created by Sumit Bansal from TrumpExcel.com Sub FillDown() For Each cell In Selection If cell = "" Then cell.FillDown End If Next End Sub
上述代码使用 For 循环遍历选择中的每个单元格。
在 For 循环中,我使用了 If-Then 条件来检查单元格是否为空。
如果单元格为空,则用上方单元格的值填充;如果不为空,则 for 循环会忽略该单元格并移动到下一个单元格。
现在您有了 VBA 代码,让我向您展示在 Excel 中将此代码放在哪里:
- 选择要填充的数据
- 单击“开发工具”选项卡

- 单击 Visual Basic 图标(或者您可以使用键盘快捷键 ALT + F11)。这将在 Excel 中打开 Visual Basic 编辑器

- 在 Visual Basic 编辑器的左侧,您将看到项目资源管理器。如果您没有看到它,请单击菜单中的“查看”选项,然后单击项目资源管理器

- 如果您打开了多个 Excel 工作簿,Project Explorer 会显示所有工作簿名称。找到包含数据的工作簿名称。
- 右键单击工作簿中的任何对象,转到“插入”,然后单击“模块”。这将为该工作簿插入一个新模块

- 双击您刚刚在上面的步骤中插入的“模块”。它将打开该模块的代码窗口

- 将 VBA 代码复制粘贴到代码窗口中

- 将光标放在代码中的任意位置,然后单击工具栏中的绿色按钮或使用键盘快捷键 F5 来运行宏代码

上述步骤将运行 VBA 代码并填充您的数据。
如果您将来想再次使用此 VBA 代码,则需要将此文件保存为启用宏的 Excel 工作簿(带有 .XLSM 扩展名)
您可以做的另一件事是将此宏添加到您的快速访问工具栏,该工具栏始终可见,您只需单击即可访问此宏(在后端有代码的工作簿中)。
因此,下次您需要填充数据时,您只需进行选择,然后单击快速访问工具栏中的宏按钮。
您还可以将此宏添加到个人宏工作簿,然后在系统上的任何工作簿中使用它。
单击此处阅读有关个人宏工作簿以及如何向其中添加代码的更多信息。
推荐:在Microsoft Excel中删除超链接的10种方法
方法 3 – 使用 Power Query 向下填充
Power Query 具有内置功能,允许您通过单击进行填充。
无论如何,当您使用 Power Query 来转换数据或合并来自多个工作表或多个工作簿的数据时,建议使用 Power Query。
作为现有工作流程的一部分,您可以使用 Power Query 中的向下填充选项快速填充空白单元格。
要使用 Power Query,建议您的数据采用 Excel 表格格式。如果您无法将数据转换为 Excel 表格,则必须为数据创建一个命名范围,然后在 Power Query 中使用该命名范围。
下面是我已转换为 Excel 表格的数据集。您可以通过选择数据集、转到“插入”选项卡,然后单击“表格”图标来执行此操作。

以下是使用 Power Query 填充数据直至下一个值的步骤:
- 选择数据集中的任意单元格
- 单击数据选项卡

- 在“获取和转换数据”组中,单击“来自工作表”。这将打开 Power Query 编辑器。请注意,空白单元格将在 Power Query 中显示值“null”

- 在 Power Query 编辑器中,选择要填充的列。为此,请按住 Control 键,然后单击要选择的列的标题。在我们的示例中,它将是日期和产品列。
- 右键单击任意选定的标题

- 转到“填充”选项,然后单击“向下”。这将向下填充所有空白单元格中的数据

- 单击“文件”选项卡,然后单击“关闭并加载”。这将在工作簿中插入一个新工作表,其中包含结果表

虽然这种方法听起来有点过头,但使用 Power Query 的一个很大的好处是,它允许您在原始数据发生变化时快速更新结果数据。
例如,如果您在原始数据中添加了更多记录,则无需重复上述所有操作。您只需右键单击结果表,然后单击“刷新”即可。
虽然 Power Query 方法效果很好,但最好在您已经在工作流程中使用 Power Query 时使用它。
如果您只是有一个想要填充空白单元格的数据集,那么使用“转到”特殊方法或 VBA 方法(上面介绍)会更方便。
您可以使用这三种简单的方法来 在 Excel 中填充空白单元格,直到下一个值。