今天要跟大家分享的是一个强大的查询与引用函数——offset函数!
OFFSET函数的语法参数相对比较多,但是因为参数位置和函数都比较固定,所以只要能够理解各自含义,应用起来就会很方便。
offset(起始位置单元格,移动行数,移动列数,引用行数,引用列数)
=OFFSET(A1,2,0,1,1)
上例中函数语法:从A1单元格开始,移动2行,0列,引用一行,一列。对应引用区域刚好是A3单元格(B地区)。
offset函数更多的使用在动态引用单元格或者制作动态图表的数据源。
下面我们分别使用数据有效性下拉菜单、组合框、列表框等组件来看offset是如何动态引用数据的。
我已经分别在O1、P1、Q1单元格位置插入了数据有效性下拉菜单、列表框菜单和组合框菜单,数据源都是A2:A6的地区。通过这些菜单结合offset就可以完成我们想要的数据动态引用。
数据有效性:
=OFFSET(E1,MATCH($O$1,$A$2:$A$6),0,1,1)
以上语法的含义是:通过数据有效性选择地区,然后通过match返回该地区在A2:A6区域中的位置,然后通过offset函数从A1位置开始,偏移MATCH($O$1,$A$2:$A$6)行,0列,然后从该位置引用一行一列。
列表框:
=OFFSET(A1,$P$2,0,1,1)
使用列表框,结合offset函数,我们也可以实现动态引用。而且明显列表框要比使用数据有效性语法更简单(因为数据有效性返回值是地区,需要使用match函数匹配成行数,而列表框则可以返回地区和对应行序号,组合框同时是这样)
以上语法含义是:从A1单元格开始,偏移$P$2行,0列,然后再引用1行1列。
组合框:
=OFFSET(A1,$Q$6,0,1,1)
组合框与列表框功能几乎一样,不再赘述。
下面大家可以看下三者实现的动态引用效果图: