专栏首页完美ExcelExcel公式练习63: 求数值中的各个数字之和

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

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

本次的练习是:在单元格中是一个数,使用公式求组成这个数的单个数字相加的和,如下图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

本文分享自微信公众号 - 完美Excel(excelperfect),作者:fanjy

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Excel公式练习34: 识别是否存在相同字母的单词

    导语:这个案例来自于excelxor.com,真是太佩服了!这样复杂的要求都能够用公式解决,这样的解决方法都能够想到!

    fanjy
  • Excel公式技巧46: 按出现的频率依次提取列表中的数据并排序

    导语:在《Excel公式技巧44:对文本进行排序》中,我们使用COUNTIF函数并结合SMALL/MATCH/INDEX函数对一系列文本进行排序,无论这些文本中...

    fanjy
  • Excel公式练习46: 获取最大年增长率对应的值

    导语:继续研究来自于excelxor.com的案例。这个案例不是很复杂,但解决方案却很巧妙。

    fanjy
  • 求职 | 收割大厂offer,我的Java岗秋招总结

    今天分享一位牛客网上看到的大佬。他在一年前确定目标,并通过一年多的努力学习,成为了秋招offer收割机,成功拿到了阿里、腾讯、快手等大厂的Java岗offer。...

    程序员鱼皮
  • Flask第31课——include标签

    现在考虑这样一个问题,如果页面头部和底部是很多页面要用的样式,那么如果在每一个新的文件中都要复制相同的代码肯定不是我们希望的,这时候就可以用到include标签...

    用户2149234
  • CSS3 Transition介绍

    CSS3提供了一种全新的方式来定义CSS属性改变时的过渡效果,通常在:hover、:focus的条件下触发。过去,为了实现这种平滑的过渡效果,我们需要借助于Fl...

    大江小浪
  • pands模块的妙用爬取网页中的表格

    拿我这篇为例https://www.cnblogs.com/pythonywy/p/11574340.html

    小小咸鱼YwY
  • 腾讯云Yunong Xiao:无服务逐渐开始承载起企业核心业务

    据调查报告显示,无服务器架构市场规模在2018年达到42.5亿美元,预计在2023年将达到149.3亿美元,复合年增长率将达29%。成本和效率两大原因促使无服务...

    腾讯云serverless团队
  • Java每日一练(2017/8/16)

    最新通知 ●回复"每日一练"获取以前的题目! ●【新】Android视频更新了!(回复【安卓视频】获取下载链接) ●【新】Ajax知识点视频更新了!(回复【学习...

    Java学习
  • 使用Qt Designer 设计对话框(二)

    上一篇我们通过Qt 设计师生成了 .ui 文件。下一步是将该 .ui 文件转化为 .py 的python文件。

    用户6021899

扫码关注云+社区

领取腾讯云代金券