分享

3分钟深入了解OFFSET函数,别把时间都浪费在了傻等着!

 Excel不加班 2019-12-26

上一篇《别怕,其实OFFSET函数很简单!》,很多人都觉得OFFSET很难,但实际看完文章后,都觉得不过如此,其实也就那么一回事而已。

针对OFFSET函数很多读者还是很好奇的,对这个函数提出一系列问题,因此卢子再写一篇文章进行详细答疑。

1.对公式B2:OFFSET(B1,D3,0)这一部分很好奇,为什么这样能求和?

你可以在编辑栏选择这一部分区域,按F9键。

其实就是B2:B5这个区域的值,这也是嵌套SUM函数能够自动求和的原因。

不要单独看OFFSET(B1,D3,0)得出来是300,这个怎么能求和?而是要看整体B2:OFFSET(B1,D3,0),300是和前面B2组成的一个新区域。

举一个最简单的例子,现在要对B2:B5进行求和,你用F9键按出来的是300,然后问B2:300怎么求和,这样会一脸懵逼。

你要一次性选择B2:B5按F9键才能看明白,我们学公式要学会看整体。

2.如何获取偶数月份的金额?

前面说过隔行获取对应值,这个是隔列获取对应值。行号用ROW函数,列号用COLUMN函数。

偶数月份金额,也就是A2这个单元格向右2、4、6、8、10和12列获取的值,也就是1、2、3、4、5和6乘以2就可以,而数字换成COLUMN函数就是。

综合起来就是:

=OFFSET($A$2,0,COLUMN(A1)*2)

函数很难吗?嵌套函数很难吗?不是的,要懂得方法!

3.大家最关心的OFFSET函数第4、第5参数如何运用的问题。

OFFSET函数有一种是3个参数的用法:

=OFFSET(起点,向下几行,向右几列)

有一种是5个参数的用法:

=OFFSET(起点,向下几行,向右几列,多少行,多少列)

这种5个参数的用法一般用在获取动态区域上,像这种明细表很常见,就是行数不断增加,但是列数固定为5列。

起点:A1

向下几行:0

向右几列:0

多少行:不确定

多少列:5

现在除了第4参数多少行不确定,其他都是确定的,直接输入进去即可。怎么确定这个第4参数?

因为供应商这一列每个单元格都会输入内容,所以判断这一列有多少个非空单元格即可,非空单元格用COUNTA函数统计。

综合起来,动态区域公式就是:

=OFFSET($A$1,0,0,COUNTA($A:$A),5)

不过这个公式不能直接用在单元格,一个单元格只能放一个值,现在是一个区域,一个单元格容纳不了。就比如说,你平常一顿饭吃一碗饭,现在要给你吃100碗,肯定是吃不下,直接就撑死,在Excel中这种叫出错。

这时就涉及到一个新功能,定义名称。单击公式,定义名称,名称改成动态,引用位置将公式复制粘贴过去,确定。

定义名称一般都是跟数据透视表一起用,这个以后有机会再细说,今天就到此为止,明天见。

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多