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

如何在Excel中实现类似SQL Lead/Lag函数的列值引用?

在Excel中实现类似SQL Lag函数的效果,获取上一项数据

假设你的原数据结构为:

  • A列:序号
  • B列:物品名称
  • C列:价格

需要新增两列分别返回上一项物品名称和上一项价格,以下是几种实现方法:

方法一:基于序号匹配(适用于序号连续的场景)

  • 上一项物品名称(如D2单元格):
    =IF(A2=1,"",INDEX(B:B,A2-1))
    
  • 上一项价格(如E2单元格):
    =IF(A2=1,"",INDEX(C:C,A2-1))
    

输入公式后下拉填充至所有数据行,第一行因无前置数据显示空白。

方法二:OFFSET函数通用法(不依赖序号连续性)

如果序号不保证连续,可直接基于行位置获取上一行数据:

  • 上一项物品名称(D2单元格):
    =IF(ROW()=2,"",OFFSET(B2,-1,0))
    
  • 上一项价格(E2单元格):
    =IF(ROW()=2,"",OFFSET(C2,-1,0))
    

下拉填充即可,公式通过ROW()=2判断是否为数据首行(假设表头在第1行),首行显示空白。

方法三:Excel 365/2021动态数组法(无需手动下拉)

若使用支持动态数组的Excel版本,可一次性生成整列结果:

  • 上一项物品名称:
    =VSTACK("", B2:B6)
    
  • 上一项价格:
    =VSTACK("", C2:C6)
    

注:B2:B6、C2:C6需替换为你实际的物品名称和价格数据范围,公式会自动生成对应结果,首行显示空白。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 22:23:10