offset 函数是 Excel 里面的引用类函数,核心作用是以一个基准单元格作为起点,按照指定的行数和列数进行偏移,然后返回偏移之后单元格或者单元格区域的引用,这个函数最大特点就是可以生成动态区域,经常搭配 sum countif index 等函数做动态报表滚动数据汇总,很多新手容易混淆 offset 和普通单元格直接引用,普通引用位置是固定写死的,offset 是根据参数动态计算出引用位置,当基准单元格或者偏移数值发生变化,最终引用区域会跟着自动变动,这个特性就是它适合做动态图表动态下拉汇总的根本原因,使用的时候一共需要填写五个参数,前三个是必填参数,后两个选填,输入公式的时候要注意它属于易失性函数,表格只要发生任何改动就会重新计算,数据量大的时候会明显拖慢表格运行速度,掌握参数含义,理解偏移方向,学会数组用法和搭配其他函数,就能把 offset 函数用在动态数据源滚动求和这类场景,结论就是 offset 函数本质是动态定位引用工具,适合需要区域跟随变量变化的场景,大数据量场景要谨慎使用。
小标题 offset 函数语法与参数说明
完整语法 offset reference rows cols height width
清单
reference 基准起点单元格或者单元格区域,也就是偏移的原点,必须填写
rows 向下偏移的行数,正数代表向下偏移,负数代表向上偏移,必须填写
cols 向右偏移的列数,正数代表向右偏移,负数代表向左偏移,必须填写
height 选填,返回区域的高度,也就是包含多少行,省略的时候默认和基准区域行数一致
width 选填,返回区域的宽度,也就是包含多少列,省略的时候默认和基准区域列数一致
小标题 参数方向规则对照表
表格
参数数值类型 偏移方向
rows 正数 从基准单元格向下移动
rows 负数 从基准单元格向上移动
cols 正数 从基准单元格向右移动
cols 负数 从基准单元格向左移动
height 大于 1 引用区域变成多行
width 大于 1 引用区域变成多列
小标题 基础实操示例
示例 1 单单元格偏移
公式 offset A1 2 1
解释 起点是 A1,向下偏移 2 行,向右偏移 1 列,最终定位到 C3 单元格
示例 2 多行多列区域引用
公式 offset A1 1 0 3 2
解释 起点 A1,向下偏移 1 行,列不偏移,返回高度 3 行宽度 2 列的区域,也就是 B2 到 C4 这个区域
示例 3 搭配 sum 做动态求和
公式 sum offset A1 0 0 5 1
解释 从 A1 开始,不偏移行列,引用 A1 到 A5 这一列 5 个单元格,然后对这个区域求和
小标题 进阶应用场景
第一 动态滚动求和,配合单元格输入的月份数字,自动切换对应月份的数据区域,做月度滚动汇总表
第二 动态图表数据源,普通图表数据源固定,使用 offset 定义名称之后,新增数据图表可以自动扩展范围
第三 多级联动下拉,结合数据验证,用 offset 取出二级联动对应的列表区域
第四 周期取值,每隔固定行数抽取数据,配合 mod 函数实现隔行取值
小标题 重要特性与坑点
offset 属于易失性函数,只要工作表任意单元格修改,就会触发重新计算,上万行大数据表格,大量 offset 公式会造成卡顿,计算变慢,这种场景很多时候可以替换成 index 函数,index 不是易失函数,性能更好
offset 返回的是引用,不是数值本身,单独输入 offset 公式,如果单元格没有开启动态数组,部分旧版本 Excel 只会返回偏移后左上角单元格的值,想要得到整片区域结果,需要配合 sum average 这类聚合函数,或者旧版本使用数组公式
参数如果偏移之后超出工作表边界,公式会报错 REF,也就是引用无效,写公式的时候要预留边界判断,避免偏移跑出表格范围
height 和 width 参数不能写 0,如果填 0 会直接报错
【常见问题】
问题 1 offset 函数的用法 offset 为什么表格一动就自动重新计算
回答 1 offset 函数的用法里 offset 属于易失性函数,工作表任意单元格发生修改,就会强制重新计算所有 offset 公式,这是函数本身特性,数据量大的时候容易卡顿,大数据场景推荐改用 index 函数替代。
问题 2 offset 函数的用法 offset 能不能返回整片区域而不是单个单元格
回答 2 offset 函数的用法可以实现,只要补充 height 和 width 这两个选填参数,指定返回区域的行数和列数,就能返回连续单元格区域,一般搭配 sum average 等聚合函数使用。
问题 3 offset 函数的用法 offset 和 index 函数有什么区别
回答 3 offset 函数的用法核心是动态偏移引用,属于易失函数,计算消耗高,index 是按行列序号取值,不属于易失函数,运行速度更快,很多动态报表场景可以用 index 替代 offset 函数。
问题 4 offset 函数的用法 公式出现 REF 错误是什么原因
回答 4 offset 函数的用法当中出现 REF 错误,代表偏移之后的位置已经超出 Excel 工作表边界,或者基准引用本身无效,检查 rows cols 参数数值,确认偏移之后还在表格有效区域内即可修复。
【免责申明】
本内容基于 Excel 常规版本讲解 offset 函数的用法,Microsoft365 旧版 Excel WPS 表格在动态数组支持上存在差异,公式表现可能略有不同,本文仅做函数知识科普,不保证所有表格环境完全一致,使用请结合自身软件版本测试。

