Google Sheets中Offset公式/动态范围设置:追踪每人最近5条记录
Google Sheets 实现每人最近5条记录的动态范围追踪
方法一:OFFSET 公式实现
假设数据结构为:A列存储姓名,B列及后续列存储记录内容,每行对应一条个人记录,每月会为目标人员新增一行数据。
针对特定人员(例如「张三」),使用以下公式可自动追踪其最近5条记录:
=OFFSET(INDIRECT("A"&MATCH("张三",A:A,0)),MAX(0,COUNTIF(A:A,"张三")-5),0,MIN(5,COUNTIF(A:A,"张三")),COLUMNS(A:Z))
公式各部分解析:
MATCH("张三",A:A,0):定位该人员第一条记录的行号COUNTIF(A:A,"张三"):统计该人员的总记录条数MAX(0,COUNTIF(...) -5):计算向上偏移的行数(若记录不足5条,偏移量为0,直接取所有记录)MIN(5,COUNTIF(...)):确定要提取的行数(最多取5条,不足则取实际条数)COLUMNS(A:Z):指定要包含的列数,可根据实际数据范围调整(例如COLUMNS(A:D))
方法二:QUERY 公式实现(更简洁)
使用QUERY函数可直观筛选最近5条记录,还能灵活调整排序:
=QUERY(A:Z,"SELECT * WHERE A='张三' ORDER BY ROW(A) DESC LIMIT 5")
上述公式按倒序返回最近5条记录。若需按录入顺序(正序)展示,可嵌套排序:
=QUERY(QUERY(A:Z,"SELECT * WHERE A='张三' ORDER BY ROW(A) DESC LIMIT 5"),"SELECT * ORDER BY ROW(A) ASC")
进阶:创建动态命名范围
若需重复引用某人员的最近5条记录,可创建命名范围简化操作:
- 点击顶部菜单栏「数据」→「命名范围」
- 输入名称(例如「张三最近5条记录」)
- 在「范围」输入框粘贴对应公式,替换姓名为目标人员
- 确认后,在表格中直接输入
=张三最近5条记录即可引用该动态范围
无论使用哪种方法,每月新增行后,公式都会自动重新计算,无需手动调整范围即可追踪最新的5条记录。
内容的提问来源于stack exchange,提问作者ataprodi
相关产品推荐
相关产品推荐

