王德宝,王德宝讲师,王德宝联系方式,王德宝培训师-【讲师网】
53
鲜花排名
0
鲜花数量
扫一扫加我微信
王德宝:如何计算Excel一个单元格内多行数字之和
2016-01-20 21407

如图,A1单元格有多行数字(用Alt+Enter换行),如何求这些数的和呢?

点击查看原图

请看B2的公式:

=SUMPRODUCT(--(0&TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",50)),ROW($1:$20)*50-49,50))))

套用此公式时,只需要把公式中的A1换成你要求和的那个单元格即可,比如B1。

 

公式说明:

1.作用:对一个单元内多行数值求和。

2.实现方式 :通过拆分换行符,构建数组,再求和。

3.详细解释:

*CHAR(10)是原单元格中用Alt+Enter产生的换行符号;

*REPT(" ",50)是产生50个空格;

*SUBSTITUTE是将某个单元格中的 旧字符 替换成新字符,因此:SUBSTITUTE(A1,CHAR(10),REPT(" ",50))这一步是把强制换行符号替换为50个空格;为什么是50个而不是5个呢?这是因为为了下一步利用MID函数对这个长字符进行分段截取(每组50个字符),如果你替换成的空格少了--比如5位--可是截取了10位,可能会导致一些大的数值(比如一个11位的数)就会被截断,无法得出正确的结果。所以这里要替换得位数大一点。当然也不需要50这么大,15位就可以了。

*接下来的MID函数是截取一段字符中的一部分,此公式是分别截取1-50位,51-100,等;

*用TRIM函数去一下两边的空格(因为MID截取出来的字符肯定是带有空格的);前面再加上个0目的是万一拆分出的内容为空的情况下,不会在“--”(这个运算下面解释)时报错(空值转化成数字会报错,而数字前加0,在转化成数字时,会自动将0去掉);

*-- 是对字串转化成数字。先变负数,再负一下就变回来了。如果字串本身就不是数字,那就转不过去了~

*最后再用SUMPRODUCT 就是对上述的分离出的数组进行求和,得到最终结果。


德宝老师博客原文:https://blog.debao.name/post-101.html?j=1

全部评论 (0)
讲师网上海站 sh.jiangshi.org 由加盟商 杭州讲师云科技有限公司 独家运营
培训业务联系:蔡老师 15925605583

Copyright©2008-2024 版权所有 浙ICP备06026258号-1 浙公网安备 33010802003509号
杭州讲师网络科技有限公司 更多城市分站招商中