Excel数据透视表反向求和技术
之前一篇文章中我们给出了一个公式,能够求出一列数值中从最后一个数值开始向上数5个数值的和,忽略其中的空格。本文给出了一个更简洁的公式,并且可以指定求后面的X个数值之和。
如下所示,假设我们要求这列数值后面5个数值之和,即16+2+5+6+1=30,注意,空格不算在内。
如下所示,在单元格C2中指定要求和的数字的个数,在单元格C5中输入数组公式:
=IFERROR(SUM(OFFSET($A$1,LARGE(IF($A$1:$A$15>0,ROW($A$1:$A$15)),C2)-1,0,ROWS($A$1:$A$15),1)),”没有这么多数字”)
公式中,使用OFFSET函数确定要求和的单元格区域,其中的关键部分是:
LARGE(IF($A$1:$A$15>0,ROW($A$1:$A$15)),C2)-1
IF函数判断单元格区域A1:A15中的值是否大于0,如果大于0,则返回该单元格所在的行号,否则返回FALSE,即:
LARGE({1;2;FALSE;4;5;6;7;FALSE;9;10;11;FALSE;FALSE;14;15},C2)-1
如果我们要求最后5个(单元格C2中的值)数字之和,那么可以看出,要开始求和的单元格对应的值的所在的行数从大到小排在第5位。也就是说,使用LARGE函数获取数组中第5大的值,即对应着要开始求和的单元格所在的行号,减去1,得到OFFSET函数从单元格A1开始到达开始求和的单元格要偏移的行数。即:
LARGE({1;2;FALSE;4;5;6;7;FALSE;9;10;11;FALSE;FALSE;14;15},5)-1
其中的FALSE对应着空单元格。转换为:
9-1
结果为:
8
代入主公式中得到:
=IFERROR(SUM(OFFSET($A$1,8,0,ROWS($A$1:$A$15),1)),”没有这么多数字”)
转换为:
=IFERROR(SUM(OFFSET($A$1,8,0,15,1)),”没有这么多数字”)
转换为:
=IFERROR(SUM($A$9:$A$23),”没有这么多数字”)
即:
=IFERROR(SUM({16;2;5;0;0;6;1;0;0;0;0;0;0;0;0}),”没有这么多数字”)
得到结果:
30
最新推荐
-
Win11定位服务怎么关闭 win11关闭定位服务
Win11定位服务怎么关闭?在使用win11系统的过程中,通过定位服务,用户可以获得更精准的位置信息,可以 […]
-
printspooler服务怎么开启win11 如何启动print spooler服务
printspooler服务怎么开启win11?print spooler服务是关联打印机的系统服务项,实 […]
-
win11定位服务怎么打开 win11定位服务被禁用了
win11定位服务怎么打开?在使用win11系统的过程中,通过定位服务,可以获得更精准的位置信息,可以方便 […]
-
mac磁盘分区怎么分 mac给硬盘分区
mac磁盘分区怎么分?在日常使用电脑的过程中,通过对电脑进行分区规划,可以方便用户查找储存对应的文件数据, […]
-
win7打印机服务怎么开启 开启printspooler服务的步骤
win7打印机服务怎么开启?Print Spooler是打印后台处理服务,如果此服务被禁用,任何依赖于它的 […]
-
windows7怎样设置禁止随便安装软件 win7设置禁止安装软件
windows7怎样设置禁止随便安装软件?很多用户都会在电脑上进行第三方软件应用的安装,但是也带来了不安全 […]
热门文章
Win11定位服务怎么关闭 win11关闭定位服务
2printspooler服务怎么开启win11 如何启动print spooler服务
3win11定位服务怎么打开 win11定位服务被禁用了
4mac磁盘分区怎么分 mac给硬盘分区
5win7打印机服务怎么开启 开启printspooler服务的步骤
6windows7怎样设置禁止随便安装软件 win7设置禁止安装软件
7win7如何设置局域网工作机组 win7局域网共享设置工作组
8win7如何添加自带游戏 win7自带游戏怎么恢复
9win11用户账户控制怎么取消 win11关闭uac方法
10win10怎么查看网口是百兆千兆还是千兆 电脑网口是百兆还是千兆
随机推荐
专题工具排名 更多+