很多时候,您可能会遇到一个Excel 数据集,其中只有一个单元格填充了数据,并且它下面的单元格是空白的,直到下一个值。
如下图所示:
虽然这种格式适用于某些人,但这种数据的问题在于您不能使用它来创建数据透视表或在计算中使用它。
这很容易解决!
在本教程中,我将向您展示如何在Excel 中快速填充单元格,直到下一个填充值。
您可以使用简单的Go-To 特殊对话框技术、VBA 或Power Query 轻松完成此操作。
所以让我们开始吧!
内容
方法1 – 使用Go To Special + 公式填写
假设您有一个如下所示的数据集,并且您要填写A 列和B 列中的数据。
在B 列中,目标是填充“打印机”直到其下方的最后一个空单元格,然后当“扫描仪”启动时,然后在下面的单元格中填写“扫描仪”直到单元格为空。
下面的步骤使用go to special 选择所有空白单元格并使用简单的公式填写:
- 选择要填写的数据(在我们的示例中为A1:D21)
- 转到“主页”选项卡
- 在编辑组中,单击“查找和选择”图标(这将在下拉菜单中显示更多选项)
- 单击“转到”选项
- 在打开的“转到”对话框中,单击“特殊”按钮。这将打开“转到特殊”对话框
- 在转到特殊对话框中,单击空白
- 点击确定
上述步骤将选择数据集中的所有空白单元格(如下所示)。
在选定的空白单元格中,您会注意到一个单元格比选择的其余部分更亮。这个单元格是我们要输入公式的活动单元格。
不要担心单元格在选择中的位置,因为我们的方法在任何情况下都可以工作。
现在,以下是填写所选空白单元格中数据的步骤:
- 点击键盘上的等号(=) 键。这将在活动单元格中插入等号
- 按向上箭头键。这将在活动单元格上方插入单元格的单元格引用。例如,在我们的例子中,B3 是活动单元格,当我们执行这两个步骤时,它会在单元格中输入=B2
- 按住Control 键,然后按Enter 键
上述步骤将自动插入所有具有上面值的空白单元格。
虽然这看起来步骤太多,但一旦掌握了这种方法,您将能够在几秒钟内快速填写Excel 中的数据。
现在,在使用此方法时,您还需要注意两件事。
将公式转换为值
第一个是确保您将公式转换为值(这样您就拥有静态值,并且在您将来更改数据时不会搞砸)。
更改日期格式
如果您在数据中使用日期(就像我在示例数据中一样),您会注意到日期列中的填充值是数字而不是日期。
如果日期列中的输出采用所需的日期格式,那么您很好,不需要做任何其他事情。
但如果这些日期格式不正确,则需要进行微调。虽然您有正确的值,但您只需要更改格式,使其在单元格中显示为日期。
以下是执行此操作的步骤:
- 选择包含日期的列
- 单击主页选项卡
- 在数字组中,单击格式下拉菜单,然后选择日期格式。
如果您需要不时进行此填充,我建议您使用此Go-To 特殊和公式技术。
虽然它有几个步骤,但它很简单,并且可以在数据集中为您提供结果。
但如果您必须经常这样做,那么我建议您查看VBA 和接下来介绍的Power Query 方法
方法2 – 使用简单的VBA 代码填写
您可以使用一个非常简单的VBA 宏代码来快速填充Excel 中的单元格,直到最后一个空值。
您只需将VBA 代码添加到文件一次,然后您就可以轻松地在同一工作簿甚至系统上的多个工作簿中多次重复使用该代码。
下面是VBA 代码,它将遍历选择中的每个单元格并填写所有空白单元格:
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 编辑器中,您将拥有Project Explorer。如果您没有看到它,请单击菜单中的“查看”选项,然后单击项目资源管理器
- 如果您打开了多个Excel 工作簿,Project Explorer 会显示所有工作簿名称。找到您拥有数据的工作簿名称。
- 右键单击工作簿中的任何对象,转到“插入”,然后单击“模块”。这将为该工作簿插入一个新模块
- 双击刚刚在上述步骤中插入的“模块”。它将打开该模块的代码窗口
- 将VBA 代码复制粘贴到代码窗口中
- 将光标放在代码中的任意位置,然后通过单击工具栏中的绿色按钮或使用键盘快捷键F5 来运行宏代码
上述步骤将运行VBA 代码,您的数据将被填写。
如果您以后想再次使用此VBA 代码,您需要将此文件保存为启用宏的Excel 工作簿(扩展名为.XLSM)
您可以做的另一件事是将此宏添加到您的快速访问工具栏,该工具栏始终可见,您只需单击一下即可访问此宏(在后端有代码的工作簿中)。
因此,下次当您有需要填写的数据时,您只需进行选择,然后单击快速访问工具栏中的宏按钮即可。
您还可以将此宏添加到个人宏工作簿中,然后在系统上的任何工作簿中使用它。
单击此处阅读有关个人宏工作簿以及如何向其中添加代码的更多信息。
方法3 – 使用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 时使用它。
如果您只有一个要填写空白单元格的数据集,那么使用Go To 特殊方法或VBA 方法(如上所述)会更方便。
因此,您可以使用这三种简单的方法来填充空白单元格,直到Excel 中的下一个值。
我希望您发现本教程很有用。