
offset函数是高频引用函数中的一个特殊存在,因为它的基础表达可以引用单个值,也能够引用一个单元格区域,这是vlookup等函数不具备的。
随着版本更新,也出现了filter等函数能够直接获取区域结果,但offset函数在当前阶段,是大家可以在多个版本中使用,且应用较为成熟的引用函数,在一些场景中,有着不可替代的作用。
接下来,作者将通过十多个案例,来介绍不同场景中offset函数的公式套路,遇到较长的组合公式,大家也可以直接复制进行套用。
一、基础语法和三参数写法
首先来看下offset函数的语法图:

含义是以指定的引用为参照系,通过给定的偏移量返回新的引用。
表达式为:=offset(参照单元格,偏移至第几行,偏移至第几列,选取几行,选取几列)
如下图所示,通过offset函数选取2017年至2021年的营业利润数据。
则可输入公式为:
=OFFSET($A$2,3,1,1,5)

这个公式是offset函数5个参数的完整表达。
下面继续来看它的另一种基础表达。
如果只需要引用一个单元格的值,则可以省略其第4和第5参数。
如下图公式:
=OFFSET($A$2,3,1)

它是以A2单元格为固定参照,向下偏移3行,向右偏移列,然后引用行列交叉的单元格。
二、交叉多条件查询
如下图是某上市公司2017年至2021年各财务指标数据表,如何计算该公司2020年的营业利润?

我们可以通过match函数得到指定条件下的行列位置,再使用offset函数偏移指定行列,则可以输入一个完整公式:
=OFFSET($A$2,MATCH("营业利润",A3:A8,0),MATCH("2020年",B2:F2,0))

offset函数以A2单元格为基准,偏移行为3,偏移列为2,得到一个行列的交叉值。
关于offset搭配match函数双条件查询的公式写法,在excel中是比较常见的操作应用。
三、二维表区间求和
如下图数据表所示, 该上市公司最近5年的财务数据,现需要计算最近3年的营业总收入,即就是2019年至2021年营业总收入的总和!

根据offset语法表达,可以输入公式:
=OFFSET($A$2,MATCH("营业总收入",$A$3:$A$8,0),1,1,3)
通过offset函数引用求和的区域,然后可以使用求和函数sum来汇总求和。
完整公式如下:
=SUM(OFFSET($A$2,MATCH("营业总收入",$A$3:$A$8,0),1,1,3))

四、求符合条件的最大值
求符合条件的最大值,看上去是maxifs函数的计算场景。
我们来看一下数据表场景,有两点任务,第1点是计算所有人员的最高月考分数;第2点是要计算张3的最高月考分数。

第1点比较简单,是计算一个区域中的最大值。
难点在于第2点,属于条件求取最大值。
1、 如何计算所有人员5次月考的最高分数?
可以直接使用max函数。
公式为:=MAX(B2:F11)

2、 如何计算张3的最高月考分数?
购买专栏解锁剩余68%