首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Excel公式技巧91:求对角线单元格中的数值之和

Excel公式技巧91:求对角线单元格中的数值之和

作者头像
fanjy
发布2021-07-12 16:13:10
发布2021-07-12 16:13:10
2.7K0
举报
文章被收录于专栏:完美Excel完美Excel

Excel公式与函数非常强大,往往能够实现你认为不可能的需求。例如下图1所示的例子,我只想求单元格区域B5:F9中对角线单元格中的数值之和。

图1

也就是:

B5+C6+D7+E8+F9=10+20+30+40+50=150

可以使用数组公式:

=SUM(B5:F9*(ROW(B5:F9)=COLUMN(B5:F9)+3))

结果如下图2所示。

图2

这个公式很简洁但有点特别,其特别之处是后面的+3。为什么呢?因为我们要求的是对角线上的单元格数值之和,对于矩阵来说,对角线上的行列号相等,在本例中,行号从第5行开始至第9行,列号从第2列开始至第6列,相差3,所以将列号+3,使行列号相等,从而能够获取相应的数值。

公式中,

B5:F9

将解析为一个5行5列的矩阵:

{10,0,0,0,0;

0,20,0,0,0;

0,0,30,0,0;

0,0,0,40,0;

0,0,0,0,50

}

而ROW(B5:F9)将解析为列矩阵:

{5;6;7;8;9}

COLUMN(B5:F9)+3

解析为行矩阵:

{2,3,4,5,6}+3

即:

{5,6,7,8,9}

对于

{5;6;7;8;9}={5,6,7,8,9}

解析为:

{TRUE,FALSE,FALSE,FALSE,FALSE;

FALSE,TRUE,FALSE,FALSE,FALSE;

FALSE,FALSE,TRUE,FALSE,FALSE;

FALSE,FALSE,FALSE,TRUE,FALSE;

FALSE,FALSE,FALSE,FALSE,TRUE

}

上述两个矩阵相乘,得到:

{10, 0,0,0,0;

0,20,0,0,0;

0,0,30,0,0;

0,0,0,40,0;

0,0,0,0,50

}

传递给SUM函数,得到结果:

150

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

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

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

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

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