今天,我们来学习Excel中最灵活的“动态区域引擎”——OFFSET函数。它能从一个“起点”出发,按指定的行数、列数“偏移”,还能自定义返回的“区域大小”,堪称“会移动的引用魔术师”,尤其擅长处理动态扩展的数据区域
OFFSET函数的使命:从一个基准单元格出发,按指定的行偏移量和列偏移量移动,返回一个单元格或自定义大小的动态区域。
简单说:给它一个“起点”、“移动方向和距离”、“区域大小”,它就能“画”出一个动态的区域给你。
与直接引用的区别:直接引用(如A1:B10)是“固定地图”,OFFSET是“带GPS的移动探头”,能自动追踪数据变化。
OFFSET(reference, rows, cols, [height], [width])
| 参数 | 含义 | 关键说明 |
|---|---|---|
reference | 基准单元格(起点) | 引用必须引用单元格或相邻单元格区域 |
rows | 行偏移量(正数向下,负数向上) | 如rows=2表示从起点向下移2行;rows=-1表示向上移1行 |
cols | 列偏移量(正数向右,负数向左) | 如cols=3表示向右移3列;cols=-2表示向左移2列 |
[height] | 返回区域的高度(行数,可选,默认1) | 必须≥1,若省略则返回1行 |
[width] | 返回区域的宽度(列数,可选,默认1) | 必须≥1,若省略则返回1列 |
以下公式返回对E4单元格的引用

公式:
=OFFSET(A1,3,4)从A1开始
向下偏移3行 → A4
向右偏移4列 → E4
结果:返回E4单元格的值
以下公式返回对C3:D4单元格区域的引用

公式:
=OFFSET(A1,2,2,2,2)从A1开始
行偏移2,列偏移2
返回2行2列的区域
结果:返回C3:D4区域
需求:销售额汇总,公式需要自动将插入的当日销售额累计汇总。

公式:
=SUM(OFFSET(B1,1,,ROW()-2))效果如下

案例:求B列最近3天的销量之和

公式:
=SUM(OFFSET(B1,ROW()-4,,3,1))通用公式(合计行在公式最下面)
=SUM(OFFSET(B1,ROW()-1-N,,N,1)),ROW()是当前行号,假设从第8行开始统计最近7行需求:查找1月8日销售额

公式:
=OFFSET(A1,MATCH(A14,A2:A11,0),1,,)#REF!错误: 偏移超出工作表边缘原因:rows/cols偏移后超出工作表范围。
口诀:“正下右,负上左”——rows>0向下移,rows<0向上移;cols>0向右移,cols<0向左移。
height/width默认值注意:若省略height/width,默认返回1行1列(单个单元格),而非原区域大小。
好了,今天内容就是这么多,下次咱再接着说。温暖自己也给人力量,下次见~