小小的OFFSET函数让大家云里雾里,几度关心但从未彻底理解其精髓。从复杂的数据汇总到数据透视表乃至高级动态图表都离不开OFFSET函数。这些应用无论多复杂,只要我们理解OFFSET精髓,一切迎刃而解!
下面就用一张简陋而又简单的图例来理解OFFSET。
1、将A1单元格内容克隆到D1单元格,在D1单元格输入=OFFSET(A1,0,0),D1显示“产品”
2、将OFFSET(A1,0,0)第二个参数0改成1,即改成=OFFSET(A1,1,0) ,写入D1单元格中,D1单元格显示“A”,如下图
3、如果将=OFFSET(A1,0,0)第二个参数改成2呢,想一下D1单元格会显示什么?
答案,如下图
相信大家已经看明白了,OFFSET(A1,2,0)的第二个参数,是以A1为基准,向下移动几个单元格。而第一个参数就是基准单元格。另外,第三个参数写几,就是以基准单元格向右移动几个单元格。
思考一下,要在D1单元格中克隆B3的内容,以A1为基准OFFSET参数应该怎么写。
D1单元格=OFFSET(A1,2,1),如下图:
现在,大家彻底明白OFFSET(A1,2,1)函数的这3个参数的作用了吧,OFFSET(基准单元格,纵向偏移,横向偏移)。
但是OFFSET偏偏有5个参数,我们刚才只用了前3个参数,剩下两个是干嘛用的呢,有些伙伴是不是又开始头疼了。其实很简单,继续往下看。
我们把文章开篇第一幅图例搬下来,依然将A1单元格内容克隆到D1单元格,但是这次要修改一下参数,把OFFSET(A1,0,0)三个参数修改为OFFSET(A1,0,0,1,1)五个参数,写入D1单元格,3参数和5参数的输出结果一样,D3显示“产品”,如下图:
看到这里,大家以为,既然3参数和5参数输出结果相同,直接用3参数多简单?5参数恰恰就是OFFSET的精髓所在。
以下图为例,使用OFFSET函数一次性克隆A1和B1 到D1和E1
现在把OFFSET第五个参数改动一下,由OFFSET(A1,0,0,1,1)改为OFFSET(A1,0,0,1,2),写入D3和E3单元格,同时写入D3和E3单元格?对!你没看错,我也没写错!关键就在这,怎么写入?
选择D3和E3单元格,写入=OFFSET(A1,0,0,1,2)。注意!!!注意:写入后按下Ctrl+Shift+Enter,函数才能生效!!! 这就是为什么有些伙伴总出错的原因!!!
注意:函数两边的花括号,不是写上去的,按下Ctrl+Shift+Enter自动生成的!这就是数组概念,数组以后给大家介绍。先搞懂OFFSET!
到这里,大家应该领悟到第五个参数的真谛了吧,第五个参数是2,就是返回以第一个参数A2单元格为基准,横向两个单元格的内容,输出单元格也要同时选择横向两个单元格。不然,输出只选一个单元格的话 ,放不下, 它只能报错了!
那么,第四个参数干嘛用的? 就是克隆显示纵向的单元格数量。
思考下图,如何利用OFFSET一次性克隆A1:B2区域到D1:E2区域。
有些伙伴应该会做了,OFFSET(以A1单元格为基准,0,0,返回横向2个单元格区域,返回纵向2个单元格区域)。 这就是OFFSET(),5个参数的原理!自己任意改改参数体会一下吧,同时输出显示多个单元格时候不要忘记按Ctrl+Shift+Enter。
明白原理后,我们来看一个应用。
利用OFFSET的前3个参数,将多列转置成多行。
在A10单元格写入函数=OFFSET($A$1,COLUMN(A1)-1,ROW(A1)-1),填充A10:E11,就会看到上图的效果。在这里COLUMU(A1)返回“1”,ROW(A1)返回“1”,所以解析A10单元格函数OFFSET(A1,0,0), 这样大家很容易就可以看懂了。
OFFSET所能完成任务远远不止这么简单,我会陆续给大家介绍更多应用。
最后,建议大家使用EXCEL2013或2016版本,没有的伙伴可以私信我,回复“2016”获取。