You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel如何使用公式用每行最后非空值填充最后一列空白单元格

Excel 行末尾空白单元格填充解决方案

前提说明

假设你需要填充的目标最后一列是F列,前面的数据列范围为A-E列,数据从第2行开始(第1行为表头),你可以根据自己的实际表格调整对应列号、行号参数。
需求示例图:
需求示例图

方法1:公式+辅助列(全Excel版本通用)

直接在原目标列写公式会触发循环引用,推荐用辅助列过渡操作:

  • 右键点击目标最后一列的列标,选择「插入」,在右侧新增空白辅助列
  • 在辅助列第2行(对应数据第一行)输入公式:
    =IF(F2<>"",F2,LOOKUP(2,1/(A2:E2<>""),A2:E2))
    注:公式里的F2是目标列对应行的单元格,A2:E2是目标列左侧的所有数据列范围,可根据实际情况替换
  • 按住单元格右下角的填充柄向下拉,覆盖所有数据行
  • 选中整个辅助列,按Ctrl+C复制,右键点击目标最后一列的第一个数据单元格,选择「粘贴选项-值」
  • 删除辅助列即可完成操作,原有目标列的已有值不会被修改

方法2:VBA宏(直接操作原列,无需辅助列)

如果需要频繁处理这类需求,可以用VBA一键完成:

  • 按Alt+F11打开VBA编辑器,点击「插入-模块」
  • 在编辑框粘贴以下代码:
Sub 填充最后一列空白()
Dim lastRow As Long, i As Long, lastCol As Long
' 下方targetCol参数修改为你实际目标最后一列的列号,A=1、B=2,以此类推,此处示例为F列即6
Const targetCol = 6
' 下方2为数据起始行,若表头占2行就改成3
Const startRow = 2
lastRow = Cells(Rows.Count, targetCol).End(xlUp).Row
For i = startRow To lastRow
    If Cells(i, targetCol) = "" Then
        lastCol = Cells(i, Columns.Count).End(xlToLeft).Column
        Cells(i, targetCol) = Cells(i, lastCol)
    End If
Next i
End Sub
  • 修改代码里的targetCol、startRow参数适配你的表格,按F5运行即可直接完成填充

内容的提问来源于stack exchange,提问作者Anthony Cutajar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 03:45:08