在Excel中,offset函数是一个引用函数,表示引用某一个单元格或者区域。其也是我们日常做一些组合函数中的一种,需要熟练掌握。

1.offset函数的含义

以指定的(单元格或相连单元格区域的引用)为参照系,通过给定偏移量得到新的引用。

返回的引用可以是一个单元格也可以是一个区域(可以指定行列数)。

注意事项

第一,如果行数和列数偏移量超出工作表边缘,函数 OFFSET 返回错误值 #REF!。

第二,如果省略 height 或 width,则假设其高度或宽度与 reference 相同。

第三,函数 OFFSET 实际上并不移动任何单元格或更改选定区域,它只是返回一个引用。

第四,函数 OFFSET 可用于任何需要将引用作为参数的函数。

二、语法

= OFFSET(reference,rows,cols,height,width)

=Offset(参照单元格,行偏移量,列偏移量,返回几行,返回几列)

参数:

Reference——参照单元格(单元格或相连单元格区域的引用)。否则,offset函数返回错误值#VALUE!。

Rows——行偏移量。正数(代表在参照单元格的下方),负数(代表在参照单元格的上方)。

Cols——列偏移量。正数(代表在参照单元格的右边)或负数(代表在参照单元格的左边)。

Height——返回几行(必须为正数),即所要返回的引用区域的行数。

Width——返回几列(必须为正数),即所要返回的引用区域的列数。

下面就以一个实例应用做解释 。以A1单元格作为参考系,向下移动2行,向右移动2列,我们可以直接找到引用的单元格是 C3,结果是6。

excel函数区域绝对引用(Excel查找引用函数之offset函数)(1)

在D3单元格输入公式=OFFSET(A1,2,2,1,1),其中A1是参考系,接着的2,2分别表示下,右移动的行数和列数,同样向上,左则是负数。最后面的1,1表示引用的区域大小是一行一列,也就是一个单元格。

excel函数区域绝对引用(Excel查找引用函数之offset函数)(2)

结果和我们肉眼看到的一样,函数公式中最后面的1,1可以省略,如下图,其就表示直接引用一个单元格。

excel函数区域绝对引用(Excel查找引用函数之offset函数)(3)

如果省略 height 或 width,则默认其高度或宽度与 reference 相同。

以区域做参考系:

1.还是这个例子,我们以A1到B2的区域作为参考系,来引用下移2行,右移动1列的2行2列的区域。

excel函数区域绝对引用(Excel查找引用函数之offset函数)(4)

2.在D3输入公式=OFFSET(B1:C2,2,1,2,2),其表示的意思与上文中以单元格为参考系的基本一致,然后同时按下CTRL、SHIFT和ENTER三个键(因引用的是数组区域)。

excel函数区域绝对引用(Excel查找引用函数之offset函数)(5)

3.D3单元格中显示的是引用到区域中第一行第一列的单元格,此时将鼠标放在该单元格右下角出现十字的时候点住,右拉到2列,再接着点住下拉到2行,那么此时所有引用的区域就出现了。如下图所示。

excel函数区域绝对引用(Excel查找引用函数之offset函数)(6)


例1:求B,C 2组2月和3月的销售额汇总

=SUM(OFFSET(B2,2,1,2,2))

可以看出向下2,向右1,返回2行2列,返回的是区域,返回的是数组{97,179;87,167}。最后使用sum进行求和。

excel函数区域绝对引用(Excel查找引用函数之offset函数)(7)

例2:快速返回各年合计

=OFFSET($B$1,ROW(A1)*5,0)

excel函数区域绝对引用(Excel查找引用函数之offset函数)(8)

例3:这个销售流水记录中,每天都要不断的添加数据。现在要制作一个图表,仅展示最近7天的销售状况。

excel函数区域绝对引用(Excel查找引用函数之offset函数)(9)

首先,在【公式】选项卡下,单击【定义名称】,分别定义两个名称:

日期=OFFSET($A$1,COUNT($A:$A),0,-7)

销售额=OFFSET($B$1,COUNT($B:$B),0,-7)

