需求
今天遇到一个小需求,在B列数据在不断增加的情况下,如何动态求和最后三个单元格的值?
由于数据是不断增加的,最后三个值的单元格不断变化,我的思路是先利用公式获取到最后三个单元格的位置,再利用求和函数求和。
话不多说,直接上公式,下图中的公式为动态求B列最后三个单元格的值:
![16535d434ab7ac03ae9867911206708d.png](https://i-blog.csdnimg.cn/blog_migrate/ffd525c689a04f1187ff7973d167f4b4.jpeg)
=SUM(OFFSET(INDIRECT("B"&COUNTA(B:B)),-2,0,3,1))
公式略长,一共有四个函数构成,下面我们来一一讲解公式的作用!
公式含义
思路:
1、先利用counta函数统计B列非空单元格数量;
2、再利用indirect函数定位到B列最后一个单元格;
3、接着利用offset函数返回B列最后三个单元格;
4、最后利用sum函数对offset返回的区域进行求和。
Counta函数功能主要是计算区域中非空单元格的个数,这里统计B列非空单元格个数,即B列一共有多少行数据;
Indirect函数功能主要是返回文本字符串所指定的引用