说起OFFSET函数,真的是像雾像雨又像风,从复杂的数据汇总、到数据透视表再到高级动态图表,都离不开OFFSET函数的默默付出。

通过OFFSET函数,可以生成数据区域的动态引用,这个引用再作为半成品,通过后续的处理加工,就可以为图表和透视表提供动态的数据源、为其他函数生成特定的引用了。

首先,咱们说说这个函数的作用,微软的帮助文件是这样描述的:

以指定的引用为参照系,通过给定偏移量返回新的引用。

瞧瞧,这么简单的几句话,让人家怎么能猜透你的心思嘛。

这个函数有5个参数:

第一个参数是基点

第二个参数是要偏移几行,正数向下,负数向上。

第三个参数是要偏移几列,正数向右,负数向左。

第四个参数是新引用几行。

第五个参数是新引用几列。

如果不使用第四个和第五个参数,新引用的区域就是和基点一样的大小。

如果使用下面这个公式:


=OFFSET(C3,4,2,4,3)

就是以C3为基点,向下偏移4行,向右偏移2列,新引用的行数是4行,新引用的列数是3列,最终得到对E7:G10单元格区域的引用。




当然,仅仅得到引用是没啥用处的,咱们的目的是把OFFSET函数得到的引用作为一个半成品,再通过其他方法进行再加工。

这么说还是有点抽象啊,再来一个形象一点的:

OFFSET函数就像是一个鬼子小分队,从据点董家庄(C3)出动,顺着大路向南走4里(C7)




拐弯儿再向东2里,这时候就到马家河子(E7)了




鬼子队长说了,我要以马家河子(E7)这个地方开始,再占领一片地盘。有多大呢?向南4里,向东3里。




吆西,结果就是E7:G10单元格区域了。

简单认识了OFFSET函数,咱们再用一个动态图表的制作,来说说OFFSET函数的实际应用。

OFFSET函数和动态图表之间,属于是“见不得人”的关系。

所谓动态图表,就是能根据指定的条件,自动变化图表数据源,使图表能够按照我们指定的规则,动态显示数据中的重点关注部分。

说“见不得人”,是指不能在图表中直接使用OFFSET函数,而是要将OFFSET函数先定义成名称,然后在图表中使用自定义名称作为数据源。

看下面这个题目:

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




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


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





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

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

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

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

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

就相当于一竿子捅到底,然后来个烧鸡大窝脖儿,向上引用7行,所以得到的始终是最后7行的引用。

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




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




设置数据系列的系列值为:

=Sheet2!销售额

这里的Sheet2,是数据源工作表的名称。销售额,就是定义的名称。

设置轴标签的区域为:

=Sheet2!日期

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

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

今天只是讲了OFFSET函数的基本用法,其实她还有很多更加复杂的引用方式,需要咱们一点点的学习领悟。只要功夫深,金箍棒也能磨成针。

声明:本站所有文章均出自互联网,只为学习之用;如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。