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

如何将A13至K13单元格公式复制到Power Query导入数据的最后一行

解决Power Query导入后自动复制公式到最后一行的问题

方法1:在Power Query中直接生成计算列(推荐)

如果A13-K13的公式能够转换为Power Query的M语言逻辑,可以直接在查询内添加计算列,实现刷新时自动生成对应行的计算结果,无需手动复制:

  • 点击「数据」选项卡 → 找到「查询 & 连接」面板,双击目标Power Query进入编辑器
    Power Query查询&连接面板
  • 切换到「添加列」选项卡,点击「自定义列」
  • 逐个将A-K列的Excel公式转换为M语言表达式(例如Excel的VLOOKUP(A2, Table, 2, 0)对应M的Table.Lookup(另一个查询表, [对应列], [返回列])),完成自定义列的创建
  • 点击「关闭并上载」,后续每次刷新查询时,新导入的行都会自动带上计算结果,等效于公式自动应用到所有行

方法2:用VBA事件宏自动复制公式(适合无法转M语言的复杂公式)

如果公式逻辑无法通过Power Query实现,可通过工作表变更事件宏,在Power Query刷新后自动复制A13-K13的公式到M列数据的最后一行:

  1. 按Alt + F11打开VBA编辑器
    VBA编辑器打开界面
  2. 在左侧工程窗口中,双击包含Power Query数据的目标工作表(如「Sheet1」)
  3. 在右侧代码窗口粘贴以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lastRowM As Long
    ' 获取M列数据的最后一行行号
    lastRowM = Me.Cells(Me.Rows.Count, "M").End(xlUp).Row
    ' 仅当M列数据更新时触发(Power Query刷新会修改M列)
    If Not Intersect(Target, Me.Range("M:M")) Is Nothing Then
        ' 复制A13-K13的公式到目标行
        Me.Range("A13:K13").Copy
        Me.Range("A" & lastRowM & ":K" & lastRowM).PasteSpecial Paste:=xlPasteFormulas
        Application.CutCopyMode = False
    End If
End Sub
  1. 将文件保存为「启用宏的工作簿(.xlsm)」格式
  2. 后续每次刷新Power Query后,宏会自动触发,完成公式复制

注意事项

  • 若公式为相对引用,复制到新行时Excel会自动调整引用范围,符合需求
  • 启用宏时需确保Excel宏安全设置允许运行此工作簿的宏
  • 如果Power Query刷新会清除原有数据再导入,代码中End(xlUp)仍能正确识别新的最后一行

内容的提问来源于stack exchange,提问作者Fred Blair

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:50:07