在网上看到一位网友的求助:
如下图所示,要求根据选取的月份求1~n月份的和。
如:
- 选1月份只求1月份的和
- 选2月份求1~2月份的和
- 选5月求1~5月份的和
- .........
对于这种动态区域求和,一般要借用offset函数。(但它并不是今天的主角,那个神奇的函数)
offset函数可以生成动态区域,它的语法为:
offset(单元格,行偏移数,列偏移数,总行数,总列数)
本题要求和的区域是:根据C2的月份数生成以D列为起始的N列区域。如C2是3月,那么求和的区域就是D:F列。
所以这儿只需要计算出总列数,其他参数可以省略(但要保留逗号)即:
offset(d3,,,,总列数)
所以接下来我们根据C3的值计算出总列数。99%的人都会想到用match函数,即:
=MATCH($C$2,D$2:O$2,0)
也许你还会想到用left函数截取,但很快就会否定这个函数,因为如果月份是1~9月可以用=left(月份,1)截取,但如果是10~12月份结果全是1了。