前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel公式技巧42:反向求和技术

Excel公式技巧42:反向求和技术

作者头像
fanjy
发布2020-07-30 10:49:37
2.3K0
发布2020-07-30 10:49:37
举报
文章被收录于专栏:完美Excel

在《Excel公式练习29:总是获取某列数值中的最后5个数值之和》中,我们给出了一个公式,能够求出一列数值中从最后一个数值开始向上数5个数值的和,忽略其中的空格。本文给出了一个更简洁的公式,并且可以指定求后面的X个数值之和。

如下图1所示,假设我们要求这列数值后面5个数值之和,即16+2+5+6+1=30,注意,空格不算在内。

图1

如下图2所示,在单元格C2中指定要求和的数字的个数,在单元格C5中输入数组公式:

=IFERROR(SUM(OFFSET(A1,LARGE(IF(A1:A15>0,ROW(A1:A15)),C2)-1,0,ROWS(A1:A15),1)),"没有这么多数字")

图2

公式中,使用OFFSET函数确定要求和的单元格区域,其中的关键部分是:

LARGE(IF(A1:A15>0,ROW(A1:A15)),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(A1,8,0,ROWS(A1:A15),1)),"没有这么多数字")

转换为:

=IFERROR(SUM(OFFSET(A1,8,0,15,1)),"没有这么多数字")

转换为:

=IFERROR(SUM(A9:A23),"没有这么多数字")

即:

=IFERROR(SUM({16;2;5;0;0;6;1;0;0;0;0;0;0;0;0}),"没有这么多数字")

得到结果:

30

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档