将数字拆分后求和的方法二三例
点击上方
蓝色
文字 关注我们吧!
送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
上周我有一个帖子讲的是如何将一个数字拆分后再将各位数求和。你知道如何计算整数的各位数之和吗?
其实帖子中讲到的方法只是最最常用的方法。在我加入的一个EXCEL群中,有不少朋友提供了不同的解题思路,下面,我就将这些奇思妙想分享给大家
方法一
在单元格C2中输入“=SUM(--(IF(MID(A2,N(IF({1},ROW($1:$10))),1)="",,MID(A2,N(IF({1},ROW($1:$10))),1))))”并CTRL+SHIFT+ENTER三键回车即可。
思路:
利用ROW($1:$10)创建一个1~10的自然数序列(注意这个序列要大于整数的位数)
利用N函数降维,将序列转换为数值
利用MID函数依次提取各个位数的数字
IF函数屏蔽错误,SUM函数求和
注意,这里使用了N函数,主要用意是,当出现文本字符时,N函数将其转换为0,避免出现计算错误。此例下A列数据中不含有文本字符,因此N函数是可以省略的。
方法二
在单元格C2中输入“=SUM(--(0&MID(A2,N(IF({1},ROW($1:$10))),1)))”并CTRL+SHIFT+ENTER三键回车即可。
和上一个例子的思路类似,区别在于:
使用“0&”和“--”来剔除有可能的文本字符,达到计算目的。
方法三
在单元格C2中输入“=SUMPRODUCT(--MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))”即可。
这个方法中使用的公式和你知道如何计算整数的各位数之和吗?中使用的公式是一样的,区别在于此例中的公式是普通公式。
方法四
在单元格C2中输入“=SUM(INT(MOD(A2,10^ROW(INDIRECT(1&":"&LEN(A2))))/(10^(ROW(INDIRECT(LEN(A2)&":"&1))-1))))”并CTRL+SHIFT+ENTER三键回车即可。
思路:
MOD(A2,10^ROW(INDIRECT(1&":"&LEN(A2))))部分利用INDIRECT函数构建数组{10;100;1000},并利用MOD函数对单元格A2分别求余数,结果为{3;23;123}
(10^(ROW(INDIRECT(LEN(A2)&":"&1))-1))构建数组{1;10;100}
利用INT函数对上述两部分的商取整
利用SUM函数求和
这个例子是借用了数学原理。此例中后半部分(10^(ROW(INDIRECT(LEN(A2)&":"&1))-1))中的INDIRECT(LEN(A2)&":"&1)其实是可以替换为INDIRECT(1&":"&LEN(A2)),其结果都是创建了数组{1;2;3}。
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
推荐阅读:
戳原文,更有料!免费模板文档!