excel函数区域绝对引用(Excel查找引用函数之offset函数)(10)

说说定义名称日期这个公式的意思:

COUNT函数对A列数值计数,结果作为OFFSET函数的行偏移参数。

OFFSET函数以A1为基点,向下偏移的行数是COUNT的结果,也就是A列有多少个数值,就向下偏移多少行。

这时候就相当于到了A列数值的最后一行,给定的偏移列数是0,新引用的行数是-7,得到从A列数值的最后一行开始,向上7行这样一个动态的区域。

如果A列的数值增加了,COUNT函数的计数结果就增加了,OFFSET函数的行偏移参数也就随之变化。

就相当于一竿子捅到底,然后向上引用7行,所以得到的始终是最后7行的引用。

接下来,按下图步骤插入一个柱形图。

右键单击数据系列,选择数据源

①点击图例项(系列)下方的“编辑”

②系列名称:点击我们的“B1”(销售额)单元格;系列值:输入“=Sheet8!销售额”,表示引用我们刚才定义的区域。然后点击确定。

③点击水平(分类)轴标签下方的“编辑”

④轴标签区域:输入"Sheet8!日期",点击确定

⑤返回选择数据源的界面,点击确定

OK了,以后我们只要不断的在数据源表格中添加数据,这个图表就始终显示的是最近7天的数据变化了。

最后别忘了,再对图表进行简单的美化,收工了——

excel函数区域绝对引用(Excel查找引用函数之offset函数)(11)

例4:结合名称管理器求各统计项

“A2:C14”区域为源数据,通过源数据,使用OFFSET函数定义一个叫“A”的名称,然后完成下图1、2、3个班级的实考人数、总分、最高分、优秀数、平均分的统计。

excel函数区域绝对引用(Excel查找引用函数之offset函数)(12)

excel函数区域绝对引用(Excel查找引用函数之offset函数)(13)

单击菜单“插入”——“名称”——“定义”,在“名称”框中输入名称“成绩汇总”,然后在下面的引用位置输入:

=OFFSET(Sheet10!$A$1,MATCH(Sheet10!$E2, Sheet10!$A$2:$A$14,),2,COUNTIF(Sheet10!$A$2:$A$14, Sheet10!$E2))

这里我们的数据在Sheet10标签页,大家可以根据自己的页名称自行更改

引用位置输入公式的含义,解释如下。把上面这个公式分成两部分来查看,就很容易了。

excel函数区域绝对引用(Excel查找引用函数之offset函数)(14)

第一部分:MATCH(Sheet10!$E2, Sheet10!$A$2:$A$14,),这个值是OFFSET的第二个参数,使用MATCH来精确查找位置。代表偏移的行数就由MATCH部分的值来控制。这个公式的意思就是查找E2单元格的值在A2:A14区域中的位置。

MATCH函数也是一个查找函数。MATCH 函数会返回中匹配值的位置而不是匹配值本身。在使用时,输入单值它就返回单值,输入多值就返回多值。MATCH函数在众多的数字中只查找第一次出现的,后来出现的它返回的也是第一次出现的位置。MATCH函数一般都和别的函数嵌套使用。

第二部分:COUNTIF(Sheet10!$A$2:$A$14, Sheet10!$E2),这个值是OFFSET的第四个参数,高度就由COUNTIF的值来控制。

定义完名称之后,在F2单元格输入公式:=COUNTA(成绩汇总),然后下拉,就可以求出各个班级的参考人数。

在G2单元格套用COUNTIF函数的公式:countif(区域,条件),输入公式:=COUNTIF(成绩汇总,">=60"),然后下拉,就可以求出各个班级的优秀人数。在这个公式中,我们假定合格人数的分数为大于等于60分。

在H2单元格输入公式:=MAX(成绩汇总),然后下拉,就可以求出各个班级的最高分。

在I2单元格输入公式:=AVERAGE(成绩汇总),然后下拉,就可以求出各个班级的平均分。

excel函数区域绝对引用(Excel查找引用函数之offset函数)(15)

excel函数区域绝对引用(Excel查找引用函数之offset函数)(16)

,