Excel是一种强大的表格数据处理工具,其目的就是辅助人们办公、提高工作效率。其实很多重复性质的数据处理工作可能都在Excel里面有解决方案。
前一段时间,我在处理数据时遇见这样一件事,面对几百行的数据,我想要隔一行提取一个数据形成新的一列。显然,一个个去复制-粘贴的工作量是比较大的,并且很不明智,那么有什么好的方法吗?答案当然是肯定的,在阅读下面的内容之前,我建议读者可以自己先思考一下如何解决。
首先,隔行抓取是有规律性的,那么十有八九就会有相应的函数。
在这里介绍OFFSET函数,结合下面的图片进行介绍该函数。
1.简单来说,offset的格式为:offset(a,b,c),a为起始位置,b为相对目标行数,c为相对目标列数。比如上图的数据,offset(I2,0,0)=17.49, offset(I2,1,1)=17.85。
2.明白了offset的基本用法就可以延伸了,我们知道对于某个单元格的数据进行拉伸时子单元格的数据会复制母单元格的内容,比如上图I2=17.49,对其向下拉伸,I3会被17.49覆盖;但是当母单元格的数据呈明显规律性,拉伸出的子单元格的数据会延续母单元格的规律。
那么,为达到隔行抓取数据的目的,在新的一列,只要在offset(a,b,c)中a不变,b不断改变就可以实现隔行抓取数据。
3.我们可以用这个公式:在K2单元格输入=OFFSET($I$2,(ROW(I1)-1)*2,0),向下拉伸单元格就得到了上图K列。
可能有的读者对这个公式会有一些不熟悉的内容,没关系,你马上就明白啦。
3.1 $为锁定符,$的输入方法即为英文输入模式下shift+F4.
在上述公式中,$I$2表示锁定了I列和2行,即I2单元格,在后续的下拉操作中公式的a始终以I2为基准。
ROW函数返回单元格的行数,比如ROW(I1)=1,ROW(I2)=2.
我们发现公式中ROW(I1)-1,I1并未被锁定,因此在下拉操作中,第二个单元格即K3为(ROW(I2)-1)*2=2,抓取距I2两行的数据即实现了隔行抓取数据.
神奇吧?
此外,L列是利用(L2)=OFFSET($I2,(ROW(I1)-1)*2,0)得到的结果,读者可以做一些思考,下期我会做一些解答。
这一期分享的内容就是这些,读者可以举一反三,关于Excel有问题也都可以与我交流哦。