在平时和Excel打交道的过程中,offset函数并没有像Vlookup或者是Sumif那样通用,也没有说特定的功能非要你去用这个函数,但是如果掌握了这个函数,在很多的数据处理过程中就会事半功倍。
封面图,来自网络搜索引擎说:offset函数是以指定的应用为参考系,通过上下左右偏移得到新的区域的引用。返回的引用可以是一个单元格也可以是一个区域。并且可以引用指定行列数的区域。
这个怎么理解呢,首先来解读一下Offset函数的语法:
OFFSET(reference,rows,cols,height,width) / OFFSET(参考系,行数,列数,高,宽)
比如下图,以A1单元格为参考系,向下移动3行,向右移动2列,指定一个单元格,则为Offset(A1,3,2,1,1)。其中指定一个单元格的时候后面两个参数高和宽可以省略,也可以是Offset(A1,3,2)。
Offset 函数试用如果最后两个参数不全是1,那就是区域引用。比如,我们用Offset(A1,3,2,2,3),以A1单元格为参考系,向下移动3行,向右移动2列,指定向下2行,向右3列的区域。在这里,直接区域引用没有意义,会是错值,那我们可以用SUM函数来衔接一下,则是这部分区域的求和。
区域引用以上均为教科书式的学习,那么在实际引用过程中,有什么可以借鉴的地方呢?这里可以举几个小例子。
实例应用1:数字序号的编排
平时工作过程中,我们需要给一些数据生成数字序号,一般最常做的是左手按住Ctrl键,右手按住鼠标左键,一直往下拉,就自动生成了序号。可是这好费劲啊,要是数据有几千几万行,真是累啊。本着偷懒的宗旨,我们也可以设置简单的公式,操作如下图:
基础版数据序号生成这样的操作是基础版,一般情况下十分通用,可是有的时候就会遭遇瓶颈,比如你中间需要删除行的时候(无奈脸)。
出了BUG这个序号生成用的是简单的公式,上一个单元格+1,因为是绝对引用,所以中间删除行的时候,下一行就会跳错。这个时候,再想着升级,就是我们OFFSET函数登场的时刻了!(此处应该有激情澎湃的掌声——微笑脸)。
OFFSET强力赞助的序号生成升级版首先,首行还是下点功夫写上1,然后用offset来相对定位上一行的单元格,再加上1,即使中间删除行,因为是相对引用也没有关系。
看到这里,你可能会觉得Offset也就那么一点儿水平,你可能会表示失望,别急,请继续往后看。
实例应用2:行/列的迁移
刚刚我们几乎就把OFFSET(参考系,行数,列数,高,宽)中的参考系限定为了某个单元格,其实不仅仅是如此,参考系可以是单元格,也可以是某一行或者某一列。
注意点:如果参考系为列,那么第二个参数“行数”就只能为零,因为已经没法移动行数了;同样,如果参考系为行,那么第三个参数“列数“也只能为零,因为没法移动列。
以下是和SUM一起套用的一个示例:
数据源如下图,目的是要求整理成每个月的总体销售,月份为列,且要是自动生成的。
示例数据源最朴实的做法是,每一行去手动SUM对应的列。这个时候,你会无比庆幸还好只有12个月,2分钟也就完成了。
朴实做法但是,我想偷懒,所以请看(得意脸)!
OFFSET强力赞助的升级做法一开始,需要有一列辅助列,帮助定位对应的月份的位置,用的是Match函数,接下来,就是以首列为参照系向右移动辅助列的序号就好了,注意移动的列数要是辅助列减1。
好啦,今天关于OFFSET函数的讲解就到这里为止啦。如果有更多的兴趣,欢迎关注我的专栏干而不硬的货真价实,有更多关于Excel,语言学习,商务邮件的经验哦。
网友评论