首页 > Excel专区 > Excel函数 >

excel如何动态获取一列数据最后3个单元格的和?

Excel函数 2023-01-08

今天遇到一个小需求,在B列数据在不断增加的情况下,如何动态求和最后三个单元格的值?

由于数据是不断增加的,最后三个值的单元格不断变化,我的思路是先利用公式获取到最后三个单元格的位置,再利用求和函数求和。

话不多说,直接上公式,下图中的公式为动态求B列最后三个单元格的值:

如何动态获取一列数据最后3个单元格的和?
=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函数功能主要是返回文本字符串所指定的引用,如Indirect(“A1”)返回A1单元格,Indirect(“B11”)返回B11单元格。

如何动态获取一列数据最后3个单元格的和?

重点说下OFFSET函数,OFFSET返回对单元格或单元格区域中指定行数和列数的区域的引用。

返回的引用可以是单个单元格或单元格区域,可以指定要返回的行数和列数。

语法:OFFSET(reference, rows, cols, [height], [width])

一共有5个参数,其中去前三个参数必填,后面两个参数可选择性填写。

reference参数必需:参照系,位移的起点;

Rows参数必需:参照系向上或向下移动的行数(负数是向上,正数是向下);

Cols参数必需: 参照系向左或向右的列数(负数是向左、正数是向右);

height可选参数:需要返回的引用的行高。 Height 必须为正数;

width可选参数:需要返回的引用的列宽。 Width 必须为正数。

什么意思呢?我们以本案举例:

=OFFSET(B11,-2,0,3,1)

首先以B11为参考系,向上移动2个单元格至B9,移动0列,返回结果为3行1列,即B9:B11(如果是3行2列,那就是B9:C11,以此类推),如果最后两个参数省略的话,那最终结果只返回B9单元格。

如何动态获取一列数据最后3个单元格的和?

Copyright © 2016-2023 office学习教程网 office.tqzw.net.cn. All Rights Reserved.