前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel公式练习63: 求数值中的各个数字之和

Excel公式练习63: 求数值中的各个数字之和

作者头像
fanjy
发布2020-05-14 21:47:38
1.4K1
发布2020-05-14 21:47:38
举报
文章被收录于专栏:完美Excel完美Excel

导语:本文的案例在前面的文章中有过介绍,这里给出两个解决方案,进一步巩固所学的知识。

本次的练习是:在单元格中是一个数,使用公式求组成这个数的单个数字相加的和,如下图1所示。

图1

先不看答案,自已动手试一试。

公式

在单元格C3中,输入数组公式:

=SUM(1*(MID(B3,ROW(INDIRECT("1:"& LEN(B3))),1)))

下拉至单元格C10。

公式解析

公式中:

ROW(INDIRECT("1:" & LEN(B3)))

用来生成连续的整数,其最大值为单元格B3中数值的长度,即:

{1;2;3;4;5;6;7;8;9}

将此数组传递给MID函数:

MID(B3,ROW(INDIRECT("1:" &LEN(B3))),1)

即:

MID(B3, {1;2;3;4;5;6;7;8;9},1)

得到数组:

{"1";"2";"3";"4";"5";"6";"7";"8";"9"}

实现了将数值进行拆分。

将上面的数组与1相乘转换为数字:

1*(MID(B3,ROW(INDIRECT("1:" &LEN(B3))),1))

即:

1*{"1";"2";"3";"4";"5";"6";"7";"8";"9"}

得到数组:

{1;2;3;4;5;6;7;8;9}

传递给SUM函数求和:

=SUM({1;2;3;4;5;6;7;8;9})

得到结果:

45

另一个公式

还可以使用SUMPRODUCT函数来解决。这是一个非数组公式:

=SUMPRODUCT(MID(B3,ROW(OFFSET($A$1,,,LEN(B3))),1)+0)

公式中:

OFFSET($A$1,,,LEN(B3))

以单元格A1为起点,扩展至单元格B3长度数量的单元格,本例中为A9,即单元格区域A1:A9,传递给ROW函数:

ROW(OFFSET($A$1,,,LEN(B3)))

解析为:

{1;2;3;4;5;6;7;8;9}

将上面的数组传递给MID函数:

MID(B3,ROW(OFFSET($A$1,,,LEN(B3))),1)

即:

MID(B3, {1;2;3;4;5;6;7;8;9},1)

得到:

{"1";"2";"3";"4";"5";"6";"7";"8";"9"}

实现了数拆分成单个数字。

然后与0相加,得到数值组成的数组:

MID(B3,ROW(OFFSET($A$1,,,LEN(B3))),1)+0

即:

{"1";"2";"3";"4";"5";"6";"7";"8";"9"}+0

得到:

{1;2;3;4;5;6;7;8;9}

将其传递给SUMPRODUCT函数:

=SUMPRODUCT({1;2;3;4;5;6;7;8;9})

对于单个数组,SUMPRODUCT函数直接对其中的元素求和,得到结果:

45

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

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

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

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

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